diff --git a/sites/upsun/config/_default/config.yaml b/sites/upsun/config/_default/config.yaml index 9318b2c829..eed0af7f21 100644 --- a/sites/upsun/config/_default/config.yaml +++ b/sites/upsun/config/_default/config.yaml @@ -5,7 +5,9 @@ author: Upsun description: Upsun User Documentation # Themes -theme: psh-docs +theme: + - hextra-upsun + - hextra themesdir: '../../themes' uglyurls: true @@ -23,6 +25,15 @@ baseURL: "https://docs.upsun.com" summaryLength: 3 +social: + discord: "https://discord.gg/platformsh" + forum: "https://community.platform.sh" + github: "https://github.com/upsun" + youtube: "https://www.youtube.com/@upsun_com" + xtwitter: "https://x.com/upsuncom" + linkedin: "https://linkedin.com/company/upsuncom" + tiktok: "https://www.tiktok.com/@upsun.com" + outputs: home: - HTML diff --git a/themes/hextra-upsun/archetypes/author.md b/themes/hextra-upsun/archetypes/author.md new file mode 100644 index 0000000000..ee95d47ee2 --- /dev/null +++ b/themes/hextra-upsun/archetypes/author.md @@ -0,0 +1,34 @@ +--- +################################# +# IMPORTANT: +# Be sure to update the 2 custom/contributions +# lines below to use the same name as this +# filename in quotes. +################################# +# Don't touch these settings. +type: people +layout: single +sidebar: + exclude: true +################################# +title: "Your Name" +team: "Team in your Company" +company: "Company" +role: "Your role" +#image: "/images/people/.webp" + +# Update these only if you'd like them to be public. +# links: +# github: something +# twitter: something +# linkedin: something +# website: https://www.something.com +--- + + + + +{{< custom/contributions "flovntp" >}} + +{{< custom/contributions "flovntp" "videos" >}} + diff --git a/themes/hextra-upsun/archetypes/event.md b/themes/hextra-upsun/archetypes/event.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/themes/hextra-upsun/archetypes/post.md b/themes/hextra-upsun/archetypes/post.md new file mode 100644 index 0000000000..736c774c4d --- /dev/null +++ b/themes/hextra-upsun/archetypes/post.md @@ -0,0 +1,260 @@ +--- +################################# +# Don't touch these settings. +date: '{{ .Date }}' +sidebar: + exclude: true +type: post +################################# +# Update the title +title: "Include a short, descriptive title" + +# Replace if you have a good image. +# Images are not used (yet) on individual pages, only on lists of articles. +image: /images/red-background.webp + +# Define this value if listing an external blog post not written within this site. +#link: "https://upsun.com/blog/blackfire-infrastructure-processes/" + +# Update author with one or more +# -> content/community/engage/people/AUTHOR.md +# -> https://github.com/AUTHOR +# -> AUTHORFirst AUTHORLast +author: + - upsun + +# Choose ONE of the options below: +categories: +# - compare +# - core-concepts +# - how-it-works +# - discussions +# - experiments + - how-tos +# - releases +# - transcripts +# - tutorials +# - use-cases + +# Tags don't do anything yet, so ignore for now. +# tags: +# - events +# - integrations +math: true +--- + diff --git a/themes/hextra-upsun/archetypes/video.md b/themes/hextra-upsun/archetypes/video.md new file mode 100644 index 0000000000..a99a71960d --- /dev/null +++ b/themes/hextra-upsun/archetypes/video.md @@ -0,0 +1,54 @@ +--- +################################# +# Don't touch these settings. +date: '{{ .Date }}' +sidebar: + exclude: true +type: media +################################# +# Update the title +title: "Include a short, descriptive title" +# subtitle: "You can add a subtitle if you want to as well" + +# (optional) Override the image produced for the video page. +# When undefined, the following will be used. +# image: https://img.youtube.com/vi/YOUTUBE_ID/hqdefault.jpg + +# Update author with one or more +# -> content/community/engage/people/AUTHOR.md +# -> https://github.com/AUTHOR +# -> AUTHORFirst AUTHORLast +author: + - upsun + +# Choose ONE of the options below: +categories: + - demos +# - livestreams +# - podcasts +# - talks +# - webinars + +# Tags don't do anything yet, so ignore for now. +# tags: +# - events +# - integrations +--- + +Lorem markdownum, Aries, cum formae, illius, gemitu in caelum, iste, praebet +oculos. In quas alienisque requirenti caesis metallis vestros. Ocius suum +accensum: iners [plangorem adhibere ensem](http://se-ora.com/) et aliquid meum +lacertis! + +1. Est si easdem omnes correptus +1. Carmen nixus +1. Ulcisci imas blanditiis suam innumeris ubi +1. Perdidimus pendens paratis continuere solet trepidare amplius +1. Officio sensit qui videtur mens +1. An fors est + +Sensit haec illo spectator frui gravidus ordine latitant. Quod eris, vota ensem +pectus patria quidem; *lacrimae nutu*. Nunc +[additur](http://condit-filia.com/solvit), et munera geminos dixit, nec habemus, +illi. Caeloque subdita flammasque hanc timide patuit causas nos solus fecisse: +refert tibi, aera Cumaea. diff --git a/themes/hextra-upsun/assets/css/code.css b/themes/hextra-upsun/assets/css/code.css new file mode 100644 index 0000000000..10a8b10145 --- /dev/null +++ b/themes/hextra-upsun/assets/css/code.css @@ -0,0 +1,86 @@ +/* Background */ .bg { color:#e6edf3;background-color:#0d1117; } +/* PreWrapper */ .chroma { color:#e6edf3;background-color:#0d1117; } +/* Other */ .chroma .x { } +/* Error */ .chroma .err { color:#f85149 } +/* CodeLine */ .chroma .cl { } +/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit } +/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; } +/* LineTable */ .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; } +/* LineHighlight */ .chroma .hl { background-color:#6e7681 } +/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679 } +/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681 } +/* Line */ .chroma .line { display:flex; } +/* Keyword */ .chroma .k { color:#ff7b72 } +/* KeywordConstant */ .chroma .kc { color:#79c0ff } +/* KeywordDeclaration */ .chroma .kd { color:#ff7b72 } +/* KeywordNamespace */ .chroma .kn { color:#ff7b72 } +/* KeywordPseudo */ .chroma .kp { color:#79c0ff } +/* KeywordReserved */ .chroma .kr { color:#ff7b72 } +/* KeywordType */ .chroma .kt { color:#ff7b72 } +/* Name */ .chroma .n { } +/* NameAttribute */ .chroma .na { } +/* NameBuiltin */ .chroma .nb { } +/* NameBuiltinPseudo */ .chroma .bp { } +/* NameClass */ .chroma .nc { color:#f0883e;font-weight:bold } +/* NameConstant */ .chroma .no { color:#79c0ff;font-weight:bold } +/* NameDecorator */ .chroma .nd { color:#d2a8ff;font-weight:bold } +/* NameEntity */ .chroma .ni { color:#ffa657 } +/* NameException */ .chroma .ne { color:#f0883e;font-weight:bold } +/* NameFunction */ .chroma .nf { color:#d2a8ff;font-weight:bold } +/* NameFunctionMagic */ .chroma .fm { } +/* NameLabel */ .chroma .nl { color:#79c0ff;font-weight:bold } +/* NameNamespace */ .chroma .nn { color:#ff7b72 } +/* NameOther */ .chroma .nx { } +/* NameProperty */ .chroma .py { color:#79c0ff } +/* NameTag */ .chroma .nt { color:#7ee787 } +/* NameVariable */ .chroma .nv { color:#79c0ff } +/* NameVariableClass */ .chroma .vc { } +/* NameVariableGlobal */ .chroma .vg { } +/* NameVariableInstance */ .chroma .vi { } +/* NameVariableMagic */ .chroma .vm { } +/* Literal */ .chroma .l { color:#a5d6ff } +/* LiteralDate */ .chroma .ld { color:#79c0ff } +/* LiteralString */ .chroma .s { color:#a5d6ff } +/* LiteralStringAffix */ .chroma .sa { color:#79c0ff } +/* LiteralStringBacktick */ .chroma .sb { color:#a5d6ff } +/* LiteralStringChar */ .chroma .sc { color:#a5d6ff } +/* LiteralStringDelimiter */ .chroma .dl { color:#79c0ff } +/* LiteralStringDoc */ .chroma .sd { color:#a5d6ff } +/* LiteralStringDouble */ .chroma .s2 { color:#a5d6ff } +/* LiteralStringEscape */ .chroma .se { color:#79c0ff } +/* LiteralStringHeredoc */ .chroma .sh { color:#79c0ff } +/* LiteralStringInterpol */ .chroma .si { color:#a5d6ff } +/* LiteralStringOther */ .chroma .sx { color:#a5d6ff } +/* LiteralStringRegex */ .chroma .sr { color:#79c0ff } +/* LiteralStringSingle */ .chroma .s1 { color:#a5d6ff } +/* LiteralStringSymbol */ .chroma .ss { color:#a5d6ff } +/* LiteralNumber */ .chroma .m { color:#a5d6ff } +/* LiteralNumberBin */ .chroma .mb { color:#a5d6ff } +/* LiteralNumberFloat */ .chroma .mf { color:#a5d6ff } +/* LiteralNumberHex */ .chroma .mh { color:#a5d6ff } +/* LiteralNumberInteger */ .chroma .mi { color:#a5d6ff } +/* LiteralNumberIntegerLong */ .chroma .il { color:#a5d6ff } +/* LiteralNumberOct */ .chroma .mo { color:#a5d6ff } +/* Operator */ .chroma .o { color:#ff7b72;font-weight:bold } +/* OperatorWord */ .chroma .ow { color:#ff7b72;font-weight:bold } +/* Punctuation */ .chroma .p { } +/* Comment */ .chroma .c { color:#8b949e;font-style:italic } +/* CommentHashbang */ .chroma .ch { color:#8b949e;font-style:italic } +/* CommentMultiline */ .chroma .cm { color:#8b949e;font-style:italic } +/* CommentSingle */ .chroma .c1 { color:#8b949e;font-style:italic } +/* CommentSpecial */ .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic } +/* CommentPreproc */ .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic } +/* CommentPreprocFile */ .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic } +/* Generic */ .chroma .g { } +/* GenericDeleted */ .chroma .gd { color:#ffa198;background-color:#490202 } +/* GenericEmph */ .chroma .ge { font-style:italic } +/* GenericError */ .chroma .gr { color:#ffa198 } +/* GenericHeading */ .chroma .gh { color:#79c0ff;font-weight:bold } +/* GenericInserted */ .chroma .gi { color:#56d364;background-color:#0f5323 } +/* GenericOutput */ .chroma .go { color:#8b949e } +/* GenericPrompt */ .chroma .gp { color:#8b949e } +/* GenericStrong */ .chroma .gs { font-weight:bold } +/* GenericSubheading */ .chroma .gu { color:#79c0ff } +/* GenericTraceback */ .chroma .gt { color:#ff7b72 } +/* GenericUnderline */ .chroma .gl { text-decoration:underline } +/* TextWhitespace */ .chroma .w { color:#6e7681 } diff --git a/themes/hextra-upsun/assets/css/custom.css b/themes/hextra-upsun/assets/css/custom.css new file mode 100644 index 0000000000..2b6484cd5b --- /dev/null +++ b/themes/hextra-upsun/assets/css/custom.css @@ -0,0 +1,930 @@ +@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap'); +/* @import url('code.css'); */ + +/* h1, h2, h3, h4, h5, h6 { + font-family: "Space Grotesk", sans-serif; +} */ + +/* .search-results > li > a > .title { */ +/* .search-wrapper li .title { + font-size: 24px; + font-weight: 700; + line-height: 36px; +} */ + +/* .highlight { + background-color: white; +} */ + +/* .chroma .hl { + background-color: #DFDAFF; +} */ + +figcaption { + font-size: 0.775rem !important; +} + +/* additional callouts */ + +.cta-section { + background-color: #F7F8F8; +} + +a.ot-sdk-show-settings:hover { + cursor: pointer; +} + +.hx-border-2 { + border-width: 2px !important; +} + +.hx-border-purple-100 { + border-color: #6046FF; +} + +.hx-bg-purple-50 { + background-color: #DFDAFF; +} + +.hx-text-purple-100 { + color: #130E33; +} + +.hx-border-pink-100 { + border-color: #E81CEC; +} + +.hx-bg-pink-50 { + background-color: #FAD2FB; +} + +.hx-text-pink-100 { + color: #002A2F; +} + +.hx-border-blue-100 { + border-color: #00D0EC; +} + +.hx-bg-blue-50 { + background-color: #CCF6FB; +} + +.hx-text-blue-100 { + color: #002A2F; +} + +.hx-border-orange-100 { + border-color: #FF4A11; +} + +.hx-bg-orange-50 { + background-color: #FFDBCF; +} + +.hx-text-orange-800 { + color: #330F03; +} + +.hx-border-yellow-100 { + border-color: #D5F800; +} + +.hx-bg-yellow-50 { + background-color: #F7FECC; +} + +.hx-text-yellow-800 { + color: #2B3200; +} + +.hx-border-success-100 { + border-color: #289B3F; +} + +.hx-bg-success-50 { + background-color: #E7F4E8; +} + +.hx-text-success-800 { + color: #093912; +} + +.hx-border-critical-100 { + border-color: #CC2A1E; +} + +.hx-bg-critical-50 { + background-color: #FDEDEA; +} + +.hx-text-critical-800 { + color: #630E08; +} + + +/* pre-launch design feedback */ +.subheading-anchor:after { + color: #646F75; +} + +.steps h3:before { + background-color: #6046FF; + border-color: #6046FF; + color: #FFFFFF; + font-weight: 500; +} + +.content :where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)) { + background-color: #FFFFFF; + /* --tw-border-opacity: 0.2; */ + /* border-color: #646F75; */ + border-color: rgb(100, 111, 117, 0.2); +} + +.hextra-code-block pre { + background-color: #FFFFFF; +} + +.chroma .hl { + background-color: #DFDAFF; +} + +details { + background-color: #FFFFFF !important; + box-shadow: 0px 1px 4px 0px rgba(14, 17, 19, 0.10); + padding: 1rem !important; +} + +details summary { + padding-left: 1rem !important; +} + +details > div { + padding-left: 2rem !important; +} + +.hextra-filetree > div { + width: 100%; + background-color: #ffffff; + padding: 1.5rem; +} + +.data-\[state\=selected\]\:hx-text-primary-600[data-state="selected"] { + color: #6046FF; +} + +.data-\[state\=selected\]\:hx-border-primary-500[data-state="selected"] { + border-color: #6046FF; +} + +@media (min-width:1025px) { + + .footer-social { + justify-content: flex-end; + } + +} + +.hextra-code-block > .filename { + font-family: "Space Grotesk", sans-serif; + font-weight: 600; + color: white; + background-color: #4D38CC; +} + +.landing-code > .hextra-code-block > .filename { + font-family: "Space Grotesk", sans-serif; + font-weight: 600; + background-color: #DFDAFF; + color: black; + border-top-right-radius: 32px; + border-top-left-radius: 32px; + padding: 1rem 1rem 1rem 2rem; + +} + +.landing-code > .hextra-code-block pre:not(.lntable pre) { + border-radius: 32px; +} + +.landing-code > .hextra-code-block > div > div > pre > code { + /* font-family: "Space Grotesk", sans-serif; */ + font-weight: 300; + letter-spacing: 0.1rem; + /* padding-top: 2rem; */ + /* margin-left: 2rem; */ +} + +.landing-code > .hextra-code-block > .hextra-code-copy-btn-container { + top: 3.5rem !important; +} + +/* .hextra-code-block > div > div > pre { + background-color: white !important; +} */ + + +.landing-code > .hextra-code-block > div > div > pre { + background-color: white; + border-top-right-radius: 32px; + border-top-left-radius: 32px; + padding-top: 5rem !important; + padding-bottom: 3rem !important; + padding-left: 2rem !important; + padding-right: 2rem !important; + +} + +.footer-button:hover { + background: #0E1113 !important; + color: #F7F8F8 !important; + border: 2px solid #0E1113 !important; +} + +.nav-item:hover { + color: #6046FF; + /* color: #DFDAFF; */ +} + +.nav-item:hover > svg.search, +.nav-item:hover > svg.search > path { + fill: #6046FF; +} + +.upsun-feature-card:hover { + border: 2px solid #4D38CC !important; +} + +.upsun-feature-card { + border: 2px solid #D5F800 !important; +} + +.platformsh-feature-card { + border: 2px solid #0E1113 !important; +} + +.platformsh-feature-card:hover { + border: 2px solid #D5F800 !important; +} + +.blackfire-feature-card { + border: 2px solid #6046FF !important; +} + +.blackfire-feature-card:hover { + border: 2px solid #D5F800 !important; +} + +body { + background: #F7F8F8; +} + +.upsun-button { + font-family: "Space Grotesk", sans-serif; + font-weight: 700; + padding: 0.5rem 1.75rem; + letter-spacing: 0.025rem; +} + +.button-primary { + background: #6046FF; + border: 2px solid #6046FF; +} + +.button-primary:hover { + background: #4D38CC; + border: 2px solid #4D38CC; +} + +.button-secondary { + background: #F7F8F8; + color: #0E1113;; + border: 2px solid #0E1113; +} + +.button-secondary:hover { + background: #0E1113; + color: #F7F8F8; + border: 2px solid #0E1113; +} + +.nav-container, +.nav-container > div, +.nav-container > nav { + background: #F7F8F8 !important; + border-color: #646F754D !important; +} + +.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)) { + color: #4D38CC; + } + +.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover { + color: #3A2A99; +} + +.contrib-item { + /* border: 1px solid #E1E3E4; */ + display: grid; + grid-template-columns: 225px 1fr; + grid-template-rows: 1fr; + gap: 0px 20px; + grid-auto-flow: row; + grid-template-areas: + "contrib-img contrib-desc"; + } + +.contrib-img { + grid-area: contrib-img; + /* border: 1px solid #E1E3E4; */ + +} + +figcaption > h4 { + font-size: 0.85rem !important; + font-weight: 500 !important; + color: rgb(107 114 128) !important; +} + + +@media (max-width:1025px) { + + .contrib-img { + display: none; + } + .contrib-item { + margin-bottom: 1rem; + grid-template-columns: 1fr; + grid-template-areas: + "contrib-desc"; + } + + .login-button { + display: none; + } + +} + +.contrib-img > img { + max-width: 200px; + object-fit: cover; + aspect-ratio: 16/9; +} + +.contrib-desc { + grid-area: contrib-desc; + /* border: 1px solid #E1E3E4; */ + /* vertical-align: center; */ + position: relative; + top: 50%; + -ms-transform: translateY(-25%); + transform: translateY(-25%); +} + + +.search-wrapper { + width: 100%; +} + +.search-input { + font-family: "Space Grotesk", sans-serif; +} + +.search-suggestions { + margin-top: 2rem; + font-family: Instrument Sans,Arial; +} + +.search-suggestions > a { + color: #6046FF; + text-decoration: underline; +} + +@media (min-width:1025px) { + + .search-wrapper { + width: 75%; + } + +} + +.home-title-container { + background-color: #F7F8F8; +} + +.home-title { + /* font-size: 1.5rem; + line-height: 1.5; */ + margin-bottom: 1rem; + font-family: Instrument Sans,Arial; + font-weight: 900; + /* color: #ffffff; */ + color: #6046FF; + text-align: center !important; + margin-bottom: 2.5rem; +} + +.announcement-container { + /* border: 1px solid red; */ + background: #6046FF; + font-family: "Open Sans"; + color: #FFFFFF; + /* background: #DFDAFF; */ + /* display: block; */ + display: none; + position: absolute; +} + +.announcement-container-show{ + display: block !important; +} + +.announcement { + /* color: black;#FFFFFF */ + padding: var(--padding-spacing-2-XS, 0.7rem) var(--padding-spacing-M, 48px); + /* font-family: "Instrument Sans"; */ + /* font-size: 12px; */ + font-size: 0.95rem; + font-style: normal; + font-weight: 400; + line-height: 32px; +} + +.announcement > span > a { + text-decoration: underline; +} + +.topnav-outer { + background: black; + color: #E1E3E4; + /* background: #41484D; + color: white; */ +} + +.topnav-container { + /* padding-top: 1rem; + padding-bottom: 1rem; */ + + padding-top: 0.6rem; + padding-bottom: 0.6rem; + + font-family: "Space Grotesk", sans-serif; + font-size: 0.85rem; + /* background-color: black; */ + /* border: 1px solid red; */ + /* background: #6046FF; */ + /* background: #DFDAFF; */ + /* display: block; */ +} + +.topnav-links > a:hover { + color: #DFDAFF; +} + +.topnav-container-show { + display: none !important; +} + +.topnav-links { + font-weight: 600; +} + +.topnav { + color: black; + padding: var(--padding-spacing-2-XS, 0.5rem) var(--padding-spacing-M, 48px); + /* font-family: "Instrument Sans"; */ + /* font-size: 12px; */ + font-size: 0.95rem; + font-style: normal; + font-weight: 400; + line-height: 32px; + /* text-align: right; */ +} + +.topnav-text { + text-align: right; +} + +.topnav-text > span > a { + text-decoration: underline; +} + +/* [data-global-alert="closed"] #announcement { + display: none; +} */ + +.btn-close { + position: absolute; + /* color: white; */ + top: 1rem; + /* transform: translateY(-50%); */ + right: 1rem; + z-index: 2; + /* padding: 0.5rem; */ +} + +.toc-cta { + background: #F9F9F9; + border-radius: 16px; + border: 1px #FF4A11 solid; + padding: 32px; +} + +.toc-cta-title { + font-family: "Open Sans"; + font-size: 1.1rem; + font-style: normal; + font-weight: 700; + line-height: 24px; + background: linear-gradient(90deg, #806BFF 17.18%, #ED49F0 82.51%); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.toc-cta-body { + font-family: "Open Sans"; + padding-top: 16px; + font-size: 0.9rem; + font-style: normal; + font-weight: 500; + line-height: 24px; +} + +.toc-cta-tac { + font-family: "Open Sans"; + font-size: 0.85rem; + font-style: normal; + font-weight: 500; + line-height: 16px; + padding-top: 8px; + color: #8B9397; +} + +.toc-cta-button { + font-family: "Open Sans"; + background: #6046FF; + border: 2px solid #6046FF; + font-weight: 700; + margin-top: 24px; + padding: 6px 24px; +} + +.w-12 { + width: 3rem; +} + +.h-12 { + height: 3rem; +} + +.contrib-icon { + margin-top: 0px; + border-radius: 0px; +} + +footer { + font-family: "Space Grotesk", sans-serif; +} + +.tag-span { + font-weight: 400; + font-size: 0.875rem; + line-height: 1.532; + color: rgb(255, 255, 255); + background-color: rgb(37, 45, 49); + text-decoration: none; + padding: 0.5rem; + border-radius: 0.25rem; + margin: 0px 1rem 1rem 0px; + font-family: "Space Grotesk", sans-serif; +} + +.author-info { + font-family: "Space Grotesk", sans-serif; + font-weight: 500; + font-size: 13px; + color: #646F75; +} + +.footer-mobile { + display: none; +} + +.hx-pb-6 { + padding-bottom: 1.5rem; +} + +.endpoint { + font-size: 0.85rem; + padding: 0.25rem 0.75rem; + margin-right: 0.5rem; + font-weight: 700; +} + +.required-icon { + margin-right: 0.2rem; + height: 1em; +} + +.search-input:focus { + outline:none !important; + outline-width: 0 !important; +} + +.required { + color: #CC2A1E; + /* fill: #CC2A1E; */ + /* height: 1em; */ +} + +.api-details { + list-style: none; + margin-inline-start: 0; +} + +.api-details-underlined > li { + padding-bottom: 0.5rem; + padding-top: 0.5rem; + border-bottom: 1px solid #B4BABD; +} + +.api-type { + color: #2B3134; + font-size: 0.85rem; +} + +.endpoint-get { + background-color: rgb(47, 129, 50); + color: rgb(255, 255, 255); +} + +.endpoint-post { + background-color: #007D8E; + color: rgb(255, 255, 255); +} + +.endpoint-path { + font-size: 0.9rem; +} + +.banner { + background-color: #6046FF; + color: white; + height: 3rem; +} + +.single-search-result { + border-bottom: 1px solid #B4BABD4D; + padding: 1.5rem 0; +} + +.search-results .post-category { + margin-top: 1.5rem; +} + +.search-results { + padding-left: 2rem; + padding-right: 2rem; + margin-left: 0; +} + +.single-search-result > a { + color: black; + text-decoration: none; +} + +.single-search-result > a > .title { + font-size: 1rem; + line-height: 1.1rem; + font-weight: 600; + font-family: "Instrument Sans", sans-serif; + padding-bottom: 0.5rem; + /* color: black; + text-decoration: none; */ +} + +.single-search-result > a > .result-url { + color: #6046FF; + margin: 0.5rem 0; +} + +.single-search-result > a > .excerpt > .match { + background: #D5F800; +} + +.single-search-result > a > .title > .match { + background: #D5F800; +} + +.post-category { + font-family: "Space Grotesk", sans-serif; + font-weight: 700; + letter-spacing: 0.1rem; + color: #646F75; +} + +nav.hx-mx-auto > a.hx-text-sm > span { + font-family: "Space Grotesk", sans-serif; +} + +html { + font-family: "Instrument Sans", sans-serif; + /* font-size: 0.95rem; */ +} + +.hextra-feature-grid > a > div > h3 > span { + /* font-family: "Space Grotesk", sans-serif; */ + font-weight: 700; + letter-spacing: 0.01rem; + margin-bottom: 1rem; +} + +.content { + font-family: "Instrument Sans", sans-serif; + font-size: 0.95rem; +} + +span.hx-cursor-default { + font-family: "Space Grotesk", sans-serif; + letter-spacing: 0.01rem; +} + +.footer-item { + font-family: "Space Grotesk", sans-serif; +} + +.login-button > svg:hover { + fill: #0E1113; +} + +.login-button > svg:hover > .lines { + stroke: white; + /* fill: white; */ +} + + +.login-button > svg:hover > .fills { + /* stroke: white; */ + fill: white; +} + +.hextra-feature-card { + background-color: white; + border: 2px solid white; + border-radius: 32px; + box-shadow: 0px 1px 4px 0px #0E11131A; +} + +/* .on-this-page { + color: #6046FF; +} */ + +.hx-text-primary-800 { + color: #6046FF; +} + +.hx-bg-primary-100 { + background-color: #DFDAFF; +} + +.hextra-feature-card:hover, +.hextra-card:hover { + border: 2px solid #6046FF; + /* border: 2x solid transparent; + border-radius: 32px; + border-image: linear-gradient(45deg, #ED49F0 , #6046FF); + border-image-slice: 1; */ + +} + +.hextra-card { + border: 2px solid #F7F8F8; +} + +.hextra-card { + padding-bottom: 3rem; +} + +.hextra-card > .post-category { + padding-top: 2rem; + padding-left: 2rem; + font-size: 0.75rem; + letter-spacing: 0.1rem; +} + +.hextra-card > span, +.hextra-card > .author-info { + padding-left: 2rem; +} + +.hextra-card > span { + padding-bottom: 4rem; +} + +.hextra-card > .author-info { + position: absolute; + bottom: 3rem; +} + +/* .hextra-card > img { + height: 60%; +} */ + +.hextra-feature-card > h3 > span.last-of-type { + margin-bottom: 2rem !important; +} + +.hextra-cards > a.hextra-card > span { + font-family: "Instrument Sans", sans-serif; + font-weight: 700; +} + +span.author-social { + padding: 0rem 0.5rem; + margin-top: 0.5rem; + display: inline-block; +} + +span.author-social > a { + color: black; +} + +span.author-social > a:hover { + color: #6046FF; +} + +a.hextra-card { + background-color: white; +} + +/* a.hextra-card:hover { + background-color: red; +} */ + +.font-grotesk { + font-family: "Space Grotesk", sans-serif; +} + +a.hextra-card > span, a.hextra-card > div { + background-color: white; + /* margin: 0.75rem 1.5rem 1.5rem 1.5rem; */ + margin-left: 1rem; + margin-right: 1rem; + /* margin-top: 1.5rem; */ +} + +@media (min-width:1025px) { + + .front-page-search > .search-wrapper > div > input { + height: 4rem; + /* color: white; */ + } + + .front-page-search { + border: 1px solid black; + width: 80%; + } + + .front-page-search > .search-wrapper { + width: 100%; + color: white; + } + + nav > a > span.hx-mx-2 { + font-size: 1.75rem; + } + + .hx-h-16 { + height: 5rem; + } + + .hx-p-2 { + padding: 0.65rem 1.3rem; + } + + .footer-mobile { + display: block; + } + + .hextra-feature-grid > .hx-mx-auto > .hextra-code-block { + width: 100%; + } + + .footer-item { + padding-left: 3rem; + padding-bottom: 0.75rem; + } +} + + +.nav-item { + color: #0E1113; + font-size: 0.9rem; + line-height: 1rem; + letter-spacing: 0.025rem; + font-family: "Space Grotesk", sans-serif; +} diff --git a/themes/hextra-upsun/assets/images/space.jpg b/themes/hextra-upsun/assets/images/space.jpg new file mode 100644 index 0000000000..9ca1f29dfc Binary files /dev/null and b/themes/hextra-upsun/assets/images/space.jpg differ diff --git a/themes/hextra-upsun/assets/js/dismissable-alert.js b/themes/hextra-upsun/assets/js/dismissable-alert.js new file mode 100644 index 0000000000..5cc892d514 --- /dev/null +++ b/themes/hextra-upsun/assets/js/dismissable-alert.js @@ -0,0 +1,100 @@ +(() => { + 'use strict'; + + // Check if alert has been closed, and set data-global-alert to closed + // Object.keys(localStorage).forEach(function (key) { + // if (/^global-alert-/.test(key)) { + // document.documentElement.setAttribute('data-global-alert', 'closed'); + // } + // }); + + // Enable alert closing, on DOMContentLoaded + window.addEventListener('DOMContentLoaded', () => { + var announcement = document.getElementById('announcement'); + // console.log("page has been loaded"); + + if (announcement !== null) { + var id = announcement.dataset.id; + + if (Object.keys(localStorage).includes(id)) { + console.log("Announcement closed."); + // announcement.classList.add("announcement-container-show"); + } else { + // console.log("No. Adding display class."); + // localStorage.setItem(id, 'closed'); + announcement.classList.add("announcement-container-show"); + // hx-block + } + + // console.log(id); + // console.log(localStorage); + + Object.keys(localStorage).forEach(function (key) { + // console.log(key); + if (/^global-alert-/.test(key)) { + if (key !== id) { + localStorage.removeItem(key); + // document.documentElement.removeAttribute('data-global-alert'); + } + } + }); + } + + // if (announcement !== null) { + // var id = announcement.dataset.id; + // console.log(id); + // console.log(localStorage); + // // localStorage.setItem(id, 'closed'); + // Object.keys(localStorage).forEach(function (key) { + // console.log(key); + // if (/^global-alert-/.test(key)) { + // if (key !== id) { + // localStorage.removeItem(key); + // document.documentElement.removeAttribute('data-global-alert'); + // } + // } + // }); + + // announcement.addEventListener('closed.bs.alert', () => { + // localStorage.setItem(id, 'closed'); + // }); + // } + }); +})(); + + + +function closeAnnouncement() { + console.log("Close it already!"); + var announcement = document.getElementById('announcement'); + // console.log(announcement); + if (announcement !== null) { + var id = announcement.dataset.id; + // console.log(id); + // console.log(localStorage); + localStorage.setItem(id, 'closed'); + // console.log(localStorage); + // announcement.setAttribute('data-global-alert', 'closed'); + // announcement.classList.add("hx-hidden"); + + console.log(Object.keys(localStorage)); + + if (Object.keys(localStorage).includes(id)) { + // console.log("id has been set to close"); + announcement.classList.remove("announcement-container-show"); + } else { + console.log("Announcement shown."); + } + + } + + + // Object.keys(localStorage).forEach(function (key) { + // if (/^global-alert-/.test(key)) { + // // document.documentElement.setAttribute('data-global-alert', 'closed'); + // console.log("id has been set to close"); + // } else { + // console.log("announcement has not yet been closed"); + // } + // }); +} \ No newline at end of file diff --git a/themes/hextra-upsun/assets/js/flexsearch-draft.js b/themes/hextra-upsun/assets/js/flexsearch-draft.js new file mode 100644 index 0000000000..6648f8ce22 --- /dev/null +++ b/themes/hextra-upsun/assets/js/flexsearch-draft.js @@ -0,0 +1,443 @@ +// Search functionality using FlexSearch. +function getParameterByName(name, url = window.location.href) { + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); +} + +// Change shortcut key to cmd+k on Mac, iPad or iPhone. +document.addEventListener("DOMContentLoaded", function () { + if (/iPad|iPhone|Macintosh/.test(navigator.userAgent)) { + // select the kbd element under the .search-wrapper class + const keys = document.querySelectorAll(".search-wrapper kbd"); + keys.forEach(key => { + key.innerHTML = 'K'; + }); + } + + const { result: activeResult, index: activeIndex } = getActiveResult(); + +}); + +// Render the search data as JSON. +// {{ $searchDataFile := printf "%s.search-data.json" .Language.Lang }} +// {{ $searchData := resources.Get "json/search-data.json" | resources.ExecuteAsTemplate $searchDataFile . }} +// {{ if hugo.IsProduction }} +// {{ $searchData := $searchData | minify | fingerprint }} +// {{ end }} +// {{ $noResultsFound := (T "noResultsFound") | default "No results found." }} + +(function () { + const searchDataURL = '{{ $searchData.RelPermalink }}'; + + const inputElements = document.querySelectorAll('.search-input'); + + for (const el of inputElements) { + el.addEventListener('focus', init); + el.addEventListener('keyup', search); + el.addEventListener('keydown', handleKeyDown); + el.addEventListener('input', handleInputChange); + el.value = getParameterByName('q'); + let currentQuery = getParameterByName('q'); + if (currentQuery == null) { + el.focus(); + // } + } else { + // search(); + let searchLanding = document.querySelectorAll('.search-landing'); + searchLanding[0].classList.add('hx-hidden'); + + // const { result: activeResult, index: activeIndex } = getActiveResult(); + // setActiveResult(activeIndex + 1); + } + } + + // let currentQuery = getParameterByName('q'); + // console.log(currentQuery); + + const shortcutElements = document.querySelectorAll('.search-wrapper kbd'); + + function setShortcutElementsOpacity(opacity) { + shortcutElements.forEach(el => { + el.style.opacity = opacity; + }); + } + + function handleInputChange(e) { + const opacity = e.target.value.length > 0 ? 0 : 100; + setShortcutElementsOpacity(opacity); + } + + // Get the search wrapper, input, and results elements. + function getActiveSearchElement() { + const inputs = Array.from(document.querySelectorAll('.search-wrapper')).filter(el => el.clientHeight > 0); + if (inputs.length === 1) { + return { + wrapper: inputs[0], + inputElement: inputs[0].querySelector('.search-input'), + resultsElement: inputs[0].querySelector('.search-results') + }; + } + return undefined; + } + + const INPUTS = ['input', 'select', 'button', 'textarea'] + + // Focus the search input when pressing ctrl+k/cmd+k or /. + document.addEventListener('keydown', function (e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const activeElement = document.activeElement; + const tagName = activeElement && activeElement.tagName; + if ( + inputElement === activeElement || + !tagName || + INPUTS.includes(tagName) || + (activeElement && activeElement.isContentEditable)) + return; + + if ( + e.key === '/' || + (e.key === 'k' && + (e.metaKey /* for Mac */ || /* for non-Mac */ e.ctrlKey)) + ) { + e.preventDefault(); + inputElement.focus(); + } else if (e.key === 'Escape' && inputElement.value) { + inputElement.blur(); + } + }); + + // Dismiss the search results when clicking outside the search box. + document.addEventListener('mousedown', function (e) { + const { inputElement, resultsElement } = getActiveSearchElement(); + if (!inputElement || !resultsElement) return; + if ( + e.target !== inputElement && + e.target !== resultsElement && + !resultsElement.contains(e.target) + ) { + setShortcutElementsOpacity(100); + hideSearchResults(); + } + }); + + // Get the currently active result and its index. + function getActiveResult() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return { result: undefined, index: -1 }; + + const result = resultsElement.querySelector('.active'); + if (!result) return { result: undefined, index: -1 }; + + const index = parseInt(result.dataset.index, 10); + return { result, index }; + } + + // Set the active result by index. + function setActiveResult(index) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + const { result: activeResult } = getActiveResult(); + activeResult && activeResult.classList.remove('active'); + const result = resultsElement.querySelector(`[data-index="${index}"]`); + result.classList.add('active'); + // if (result) { + // result.classList.add('active'); + // result.focus(); + // } + } + + // Get the number of search results from the DOM. + function getResultsLength() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return 0; + return resultsElement.dataset.count; + } + + // Finish the search by hiding the results and clearing the input. + function finishSearch() { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + hideSearchResults(); + inputElement.value = ''; + inputElement.blur(); + } + + function hideSearchResults() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + resultsElement.classList.add('hx-hidden'); + } + + // Handle keyboard events. + function handleKeyDown(e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const resultsLength = getResultsLength(); + const { result: activeResult, index: activeIndex } = getActiveResult(); + + switch (e.key) { + case 'ArrowUp': + e.preventDefault(); + if (activeIndex > 0) setActiveResult(activeIndex - 1); + break; + case 'ArrowDown': + e.preventDefault(); + if (activeIndex + 1 < resultsLength) setActiveResult(activeIndex + 1); + break; + case 'Enter': + e.preventDefault(); + // if (activeResult) { + // activeResult.click(); + // } + // let prevQuery = inputElement.value; + // let { inputElement } = getActiveSearchElement(); + window.location.href=`/search/?q=${inputElement.value}`; + // console.log(inputElement.value); + finishSearch(); + // console.log(inputElement.value); + // let inputElements = document.querySelectorAll('.search-input'); + // let { inputElementUpdate } = getActiveSearchElement(); + // console.log(inputElementUpdate) + // inputElement.value = prevQuery; + case 'Escape': + e.preventDefault(); + hideSearchResults(); + // Clear the input when pressing escape + inputElement.value = ''; + inputElement.dispatchEvent(new Event('input')); + // Remove focus from the input + inputElement.blur(); + break; + } + } + + // Initializes the search. + function init(e) { + e.target.removeEventListener('focus', init); + if (!(window.pageIndex && window.sectionIndex)) { + preloadIndex(); + } + } + + /** + * Preloads the search index by fetching data and adding it to the FlexSearch index. + * @returns {Promise} A promise that resolves when the index is preloaded. + */ + async function preloadIndex() { + const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}'; + window.pageIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title'], + index: "content" + } + }); + + window.sectionIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'content', 'url', 'display'], + index: "content", + tag: 'pageId' + } + }); + + const resp = await fetch(searchDataURL); + const data = await resp.json(); + let pageId = 0; + for (const route in data) { + let pageContent = ''; + ++pageId; + + for (const heading in data[route].data) { + const [hash, text] = heading.split('#'); + const url = route.trimEnd('/') + (hash ? '#' + hash : ''); + const title = text || data[route].title; + + const content = data[route].data[heading] || ''; + const paragraphs = content.split('\n').filter(Boolean); + + sectionIndex.add({ + id: url, + url, + title, + pageId: `page_${pageId}`, + content: title, + ...(paragraphs[0] && { display: paragraphs[0] }) + }); + + for (let i = 0; i < paragraphs.length; i++) { + sectionIndex.add({ + id: `${url}_${i}`, + url, + title, + pageId: `page_${pageId}`, + content: paragraphs[i] + }); + } + + pageContent += ` ${title} ${content}`; + } + + window.pageIndex.add({ + id: pageId, + title: data[route].title, + content: pageContent + }); + + } + } + + /** + * Performs a search based on the provided query and displays the results. + * @param {Event} e - The event object. + */ + function search(e) { + // let currentPathQuery = getParameterByName('q'); + const query = e.target.value; + if (!e.target.value) { + hideSearchResults(); + return; + } + + const { resultsElement } = getActiveSearchElement(); + while (resultsElement.firstChild) { + resultsElement.removeChild(resultsElement.firstChild); + } + resultsElement.classList.remove('hx-hidden'); + + const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || []; + + const results = []; + const pageTitleMatches = {}; + + for (let i = 0; i < pageResults.length; i++) { + const result = pageResults[i]; + pageTitleMatches[i] = 0; + + // Show the top 5 results for each page + const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || []; + let isFirstItemOfPage = true + const occurred = {} + + for (let j = 0; j < sectionResults.length; j++) { + const { doc } = sectionResults[j] + const isMatchingTitle = doc.display !== undefined + if (isMatchingTitle) { + pageTitleMatches[i]++ + } + const { url, title } = doc + const content = doc.display || doc.content + + if (occurred[url + '@' + content]) continue + occurred[url + '@' + content] = true + results.push({ + _page_rk: i, + _section_rk: j, + route: url, + prefix: isFirstItemOfPage ? result.doc.title : undefined, + children: { title, content } + }) + isFirstItemOfPage = false + } + } + const sortedResults = results + .sort((a, b) => { + // Sort by number of matches in the title. + if (a._page_rk === b._page_rk) { + return a._section_rk - b._section_rk + } + if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) { + return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk] + } + return a._page_rk - b._page_rk + }) + .map(res => ({ + id: `${res._page_rk}_${res._section_rk}`, + route: res.route, + prefix: res.prefix, + children: res.children + })); + displayResults(sortedResults, query); + } + + /** + * Displays the search results on the page. + * + * @param {Array} results - The array of search results. + * @param {string} query - The search query. + */ + function displayResults(results, query) { + const { resultsElement } = getActiveSearchElement(); + let searchLanding = document.querySelectorAll('.search-landing'); + + if (!resultsElement) return; + + if (!results.length) { + resultsElement.innerHTML = `{{ $noResultsFound | safeHTML }}`; + let searchLanding = document.querySelectorAll('.search-landing'); + searchLanding[0].classList.remove('hx-hidden'); + return; + } + searchLanding[0].classList.add('hx-hidden'); + // Highlight the query in the result text. + function highlightMatches(text, query) { + const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + const regex = new RegExp(escapedQuery, 'gi'); + return text.replace(regex, (match) => `${match}`); + } + + // Create a DOM element from the HTML string. + function createElement(str) { + const div = document.createElement('div'); + div.innerHTML = str.trim(); + return div.firstChild; + } + + function handleMouseMove(e) { + const target = e.target.closest('a'); + if (target) { + const active = resultsElement.querySelector('a.active'); + if (active) { + active.classList.remove('active'); + } + target.classList.add('active'); + } + } + + const fragment = document.createDocumentFragment(); + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.prefix) { + fragment.appendChild(createElement(` +
${result.prefix}
`)); + } + let li = createElement(` +
  • + +
    `+ highlightMatches(result.children.title, query) + `
    ` + + (result.children.content ? + `
    ` + highlightMatches(result.children.content, query) + `
    ` : '') + ` +
    +
  • `); + li.addEventListener('mousemove', handleMouseMove); + li.addEventListener('keydown', handleKeyDown); + li.querySelector('a').addEventListener('click', finishSearch); + fragment.appendChild(li); + } + resultsElement.appendChild(fragment); + resultsElement.dataset.count = results.length; + } +})(); diff --git a/themes/hextra-upsun/assets/js/flexsearch.js b/themes/hextra-upsun/assets/js/flexsearch.js new file mode 100644 index 0000000000..ceb8535667 --- /dev/null +++ b/themes/hextra-upsun/assets/js/flexsearch.js @@ -0,0 +1,530 @@ +// Search functionality using FlexSearch. + +document.getElementById('main-search') + .addEventListener('keyup', function(event) { + if (event.code === 'Enter') + { + event.preventDefault(); + document.querySelector('form').submit(); + } + }); + +function getParameterByName(name, url = window.location.href) { + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); +} + +// Change shortcut key to cmd+k on Mac, iPad or iPhone. +document.addEventListener("DOMContentLoaded", function () { + if (/iPad|iPhone|Macintosh/.test(navigator.userAgent)) { + // select the kbd element under the .search-wrapper class + const keys = document.querySelectorAll(".search-wrapper kbd"); + keys.forEach(key => { + key.innerHTML = 'K'; + }); + } + + let currentQuery = getParameterByName('q'); + let form = document.getElementById('main-search'); + if (currentQuery !== null) { + form.value = currentQuery; + form.focus(); + // handleInputChange(); + // init() + // search(form) + } + else { + // let results = document.getElementById('results-wrapper'); + // results.classList.add("hx-hidden"); + form.focus(); + } + }); + + // Render the search data as JSON. + // {{ $searchDataFile := printf "%s.search-data.json" .Language.Lang }} + // {{ $searchData := resources.Get "json/search-data.json" | resources.ExecuteAsTemplate $searchDataFile . }} + // {{ if hugo.IsProduction }} + // {{ $searchData := $searchData | minify | fingerprint }} + // {{ end }} + // {{ $noResultsFound := (T "noResultsFound") | default "No results found." }} + + (function () { + + document.addEventListener('DOMContentLoaded', function (e) { + let currentQuery = getParameterByName('q'); + let form = document.getElementById('main-search'); + // console.log(currentQuery); + // console.log(form); + if (currentQuery !== null) { + form.value = currentQuery; + form.focus(); + preloadIndex().then(()=>{ + /** + * search() takes an event object as its only parameter. From there it retrieves e.target.value which + * should contain the search query we want to perform. In our case, the event passed to our callback is + * DOMContentLoaded where the target is the whole DOM. So we'll create a fake "event" and assign the + * necessary props (and sub props) so it can still extract the query which we determined in currentQuery + * @todo see if there's a better way to handle this + */ + const fake = {} + fake.target = {value: currentQuery} + search(fake) + }) + // console.log("query path value"); + // handleInputChange(form); + } + }); + + // let searchDataURL = '{{ $searchData.RelPermalink }}'; + let searchDataURL = '/search/search.json'; + + const inputElements = document.querySelectorAll('.search-input'); + window.addEventListener('DOMContentLoaded', test) + for (const el of inputElements) { + el.addEventListener('focus', init); + el.addEventListener('keyup', search); + // el.addEventListener('keydown', handleKeyDown); + // el.addEventListener('focus', test); + el.addEventListener('input', handleInputChange); + } + + const shortcutElements = document.querySelectorAll('.search-wrapper kbd'); + + function setShortcutElementsOpacity(opacity) { + shortcutElements.forEach(el => { + el.style.opacity = opacity; + }); + } + + function test(e) { + init(e); + search(e); + } + + function handleInputChange(e) { + const opacity = e.target.value.length > 0 ? 0 : 100; + /** + * If the user has cleared the results with the built-in input functionality, hide the search results + */ + if(e.target.value.length === 0) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement.classList.contains('hx-hidden')) { + hideSearchResults() + } + // + } + setShortcutElementsOpacity(opacity); + } + + // Get the search wrapper, input, and results elements. + function getActiveSearchElement() { + const inputs = Array.from(document.querySelectorAll('.search-wrapper')).filter(el => el.clientHeight > 0); + if (inputs.length === 1) { + return { + wrapper: inputs[0], + inputElement: inputs[0].querySelector('.search-form').querySelector('.search-input'), + resultsElement: document.getElementById('results-wrapper').querySelector('.search-results') + }; + } + return undefined; + } + + const INPUTS = ['input', 'select', 'button', 'textarea'] + + // Focus the search input when pressing ctrl+k/cmd+k or /. + document.addEventListener('keydown', function (e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const activeElement = document.activeElement; + const tagName = activeElement && activeElement.tagName; + if ( + inputElement === activeElement || + !tagName || + INPUTS.includes(tagName) || + (activeElement && activeElement.isContentEditable)) + return; + + if ( + e.key === '/' || + (e.key === 'k' && + (e.metaKey /* for Mac */ || /* for non-Mac */ e.ctrlKey)) + ) { + e.preventDefault(); + inputElement.focus(); + } else if (e.key === 'Escape' && inputElement.value) { + inputElement.blur(); + } + }); + + // Dismiss the search results when clicking outside the search box. + document.addEventListener('mousedown', function (e) { + const { inputElement, resultsElement } = getActiveSearchElement(); + if (!inputElement || !resultsElement) return; + if ( + e.target !== inputElement && + e.target !== resultsElement && + !resultsElement.contains(e.target) + ) { + setShortcutElementsOpacity(100); + // hideSearchResults(); + } + }); + + // Get the currently active result and its index. + function getActiveResult() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return { result: undefined, index: -1 }; + + const result = resultsElement.querySelector('.active'); + if (!result) return { result: undefined, index: -1 }; + + const index = parseInt(result.dataset.index, 10); + return { result, index }; + } + + // Set the active result by index. + function setActiveResult(index) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + const { result: activeResult } = getActiveResult(); + activeResult && activeResult.classList.remove('active'); + const result = resultsElement.querySelector(`[data-index="${index}"]`); + if (result) { + result.classList.add('active'); + result.focus(); + } + } + + // Get the number of search results from the DOM. + function getResultsLength() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return 0; + return resultsElement.dataset.count; + } + + // Finish the search by hiding the results and clearing the input. + function finishSearch() { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + hideSearchResults(); + inputElement.value = ''; + inputElement.blur(); + } + + function hideSearchResults() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + resultsElement.classList.add('hx-hidden'); + } + + // Handle keyboard events. + function handleKeyDown(e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const resultsLength = getResultsLength(); + const { result: activeResult, index: activeIndex } = getActiveResult(); + + switch (e.key) { + case 'ArrowUp': + e.preventDefault(); + if (activeIndex > 0) setActiveResult(activeIndex - 1); + break; + case 'ArrowDown': + e.preventDefault(); + if (activeIndex + 1 < resultsLength) setActiveResult(activeIndex + 1); + break; + case 'Enter': + e.preventDefault(); + if (activeResult) { + activeResult.click(); + } + finishSearch(); + case 'Escape': + e.preventDefault(); + hideSearchResults(); + // Clear the input when pressing escape + inputElement.value = ''; + inputElement.dispatchEvent(new Event('input')); + // Remove focus from the input + inputElement.blur(); + break; + } + } + + // Initializes the search. + function init(e) { + e.target.removeEventListener('focus', init); + if (!(window.pageIndex && window.sectionIndex)) { + preloadIndex(); + } + } + + /** + * Preloads the search index by fetching data and adding it to the FlexSearch index. + * @returns {Promise} A promise that resolves when the index is preloaded. + */ + async function preloadIndex() { + const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}'; + window.pageIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title','full'], + index: "content" + } + }); + + window.sectionIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'content', 'url', 'display', 'full'], + index: "content", + tag: 'pageId' + } + }); + + const resp = await fetch(searchDataURL); + const data = await resp.json(); + let pageId = 0; + for (const route in data) { + // console.log(route) + let pageContent = ''; + ++pageId; + + for (const heading in data[route].data) { + // console.log(heading) + const [hash, text] = heading.split('#'); + const url = route.trimEnd('/') + (hash ? '#' + hash : ''); + const title = text || data[route].title; + const full = data[route].full.trimEnd('/') + (hash ? '#' + hash : ''); + const content = data[route].data[heading] || ''; + const paragraphs = content.split('\n').filter(Boolean); + + sectionIndex.add({ + id: url, + url, + full, + title, + pageId: `page_${pageId}`, + content: title, + ...(paragraphs[0] && { display: paragraphs[0] }) + }); + + for (let i = 0; i < paragraphs.length; i++) { + sectionIndex.add({ + id: `${url}_${i}`, + url, + title, + full, + pageId: `page_${pageId}`, + content: paragraphs[i] + }); + } + + pageContent += ` ${title} ${content}`; + } + + window.pageIndex.add({ + id: pageId, + title: data[route].title, + content: pageContent, + full: data[route].full + }); + + } + } + + /** + * Performs a search based on the provided query and displays the results. + * @param {Event} e - The event object. + */ + function search(e) { + let query = e.target.value; + + if (!e.target.value) { + hideSearchResults(); + return; + } + //console.log("search") + const { resultsElement } = getActiveSearchElement(); + while (resultsElement.firstChild) { + resultsElement.removeChild(resultsElement.firstChild); + } + resultsElement.classList.remove('hx-hidden'); + + const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || []; + //console.log(JSON.stringify(pageResults)) + const results = []; + const pageTitleMatches = {}; + + for (let i = 0; i < pageResults.length; i++) { + const result = pageResults[i]; + pageTitleMatches[i] = 0; + //console.log("looking at page id " + i) + //console.log(JSON.stringify(result)) + // Show the top 5 results for each page + const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || []; + let isFirstItemOfPage = true + const occurred = {} + + for (let j = 0; j < sectionResults.length; j++) { + const { doc } = sectionResults[j] + //console.log("looking at page counter id " + j) + //console.log(doc) + const isMatchingTitle = doc.display !== undefined + if (isMatchingTitle) { + pageTitleMatches[i]++ + } + const { url, title, full, base } = doc + // console.log(doc); + const content = doc.display || doc.content + const myRegexp = new RegExp("^https?:\/\/([^\/]+)", "g"); + const domainMatches = myRegexp.exec(result.doc.full) + const domain = domainMatches[1] + + let domainRank = 10 + + if ('devcenter.upsun.com' === domain) { + domainRank = 1; + } + + if (occurred[url + '@' + content]) continue + occurred[url + '@' + content] = true + results.push({ + _page_rk: i, + _section_rk: j, + _domain_rank: domainRank, + route: url, + //base: base, + prefix: isFirstItemOfPage ? result.doc.title : undefined, + full: result.doc.full || undefined, + //domain: domain, + children: { title, content, full} + }) + isFirstItemOfPage = false + } + } + + //console.log('pageTitleMatches:') + //console.log(JSON.stringify(pageTitleMatches)) + + const sortedResults = results + .sort((a, b) => { + if(a._domain_rank === b._domain_rank) { + if (a._page_rk === b._page_rk) { + return a._section_rk - b._section_rk + } else { + if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) { + return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk] + } + return a._page_rk - b._page_rk + } + } else { + return a._domain_rank - b._domain_rank + } + }) + .map(res => ({ + id: `${res._domain_rank}_${res._page_rk}_${res._section_rk}`, + route: res.route, + prefix: res.prefix, + children: res.children, + full:res.full, + //domain: res.domain, + })); + //console.log('Sorted results:') + //console.log(sortedResults) + displayResults(sortedResults, query); + } + + /** + * Displays the search results on the page. + * + * @param {Array} results - The array of search results. + * @param {string} query - The search query. + */ + function displayResults(results, query) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + if (!results.length) { + resultsElement.innerHTML = `{{ $noResultsFound | safeHTML }}`; + // let suggestions = document.getElementById('search-suggestions'); + // suggestions.classList.remove("hx-hidden"); + return; + } + // else { + // let suggestions = document.getElementById('search-suggestions'); + // suggestions.classList.add("hx-hidden"); + // } + + // Highlight the query in the result text. + function highlightMatches(text, query) { + const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + const regex = new RegExp(escapedQuery, 'gi'); + return text.replace(regex, (match) => `${match}`); + } + + // Create a DOM element from the HTML string. + function createElement(str) { + const div = document.createElement('div'); + div.innerHTML = str.trim(); + return div.firstChild; + } + + function handleMouseMove(e) { + const target = e.target.closest('a'); + if (target) { + const active = resultsElement.querySelector('a.active'); + if (active) { + active.classList.remove('active'); + } + target.classList.add('active'); + } + } + + const fragment = document.createDocumentFragment(); + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.prefix) { + fragment.appendChild(createElement(` + `)); + } + const myRegexp = new RegExp("^https?:\/\/([^\/]+)", "g"); + const domainMatches = myRegexp.exec(result.children.full) + const domain = domainMatches[1] + + let result_link = result.children.full; + let target = "target=\"_blank\"" + if ('devcenter.upsun.com' === domain) { + result_link = result.route; + target = "" + } + + let li = createElement(` +
  • + +
    `+ highlightMatches(result.children.title, query) + `
    ` + + `
    ${result.children.full}
    ` + + (result.children.content ? + `
    ` + highlightMatches(result.children.content, query) + `
    ` : '') + ` +
    +
  • `); + li.addEventListener('mousemove', handleMouseMove); + li.addEventListener('keydown', handleKeyDown); + li.querySelector('a').addEventListener('click', finishSearch); + fragment.appendChild(li); + } + resultsElement.appendChild(fragment); + resultsElement.dataset.count = results.length; + } + })(); diff --git a/themes/hextra-upsun/assets/js/flexsearch2 copy.js b/themes/hextra-upsun/assets/js/flexsearch2 copy.js new file mode 100644 index 0000000000..3eeeacc86b --- /dev/null +++ b/themes/hextra-upsun/assets/js/flexsearch2 copy.js @@ -0,0 +1,401 @@ +// Search functionality using FlexSearch. + +// Change shortcut key to cmd+k on Mac, iPad or iPhone. +document.addEventListener("DOMContentLoaded", function () { + if (/iPad|iPhone|Macintosh/.test(navigator.userAgent)) { + // select the kbd element under the .search-wrapper class + const keys = document.querySelectorAll(".search-wrapper kbd"); + keys.forEach(key => { + key.innerHTML = 'K'; + }); + } + }); + + // Render the search data as JSON. + // {{ $searchDataFile := printf "%s.search-data.json" .Language.Lang }} + // {{ $searchData := resources.Get "json/search-data.json" | resources.ExecuteAsTemplate $searchDataFile . }} + // {{ if hugo.IsProduction }} + // {{ $searchData := $searchData | minify | fingerprint }} + // {{ end }} + // {{ $noResultsFound := (T "noResultsFound") | default "No results found." }} + + (function () { + const searchDataURL = '{{ $searchData.RelPermalink }}'; + + const inputElements = document.querySelectorAll('.search-input'); + for (const el of inputElements) { + el.addEventListener('focus', init); + el.addEventListener('keyup', search); + el.addEventListener('keydown', handleKeyDown); + el.addEventListener('input', handleInputChange); + } + + const shortcutElements = document.querySelectorAll('.search-wrapper kbd'); + + function setShortcutElementsOpacity(opacity) { + shortcutElements.forEach(el => { + el.style.opacity = opacity; + }); + } + + function handleInputChange(e) { + const opacity = e.target.value.length > 0 ? 0 : 100; + setShortcutElementsOpacity(opacity); + } + + // Get the search wrapper, input, and results elements. + function getActiveSearchElement() { + const inputs = Array.from(document.querySelectorAll('.search-wrapper')).filter(el => el.clientHeight > 0); + if (inputs.length === 1) { + return { + wrapper: inputs[0], + inputElement: inputs[0].querySelector('.search-input'), + resultsElement: inputs[0].querySelector('.search-results') + }; + } + return undefined; + } + + const INPUTS = ['input', 'select', 'button', 'textarea'] + + // Focus the search input when pressing ctrl+k/cmd+k or /. + document.addEventListener('keydown', function (e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const activeElement = document.activeElement; + const tagName = activeElement && activeElement.tagName; + if ( + inputElement === activeElement || + !tagName || + INPUTS.includes(tagName) || + (activeElement && activeElement.isContentEditable)) + return; + + if ( + e.key === '/' || + (e.key === 'k' && + (e.metaKey /* for Mac */ || /* for non-Mac */ e.ctrlKey)) + ) { + e.preventDefault(); + inputElement.focus(); + } else if (e.key === 'Escape' && inputElement.value) { + inputElement.blur(); + } + }); + + // Dismiss the search results when clicking outside the search box. + document.addEventListener('mousedown', function (e) { + const { inputElement, resultsElement } = getActiveSearchElement(); + if (!inputElement || !resultsElement) return; + if ( + e.target !== inputElement && + e.target !== resultsElement && + !resultsElement.contains(e.target) + ) { + setShortcutElementsOpacity(100); + hideSearchResults(); + } + }); + + // Get the currently active result and its index. + function getActiveResult() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return { result: undefined, index: -1 }; + + const result = resultsElement.querySelector('.active'); + if (!result) return { result: undefined, index: -1 }; + + const index = parseInt(result.dataset.index, 10); + return { result, index }; + } + + // Set the active result by index. + function setActiveResult(index) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + const { result: activeResult } = getActiveResult(); + activeResult && activeResult.classList.remove('active'); + const result = resultsElement.querySelector(`[data-index="${index}"]`); + if (result) { + result.classList.add('active'); + result.focus(); + } + } + + // Get the number of search results from the DOM. + function getResultsLength() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return 0; + return resultsElement.dataset.count; + } + + // Finish the search by hiding the results and clearing the input. + function finishSearch() { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + hideSearchResults(); + inputElement.value = ''; + inputElement.blur(); + } + + function hideSearchResults() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + resultsElement.classList.add('hx-hidden'); + } + + // Handle keyboard events. + function handleKeyDown(e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const resultsLength = getResultsLength(); + const { result: activeResult, index: activeIndex } = getActiveResult(); + + switch (e.key) { + case 'ArrowUp': + e.preventDefault(); + if (activeIndex > 0) setActiveResult(activeIndex - 1); + break; + case 'ArrowDown': + e.preventDefault(); + if (activeIndex + 1 < resultsLength) setActiveResult(activeIndex + 1); + break; + case 'Enter': + e.preventDefault(); + if (activeResult) { + activeResult.click(); + } + finishSearch(); + case 'Escape': + e.preventDefault(); + hideSearchResults(); + // Clear the input when pressing escape + inputElement.value = ''; + inputElement.dispatchEvent(new Event('input')); + // Remove focus from the input + inputElement.blur(); + break; + } + } + + // Initializes the search. + function init(e) { + e.target.removeEventListener('focus', init); + if (!(window.pageIndex && window.sectionIndex)) { + preloadIndex(); + } + } + + /** + * Preloads the search index by fetching data and adding it to the FlexSearch index. + * @returns {Promise} A promise that resolves when the index is preloaded. + */ + async function preloadIndex() { + const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}'; + window.pageIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title'], + index: "content" + } + }); + + window.sectionIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'content', 'url', 'display'], + index: "content", + tag: 'pageId' + } + }); + + const resp = await fetch(searchDataURL); + const data = await resp.json(); + let pageId = 0; + for (const route in data) { + let pageContent = ''; + ++pageId; + + for (const heading in data[route].data) { + const [hash, text] = heading.split('#'); + const url = route.trimEnd('/') + (hash ? '#' + hash : ''); + const title = text || data[route].title; + + const content = data[route].data[heading] || ''; + const paragraphs = content.split('\n').filter(Boolean); + + sectionIndex.add({ + id: url, + url, + title, + pageId: `page_${pageId}`, + content: title, + ...(paragraphs[0] && { display: paragraphs[0] }) + }); + + for (let i = 0; i < paragraphs.length; i++) { + sectionIndex.add({ + id: `${url}_${i}`, + url, + title, + pageId: `page_${pageId}`, + content: paragraphs[i] + }); + } + + pageContent += ` ${title} ${content}`; + } + + window.pageIndex.add({ + id: pageId, + title: data[route].title, + content: pageContent + }); + + } + } + + /** + * Performs a search based on the provided query and displays the results. + * @param {Event} e - The event object. + */ + function search(e) { + const query = e.target.value; + if (!e.target.value) { + hideSearchResults(); + return; + } + + const { resultsElement } = getActiveSearchElement(); + while (resultsElement.firstChild) { + resultsElement.removeChild(resultsElement.firstChild); + } + resultsElement.classList.remove('hx-hidden'); + + const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || []; + + const results = []; + const pageTitleMatches = {}; + + for (let i = 0; i < pageResults.length; i++) { + const result = pageResults[i]; + pageTitleMatches[i] = 0; + + // Show the top 5 results for each page + const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || []; + let isFirstItemOfPage = true + const occurred = {} + + for (let j = 0; j < sectionResults.length; j++) { + const { doc } = sectionResults[j] + const isMatchingTitle = doc.display !== undefined + if (isMatchingTitle) { + pageTitleMatches[i]++ + } + const { url, title } = doc + const content = doc.display || doc.content + + if (occurred[url + '@' + content]) continue + occurred[url + '@' + content] = true + results.push({ + _page_rk: i, + _section_rk: j, + route: url, + prefix: isFirstItemOfPage ? result.doc.title : undefined, + children: { title, content } + }) + isFirstItemOfPage = false + } + } + const sortedResults = results + .sort((a, b) => { + // Sort by number of matches in the title. + if (a._page_rk === b._page_rk) { + return a._section_rk - b._section_rk + } + if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) { + return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk] + } + return a._page_rk - b._page_rk + }) + .map(res => ({ + id: `${res._page_rk}_${res._section_rk}`, + route: res.route, + prefix: res.prefix, + children: res.children + })); + displayResults(sortedResults, query); + } + + /** + * Displays the search results on the page. + * + * @param {Array} results - The array of search results. + * @param {string} query - The search query. + */ + function displayResults(results, query) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + if (!results.length) { + resultsElement.innerHTML = `{{ $noResultsFound | safeHTML }}`; + return; + } + + // Highlight the query in the result text. + function highlightMatches(text, query) { + const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + const regex = new RegExp(escapedQuery, 'gi'); + return text.replace(regex, (match) => `${match}`); + } + + // Create a DOM element from the HTML string. + function createElement(str) { + const div = document.createElement('div'); + div.innerHTML = str.trim(); + return div.firstChild; + } + + function handleMouseMove(e) { + const target = e.target.closest('a'); + if (target) { + const active = resultsElement.querySelector('a.active'); + if (active) { + active.classList.remove('active'); + } + target.classList.add('active'); + } + } + + const fragment = document.createDocumentFragment(); + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.prefix) { + fragment.appendChild(createElement(` +
    ${result.prefix}
    `)); + } + let li = createElement(` +
  • + +
    `+ highlightMatches(result.children.title, query) + `
    ` + + (result.children.content ? + `
    ` + highlightMatches(result.children.content, query) + `
    ` : '') + ` +
    +
  • `); + li.addEventListener('mousemove', handleMouseMove); + li.addEventListener('keydown', handleKeyDown); + li.querySelector('a').addEventListener('click', finishSearch); + fragment.appendChild(li); + } + resultsElement.appendChild(fragment); + resultsElement.dataset.count = results.length; + } + })(); + \ No newline at end of file diff --git a/themes/hextra-upsun/assets/js/flexsearch3.js b/themes/hextra-upsun/assets/js/flexsearch3.js new file mode 100644 index 0000000000..7095272089 --- /dev/null +++ b/themes/hextra-upsun/assets/js/flexsearch3.js @@ -0,0 +1,311 @@ +// Render the search data as JSON. +// {{ $searchDataFile := printf "%s.search-data.json" .Language.Lang }} +// {{ $searchData := resources.Get "json/search-data.json" | resources.ExecuteAsTemplate $searchDataFile . }} +// {{ if hugo.IsProduction }} +// {{ $searchData := $searchData | minify | fingerprint }} +// {{ end }} +// {{ $noResultsFound := (T "noResultsFound") | default "No results found." }} + + +document.getElementById('main-search') + .addEventListener('keyup', function(event) { + if (event.code === 'Enter') + { + event.preventDefault(); + document.querySelector('form').submit(); + } + }); + +function getParameterByName(name, url = window.location.href) { + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); +} + +function getActiveSearchElement() { + const inputs = Array.from(document.querySelectorAll('.search-wrapper')).filter(el => el.clientHeight > 0); + // console.log(inputs.length) + if (inputs.length === 1) { + // console.log(inputs[0]); + // console.log(inputs[0].querySelector('.search-form').querySelector('.search-input')); + // console.log(document.getElementById('results-wrapper').querySelector('.search-results')); + return { + wrapper: inputs[0], + inputElement: inputs[0].querySelector('.search-form').querySelector('.search-input'), + resultsElement: document.getElementById('results-wrapper').querySelector('.search-results') + // inputElement: document.getElementById('main-search'), + // resultsElement: inputs[0].querySelector('.search-results') + }; + } + return undefined; + } + +function getActiveResult() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return { result: undefined, index: -1 }; + + const result = resultsElement.querySelector('.active'); + if (!result) return { result: undefined, index: -1 }; + + const index = parseInt(result.dataset.index, 10); + return { result, index }; +} + +/** + * Performs a search based on the provided query and displays the results. + * @param {Event} e - The event object. + */ +function search(e) { + const query = e + // if (!e.target.value) { + // hideSearchResults(); + // return; + // } + console.log(query); + const { resultsElement } = getActiveSearchElement(); + console.log(resultsElement); + // while (resultsElement.firstChild) { + // resultsElement.removeChild(resultsElement.firstChild); + // } + // resultsElement.classList.remove('hx-hidden'); + console.log(window.pageIndex.search("discord")) + const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || []; + console.log(pageResults); + + const results = []; + const pageTitleMatches = {}; + + for (let i = 0; i < pageResults.length; i++) { + const result = pageResults[i]; + pageTitleMatches[i] = 0; + + // Show the top 5 results for each page + const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || []; + let isFirstItemOfPage = true + const occurred = {} + + for (let j = 0; j < sectionResults.length; j++) { + const { doc } = sectionResults[j] + const isMatchingTitle = doc.display !== undefined + if (isMatchingTitle) { + pageTitleMatches[i]++ + } + const { url, title } = doc + const content = doc.display || doc.content + + if (occurred[url + '@' + content]) continue + occurred[url + '@' + content] = true + results.push({ + _page_rk: i, + _section_rk: j, + route: url, + prefix: isFirstItemOfPage ? result.doc.title : undefined, + children: { title, content } + }) + isFirstItemOfPage = false + } + } + const sortedResults = results + .sort((a, b) => { + // Sort by number of matches in the title. + if (a._page_rk === b._page_rk) { + return a._section_rk - b._section_rk + } + if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) { + return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk] + } + return a._page_rk - b._page_rk + }) + .map(res => ({ + id: `${res._page_rk}_${res._section_rk}`, + route: res.route, + prefix: res.prefix, + children: res.children + })); + console.log(sortedResults); + displayResults(sortedResults, query); +} + +/** + * Displays the search results on the page. + * + * @param {Array} results - The array of search results. + * @param {string} query - The search query. + */ +function displayResults(results, query) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + if (!results.length) { + resultsElement.innerHTML = `{{ $noResultsFound | safeHTML }}`; + return; + } + + // Highlight the query in the result text. + function highlightMatches(text, query) { + const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + const regex = new RegExp(escapedQuery, 'gi'); + return text.replace(regex, (match) => `${match}`); + } + + // Create a DOM element from the HTML string. + function createElement(str) { + const div = document.createElement('div'); + div.innerHTML = str.trim(); + return div.firstChild; + } + + function handleMouseMove(e) { + const target = e.target.closest('a'); + if (target) { + const active = resultsElement.querySelector('a.active'); + if (active) { + active.classList.remove('active'); + } + target.classList.add('active'); + } + } + + const fragment = document.createDocumentFragment(); + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.prefix) { + fragment.appendChild(createElement(` +
    ${result.prefix}
    `)); + } + let li = createElement(` +
  • + +
    `+ highlightMatches(result.children.title, query) + `
    ` + + (result.children.content ? + `
    ` + highlightMatches(result.children.content, query) + `
    ` : '') + ` +
    +
  • `); + li.addEventListener('mousemove', handleMouseMove); + li.addEventListener('keydown', handleKeyDown); + li.querySelector('a').addEventListener('click', finishSearch); + fragment.appendChild(li); + } + resultsElement.appendChild(fragment); + resultsElement.dataset.count = results.length; +} + +// Initializes the search. +function init() { + // e.target.removeEventListener('focus', init); + if (!(window.pageIndex && window.sectionIndex)) { + preloadIndex(); + } +} + +/** + * Preloads the search index by fetching data and adding it to the FlexSearch index. + * @returns {Promise} A promise that resolves when the index is preloaded. + */ +async function preloadIndex() { + const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}'; + window.pageIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title'], + index: "content" + } + }); + console.log(pageIndex); + window.sectionIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'content', 'url', 'display'], + index: "content", + tag: 'pageId' + } + }); + const searchDataURL = '{{ $searchData.RelPermalink }}'; + const resp = await fetch(searchDataURL); + const data = await resp.json(); + console.log(data) + let pageId = 0; + for (const route in data) { + // console.log(route); + let pageContent = ''; + ++pageId; + + for (const heading in data[route].data) { + const [hash, text] = heading.split('#'); + const url = route.trimEnd('/') + (hash ? '#' + hash : ''); + const title = text || data[route].title; + + const content = data[route].data[heading] || ''; + const paragraphs = content.split('\n').filter(Boolean); + + sectionIndex.add({ + id: url, + url, + title, + pageId: `page_${pageId}`, + content: title, + ...(paragraphs[0] && { display: paragraphs[0] }) + }); + + for (let i = 0; i < paragraphs.length; i++) { + sectionIndex.add({ + id: `${url}_${i}`, + url, + title, + pageId: `page_${pageId}`, + content: paragraphs[i] + }); + } + + pageContent += ` ${title} ${content}`; + } + + window.pageIndex.add({ + id: pageId, + title: data[route].title, + content: pageContent + }); + } + console.log(window.pageIndex); +} + +(() => { + 'use strict'; + window.addEventListener('DOMContentLoaded', () => { + let currentQuery = getParameterByName('q'); + let form = document.getElementById('main-search'); + if (currentQuery !== null) { + form.value = currentQuery; + // let landing = document.getElementById('search-landing'); + // landing.classList.add("hx-hidden"); + // let suggestions = document.getElementById('search-suggestions'); + // suggestions.classList.add("hx-hidden"); + + form.focus(); + + // console.log(currentQuery); + + // const searchDataURL = '{{ $searchData.RelPermalink }}'; + // console.log(searchDataURL); + + // init(); + // search(currentQuery); + + // search + + + } else { + let results = document.getElementById('results-wrapper'); + results.classList.add("hx-hidden"); + form.focus(); + } + }); +})(); + diff --git a/themes/hextra-upsun/assets/json/search-data.json b/themes/hextra-upsun/assets/json/search-data.json new file mode 100644 index 0000000000..079f0d6b8f --- /dev/null +++ b/themes/hextra-upsun/assets/json/search-data.json @@ -0,0 +1,22 @@ +{{/* FlexSearch Index Data */}} +{{- $indexType := site.Params.search.flexsearch.index | default "content" -}} +{{- $baseURL := .Site.Params.prodURL -}} +{{- if not (in (slice "content" "summary" "heading" "title" ) $indexType) -}} + {{- errorf "unknown flexsearch index type: %s" $indexType -}} +{{- end -}} + +{{- $pages := where .Site.Pages "Kind" "in" (slice "page" "section") -}} +{{- $pages = where $pages "Params.excludeSearch" "!=" true -}} +{{- $pages = where $pages "Content" "!=" "" -}} + +{{- $output := dict -}} + +{{- range $index, $page := $pages -}} + {{- $pageTitle := $page.LinkTitle | default $page.File.BaseFileName -}} + {{- $pageLink := $page.RelPermalink -}} + {{- $fullURL := printf "%s%s" $baseURL $pageLink -}} + {{- $data := partial "utils/fragments" (dict "context" $page "type" $indexType) -}} + {{- $output = $output | merge (dict $pageLink (dict "title" $pageTitle "data" $data "base" $baseURL "full" $fullURL )) -}} +{{- end -}} + +{{- $output | jsonify -}} \ No newline at end of file diff --git a/themes/hextra-upsun/i18n/en.yaml b/themes/hextra-upsun/i18n/en.yaml new file mode 100644 index 0000000000..510b952d78 --- /dev/null +++ b/themes/hextra-upsun/i18n/en.yaml @@ -0,0 +1,14 @@ +backToTop: "Scroll to top" +changeLanguage: "Change language" +changeTheme: "Change theme" +copyCode: "Copy code" +copyright: "© 2024 [Upsun](https://upsun.com). All rights reserved." +dark: "Dark" +editThisPage: "Edit this page on GitHub →" +lastUpdated: "Last updated on" +light: "Light" +noResultsFound: "No results found." +onThisPage: "On this page" +poweredBy: "Powered by Hextra" +readMore: "Read more →" +searchPlaceholder: "Search..." \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/404.html b/themes/hextra-upsun/layouts/404.html new file mode 100644 index 0000000000..4df429dfca --- /dev/null +++ b/themes/hextra-upsun/layouts/404.html @@ -0,0 +1,30 @@ +{{ define "main" }} +
    +
    + +

    404

    +
    +

    This page could not be found.

    +
    +
    +
    +{{- end -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/_default/baseof.html b/themes/hextra-upsun/layouts/_default/baseof.html new file mode 100644 index 0000000000..9da4d0a931 --- /dev/null +++ b/themes/hextra-upsun/layouts/_default/baseof.html @@ -0,0 +1,18 @@ + + + + {{- partial "head.html" . -}} + {{- $currentPage := printf "%s%s" ( .Site.BaseURL ) ( .Page.RelPermalink ) -}} + + + {{- partial "custom/gtm/noscript.html" . -}} + {{- partial "navbar.html" . -}} + {{- block "main" . }}{{ end -}} + {{- if or (eq .Site.Params.footer.enable nil) (.Site.Params.footer.enable) }} + {{ partial "footer.html" . }} + {{ end }} + {{ partial "scripts.html" . }} + + diff --git a/themes/hextra-upsun/layouts/articles/list.html b/themes/hextra-upsun/layouts/articles/list.html new file mode 100644 index 0000000000..0a013da317 --- /dev/null +++ b/themes/hextra-upsun/layouts/articles/list.html @@ -0,0 +1,48 @@ +{{ define "main" }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    +
    +

    {{ .Title }}

    + + + + + {{ .Content }} + +
    + +
    + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/blog/list.html b/themes/hextra-upsun/layouts/blog/list.html new file mode 100644 index 0000000000..a375ad6d7b --- /dev/null +++ b/themes/hextra-upsun/layouts/blog/list.html @@ -0,0 +1,39 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    +
    + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true) }} + + +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/blog/single.html b/themes/hextra-upsun/layouts/blog/single.html new file mode 100644 index 0000000000..4e8c922d70 --- /dev/null +++ b/themes/hextra-upsun/layouts/blog/single.html @@ -0,0 +1,63 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "breadcrumb.html" . }} + +

    {{ .Title }}

    +
    + {{ range .Params.tags }} + {{ . }} + {{ end }} +
    +
    + {{ printf "Estimated reading time: %d minutes" .ReadingTime }} +
    +
    + {{- with $date := .Date }}{{ partial "utils/format-date" $date }}{{ end -}} + {{- $lazyLoading := site.Params.enableImageLazyLoading | default true -}} + + {{ if and .Date .Params.author }}·{{ end -}} + {{- with $.Params.author -}} + {{- range $i, $author := . -}} + {{ with ( $context.Site.GetPage ( printf "/profiles/%s" $author ) ) }} + + {{- if isset . "image" -}} + {{- with $image := .image }} + {{- $isLocal := not (urls.Parse $image).Scheme -}} + {{- $startsWithSlash := hasPrefix $image "/" -}} + {{- if and $isLocal $startsWithSlash }} + {{- $image = (relURL (strings.TrimPrefix "/" $image)) -}} + {{ end -}} + {{ .Title}} + {{ end -}} + {{- else -}} + {{ .Title }} + {{- end -}} +
    {{ .Title }}
    +
    + + {{ end }} + {{- end -}} + {{- end -}} +
    +
    + {{ .Content }} +
    + {{ partial "components/last-updated.html" . }} + {{ .Scratch.Set "reversePagination" true }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/event/single.html b/themes/hextra-upsun/layouts/event/single.html new file mode 100644 index 0000000000..f4f29024eb --- /dev/null +++ b/themes/hextra-upsun/layouts/event/single.html @@ -0,0 +1,133 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "custom/section-back.html" (dict "context" . "ancestors" ( slice "/community" "/community/engage/events" )) }} +
    + {{ if isset .Page.Params "image" }} + + {{ else }} + + {{ end }} +

    {{ .Title }}

    +

    + {{ if isset .Page.Params "end" }} + {{ $s := time.AsTime .Page.Params.start }} + {{ $e := time.AsTime .Page.Params.end }} + {{ $s.Format "02 Jan" }} - {{ $e.Format "02 Jan 2006" }} + {{ else }} + {{ $t := time.AsTime .Page.Params.start }} + {{ $t.Format "02 Jan 2006" }} + {{ end }} +

    +

    + {{ if isset .Params.links "website" }} + + {{- partial "utils/icon.html" (dict "name" "globe-alt" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "schedule" }} + + {{- partial "utils/icon.html" (dict "name" "calendar" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "recordings" }} + + {{- partial "utils/icon.html" (dict "name" "video-camera" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "twitter" }} + + {{- partial "utils/icon.html" (dict "name" "x-twitter" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "github" }} + + {{- partial "utils/icon.html" (dict "name" "github" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "linkedin" }} + + {{- partial "utils/icon.html" (dict "name" "linkedin" "attributes" "height=1.25em") -}} + + {{ end }} +

    + {{ .Content }} +
    +
    + + {{ $videos := .Site.GetPage "/community/content/videos" }} + {{ $categories := slice ( "talks" ) }} + {{ $allTalks := where $videos.Pages "Params.categories" "intersect" $categories }} + + {{ $eventID := "" }} + {{ with .Page.File }} + {{ $eventID = .BaseFileName }} + {{ end }} + {{ $eventTalks := where $allTalks ".Params.event" "eq" $eventID }} + + {{ if ( len $eventTalks ) }} +

    Talks

    + + {{ end }} + {{ partial "components/last-updated.html" . }} + +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/events/list.html b/themes/hextra-upsun/layouts/events/list.html new file mode 100644 index 0000000000..d1a1bcfb77 --- /dev/null +++ b/themes/hextra-upsun/layouts/events/list.html @@ -0,0 +1,55 @@ +{{ define "main" }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    +
    +

    {{ .Title }}

    + {{ .Content }} + + {{ $pages := where .Site.RegularPages ".Path" "like" `/community/engage/events` }} + {{ $pastEvents := where $pages ".Date.Unix" "lt" time.Now.Unix }} + {{ $upcomingEvents := where $pages ".Date.Unix" "ge" time.Now.Unix }} + +

    Upcoming events

    + {{ range $upcomingEvents.ByDate }} +
    + {{ if isset .Params "end" }} + {{ $s := time.AsTime .Params.start }} + {{ $e := time.AsTime .Params.end }} + + {{ else }} + {{ $t := time.AsTime .Params.start }} + + {{ end }} + {{ .Title }} +
    + {{ end }} + +

    Past events

    + + {{ range $pastEvents }} +
    + {{ if isset .Params "end" }} + {{ $s := time.AsTime .Params.start }} + {{ $e := time.AsTime .Params.end }} + + {{ else }} + {{ $t := time.AsTime .Params.start }} + + {{ end }} + {{ .Title }} +
    + {{ end }} + + +
    + +
    + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/events/single.html b/themes/hextra-upsun/layouts/events/single.html new file mode 100644 index 0000000000..ec7700335a --- /dev/null +++ b/themes/hextra-upsun/layouts/events/single.html @@ -0,0 +1,134 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
    +
    +
    +
    + {{ if isset .Page.Params "image" }} + + {{ else }} + + {{ end }} +

    {{ .Title }}

    +

    + {{ if isset .Page.Params "end" }} + {{ $s := time.AsTime .Page.Params.start }} + {{ $e := time.AsTime .Page.Params.end }} + {{ $s.Format "02 Jan" }} - {{ $e.Format "02 Jan 2006" }} + {{ else }} + {{ $t := time.AsTime .Page.Params.start }} + {{ $t.Format "02 Jan 2006" }} + {{ end }} +

    +

    + {{ if isset .Params.links "website" }} + + {{- partial "utils/icon.html" (dict "name" "globe-alt" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "schedule" }} + + {{- partial "utils/icon.html" (dict "name" "calendar" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "recordings" }} + + {{- partial "utils/icon.html" (dict "name" "video-camera" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "twitter" }} + + {{- partial "utils/icon.html" (dict "name" "x-twitter" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "github" }} + + {{- partial "utils/icon.html" (dict "name" "github" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "linkedin" }} + + {{- partial "utils/icon.html" (dict "name" "linkedin" "attributes" "height=1.25em") -}} + + {{ end }} +

    + + {{ .Content }} + +
    +
    + {{ $talks := where .Site.Data.media ".categories" "intersect" ( slice "talks" ) }} + {{ $eventID := "" }} + {{ with .Page.File }} + {{ $eventID = .BaseFileName }} + {{ end }} + {{ $eventTalks := where $talks ".event" "eq" $eventID }} + {{ if ( len $eventTalks ) }} +

    Talks

    + + {{ end }} +
    + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/media/list.html b/themes/hextra-upsun/layouts/media/list.html new file mode 100644 index 0000000000..556b2e5be8 --- /dev/null +++ b/themes/hextra-upsun/layouts/media/list.html @@ -0,0 +1,40 @@ +{{ define "main" }} +
    +

    {{ .Title | safeHTML }}

    + +{{ end }} diff --git a/themes/hextra-upsun/layouts/media/single.html b/themes/hextra-upsun/layouts/media/single.html new file mode 100644 index 0000000000..e9d9dc5951 --- /dev/null +++ b/themes/hextra-upsun/layouts/media/single.html @@ -0,0 +1,107 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "breadcrumb.html" . }} + +

    {{ .Title }}

    + {{ if isset .Params "subtitle" }} + + {{ end }} + + +
    + {{- with $date := .Date }}{{ partial "utils/format-date" $date }}{{ end -}} + {{- $lazyLoading := site.Params.enableImageLazyLoading | default false -}} + + {{ if and .Date .Params.author }}·{{ end -}} + {{- with $.Params.author -}} + {{- range $i, $author := . -}} + {{ $pageCheck := ( $context.Site.GetPage ( printf "/community/engage/people/%s" $author ) ) }} + {{ if ne $pageCheck.Title "" }} + {{ with ( $context.Site.GetPage ( printf "/community/engage/people/%s" $author ) ) }} + + {{- $page := . -}} + {{- if isset .Params "image" -}} + {{- with $image := .Params.image }} + {{- $isLocal := not (urls.Parse $image).Scheme -}} + {{- $startsWithSlash := hasPrefix $image "/" -}} + {{- if and $isLocal $startsWithSlash }} + {{- $image = (relURL (strings.TrimPrefix "/" $image)) -}} + {{ end -}} + {{ $page.Title}} + {{ end -}} + {{- else -}} + {{ .Title }} + {{- end -}} +
    {{ .Title }}
    +
    + + {{ end }} + {{ else }} + {{ $ghCheck := printf "https://github.com/%s" $author }} + {{ with resources.GetRemote $ghCheck }} + + {{ $author }} +
    {{ $author }}
    +
    + {{ else }} + + {{ $author }} +
    {{ $author }}
    +
    + {{ end }} + {{ end }} + {{- end -}} + + {{- end -}} +
    +
    + {{ if and ( isset .Params "playlist" ) ( ne .Params.embed false ) }} + playlist +
    + +
    + {{ else if ne .Params.embed false }} +
    + +
    + {{ end }} +
    + {{ .Content }} + +
    + {{ partial "components/last-updated.html" . }} + + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/partials/bun/body.md b/themes/hextra-upsun/layouts/partials/bun/body.md new file mode 100644 index 0000000000..f206ced055 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/bun/body.md @@ -0,0 +1,3 @@ +{{ $content := `[Bun is available as a runtime and package manager](https://platform.sh/blog/bun-support-is-here/) for Node.js **versions 20 or above**.`}} + +{{ partial "premium-features/banner" ( dict "context" . "content" $content "title" "Availability" )}} diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-children-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-children-styles.html new file mode 100644 index 0000000000..76302b2719 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-children-styles.html @@ -0,0 +1 @@ +[&>:first-child]:mt-0 [&>:last-child]:mb-0 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-active-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-active-styles.html new file mode 100644 index 0000000000..d7190ed404 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-active-styles.html @@ -0,0 +1 @@ +!text-ebony font-bold border-b \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-styles.html new file mode 100644 index 0000000000..1e8debcfa4 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-link-styles.html @@ -0,0 +1 @@ +mx-2 py-1 px-2 text-base xl:text-lg border-ebony text-slate font-semibold hover:text-ebony hover:border-b hover:font-bold hover:no-underline \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-control-list-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-list-styles.html new file mode 100644 index 0000000000..d8df0d6778 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-list-styles.html @@ -0,0 +1 @@ +flex list-none border-b border-stone !m-0 !pl-0 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-control-tab-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-tab-styles.html new file mode 100644 index 0000000000..4db1d6fdb8 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-control-tab-styles.html @@ -0,0 +1 @@ +text-sm xl:text-base border-b !mb-0 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tab-styles.html b/themes/hextra-upsun/layouts/partials/codetabs/tab-styles.html new file mode 100644 index 0000000000..72f034e8c1 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tab-styles.html @@ -0,0 +1 @@ +border border-stone px-5 pt-6 pb-4 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/codetabs/tabs.html b/themes/hextra-upsun/layouts/partials/codetabs/tabs.html new file mode 100644 index 0000000000..e34aa36141 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/codetabs/tabs.html @@ -0,0 +1,131 @@ + +{{- $splitTabChar := "<--->" -}} +{{- $paramFrontMatterChar := "\n+++\n" -}} + +{{- $allParams := newScratch -}} +{{- $allContent := newScratch -}} + +{{- $tabIndex := 0 -}} +{{- $tabKeys := slice -}} +{{- range split .Inner $splitTabChar -}} + + {{- $splitParams := ( split . $paramFrontMatterChar ) -}} + {{- $params := index $splitParams 1 -}} + {{- $body := index $splitParams 2 -}} + + + {{- $tabParams := newScratch -}} + {{- range (split $params "\n") -}} + {{- $key := index ( split . "=" ) 0 -}} + {{- $value := index ( split . "=" ) 1 -}} + {{- $tabParams.Set $key $value -}} + {{- end -}} + {{- $allParams.Set ( string $tabIndex ) $tabParams -}} + + + {{- $allContent.Set ( string $tabIndex ) $body -}} + + + + {{- $tabKeys = $tabKeys | append ( string $tabIndex ) -}} + {{- $tabIndex = add $tabIndex 1 -}} + +{{- end -}} + + +
    + + +
      + + {{- range $tabKeys -}} + + {{- $tabIndex = . -}} + + {{- with ( $allParams.Get $tabIndex ) -}} + + {{- $title := .Get "title" -}} + + + {{- $codetabCodename := $title | urlize -}} + {{- if eq $tabIndex "0" -}} + {{- $codetabCodename = "default" -}} + {{- end -}} + +
    • + + {{- $title | markdownify -}} + +
    • + + {{- end -}} + + {{- end -}} + + +
    + + +
    + + {{- range $tabKeys -}} + + {{- $tabIndex = . -}} + + {{- with ( $allParams.Get $tabIndex ) -}} + + + {{- $title := .Get "title" -}} + {{- $codetabCodename := $title | urlize -}} + {{- if eq $tabIndex "0" -}} + {{- $codetabCodename = "default" -}} + {{- end -}} + +
    + + {{- $content := $allContent.Get $tabIndex -}} + {{- with ( $allParams.Get $tabIndex ) -}} + {{- if ne (.Get "highlight") nil -}} + {{- if ne (.Get "file") nil -}} + + {{- if ne ( len ( getenv "GITHUB_API_TOKEN" ) ) 0 -}} + {{- $content := readFile ( .Get "file" ) | default "" -}} + {{- $contentLength := len $content -}} + {{- if ne $contentLength 0 -}} + {{- highlight $content ( .Get "highlight") "style=abap" | chomp -}} + {{- else -}} + {{ errorf "File %s not found" ( .Get "file" ) -}} + {{- end -}} + {{- else -}} + {{ partial "file-not-found" ( .Get "file" ) -}} + {{- end -}} + + {{- else -}} + {{- highlight $content ( .Get "highlight") "style=abap" | chomp -}} + {{- end -}} + {{- else -}} + {{- if ne (.Get "file") nil -}} + {{- readFile ( .Get "file" ) | markdownify | chomp -}} + {{- else -}} + {{- $content | $.Page.RenderString -}} + {{- end -}} + {{- end -}} + {{- end -}} + +
    + + {{- end -}} + + {{- end -}} +
    +
    diff --git a/themes/hextra-upsun/layouts/partials/components/codeblock.html b/themes/hextra-upsun/layouts/partials/components/codeblock.html new file mode 100644 index 0000000000..86395ddaa4 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/components/codeblock.html @@ -0,0 +1,24 @@ +{{ $filename := .filename | default "" -}} +{{ $lang := .lang | default "" }} +{{ $content := .content }} +{{ $options := .options | default dict }} + +{{- if $filename -}} +
    {{ $filename }}
    +{{- end -}} +{{- if eq $filename "Terminal" }} + {{- $override := dict "noclasses" true "style" "native" }} + {{- range $key, $value := $override }} + {{- $options = merge $options (dict $key $value) }} + {{- end }} +{{- else -}} + {{ $override := dict }} +{{- end -}} + +{{- if transform.CanHighlight $lang -}} +
    {{- highlight $content $lang $options -}}
    +{{- else -}} +
    {{ $content }}
    +{{- end }} + + diff --git a/themes/hextra-upsun/layouts/partials/content-sidebar.html b/themes/hextra-upsun/layouts/partials/content-sidebar.html new file mode 100644 index 0000000000..621c4e1407 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/content-sidebar.html @@ -0,0 +1,204 @@ +{{- $context := .context -}} + +{{- $disableSidebar := .disableSidebar | default false -}} +{{- $displayPlaceholder := .displayPlaceholder | default false -}} + +{{- $sidebarClass := cond $disableSidebar (cond $displayPlaceholder "md:hx-hidden xl:hx-block" "md:hx-hidden") "md:hx-sticky" -}} + +{{- $navRoot := cond (eq site.Home.Type "docs") site.Home $context.FirstSection -}} +{{- $pageURL := $context.RelPermalink -}} + +{{/* EXPERIMENTAL */}} +{{- if .context.Params.sidebar.hide -}} + {{- $disableSidebar = true -}} + {{- $displayPlaceholder = true -}} +{{- end -}} + + +{{ $overrideActive := "" }} +{{ if in .context.Page.Path "/community/post/" }} + {{ $overrideActive = .context.GetPage "/community/posts"}} +{{ end }} + +
    + + +{{- define "sidebar-main" -}} + {{ template "sidebar-tree" (dict "context" .context "level" 0 "page" .page "pageURL" .pageURL "toc" (.toc | default false)) }} +{{- end -}} + +{{- define "sidebar-tree" -}} + + {{ $overrideActive := "" }} + {{ $overriddes := index .context.Site.Params.overrides "sidebar-active" }} + {{ $context := .context }} + {{ $page := .page }} + {{ range $k, $v := $overriddes}} + {{ if in $page.Path $k }} + {{ $overrideActive = $context.GetPage $v }} + {{ end }} + {{ end }} + + {{- if ge .level 4 -}} + {{- return -}} + {{- end -}} + + {{- $context := .context -}} + {{- $page := .page }} + {{- $pageURL := .page.RelPermalink -}} + {{- $level := .level -}} + {{- $toc := .toc | default false -}} + + {{- with $items := union .context.RegularPages .context.Sections -}} + {{- $items = where $items "Params.sidebar.exclude" "!=" true -}} + {{- if eq $level 0 -}} + {{- range $items.ByWeight }} + {{- if .Params.sidebar.separator -}} +
  • + {{ partial "utils/title" . }} +
  • + {{- else -}} + {{- $active := eq $pageURL .RelPermalink -}} + {{- if and ( ne $overrideActive "" ) ( eq . $overrideActive ) -}} + {{ $active = true }} + {{- end -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} +
  • + {{- $linkTitle := partial "utils/title" . -}} + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{- template "sidebar-toc" dict "page" . -}} + {{- end -}} + {{- template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc -}} +
  • + {{- end -}} + {{- end -}} + {{- else if not $context.Params.sidebar.excludechildren -}} +
    +
      + {{- range $items.ByWeight }} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} + {{- $linkTitle := partial "utils/title" . -}} +
    • + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{ template "sidebar-toc" dict "page" . }} + {{- end }} + {{ template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc }} +
    • + {{- end -}} +
    +
    + {{- end -}} + {{- end }} +{{- end -}} + +{{- define "sidebar-toc" -}} + {{ $page := .page }} + {{ with $page.Fragments.Headings }} +
      + {{- range . }} + {{- with .Headings }} + {{- range . -}} +
    • + + {{- .Title -}} + +
    • + {{ end -}} + {{ end -}} + {{ end -}} +
    + {{ end }} +{{- end -}} + +{{- define "sidebar-footer" -}} + {{- range site.Menus.sidebar -}} + {{- $name := or (T .Identifier) .Name -}} + {{ if eq .Params.type "separator" }} +
  • + {{ $name }} +
  • + {{ else }} +
  • {{ template "sidebar-item-link" dict "active" false "title" $name "link" (.URL | relLangURL) }}
  • + {{ end }} + {{- end -}} +{{- end -}} + +{{- define "sidebar-item-link" -}} + {{- $external := strings.HasPrefix .link "http" -}} + {{- $link := .link -}} + {{- if isset .context.Params.sidebar "link" -}} + {{- $external = true -}} + {{- $link = .context.Params.sidebar.link -}} + {{- end -}} + {{- $open := .open | default true -}} + + {{- .title -}} + {{- with .context }} + {{- if or .RegularPages .Sections }} + {{- if not .Params.sidebar.excludechildren -}} + + {{- template "sidebar-collapsible-button" -}} + + {{- end -}} + {{- end }} + {{ end -}} + +{{- end -}} + +{{- define "sidebar-collapsible-button" -}} + +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/continuous-profiling-sellable/body.md b/themes/hextra-upsun/layouts/partials/continuous-profiling-sellable/body.md new file mode 100644 index 0000000000..04d0910557 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/continuous-profiling-sellable/body.md @@ -0,0 +1,4 @@ +{{ $content := `By default, {{% vendor/name %}} offers 15 minutes of continuous profiling per project and for free. +To get 30 days of continuous profiling per project and for a fixed fee, [upgrade to the Continuous Profiling add-on](/administration/billing/add-on-subscription.md#continuous-profiling-add-on).`}} + +{{ partial "premium-features/banner" ( dict "context" . "content" $content "title" "Feature Availability" )}} diff --git a/themes/hextra-upsun/layouts/partials/custom/all-articles.html b/themes/hextra-upsun/layouts/partials/custom/all-articles.html new file mode 100644 index 0000000000..6b802bf04a --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/all-articles.html @@ -0,0 +1,26 @@ +{{ $contentType := "posts" }} +{{ $output := dict }} +{{ $data := dict }} +{{ $attribution := "by" }} +{{ $context := . }} +{{ $outerContext := .context}} + + +{{ $posts := .context.Site.GetPage ( printf "/%s/" $contentType ) }} +{{ range $posts.RegularPages }} + {{ if ne .Title "Categories" }} + {{ $path := .RelPermalink }} + {{ $title := .Title }} + {{ $subtitle := .Params.subtitle | default false }} + {{ $full := printf "%s%s" $outerContext.Site.Params.prodURL .RelPermalink }} + {{ $image := .Params.image | default ( index site.Params.contrib "defaultImage" "posts" ) }} + {{ $imageAlt := .Params.image_alt | default ( "" ) }} + {{ $author := .Params.author }} + {{ $categories := .Params.categories }} + {{ $date := .Date }} + {{ $draft := .Params.draft | default false }} + {{- $output = $output | merge (dict $path (dict "title" $title "subtitle" $subtitle "full" $full "path" $path "image" $image "image_alt" $imageAlt "author" $author "categories" $categories "date" $date "draft" $draft )) -}} + {{ end }} +{{ end }} + +{{ return $output }} diff --git a/themes/hextra-upsun/layouts/partials/custom/announcement.html b/themes/hextra-upsun/layouts/partials/custom/announcement.html new file mode 100644 index 0000000000..061c740987 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/announcement.html @@ -0,0 +1,33 @@ + + +{{ $announcementContent := .context.Site.Params.announcement.message }} + + diff --git a/themes/hextra-upsun/layouts/partials/custom/banner.html b/themes/hextra-upsun/layouts/partials/custom/banner.html new file mode 100644 index 0000000000..ede5e23700 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/banner.html @@ -0,0 +1,70 @@ +{{- $logoPath := .Site.Params.navbar.logo.path | default "images/logo.svg" -}} +{{- $logoLink := .Site.Params.navbar.logo.link | default .Site.Home.RelPermalink -}} +{{- $logoWidth := .Site.Params.navbar.logo.width | default "20" -}} +{{- $logoHeight := .Site.Params.navbar.logo.height | default "20" -}} +{{- $logoDarkPath := .Site.Params.navbar.logo.dark | default $logoPath -}} + +{{- $navWidth := "hx-max-w-[90rem]" -}} +{{- with .Site.Params.navbar.width -}} + {{ if eq . "normal" -}} + {{ $navWidth = "hx-max-w-screen-xl" -}} + {{ else if eq . "full" -}} + {{ $navWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + + diff --git a/themes/hextra-upsun/layouts/partials/custom/blog-toc.html b/themes/hextra-upsun/layouts/partials/custom/blog-toc.html new file mode 100644 index 0000000000..871511b041 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/blog-toc.html @@ -0,0 +1,81 @@ +{{/* Table of Contents */}} +{{/* TODO: toc bottom part should be able to hide */}} +{{- $toc := .Params.toc | default true -}} +{{- $onThisPage := (T "onThisPage") | default "On this page"}} +{{- $editThisPage := (T "editThisPage") | default "Edit this page"}} +{{- $backToTop := (T "backToTop") | default "Scroll to top" -}} + + + +{{/* TOC subheadings component. This is a recursive component that renders a list of headings. */}} +{{- define "toc-subheading" -}} + {{- $headings := .headings -}} + {{- $level := .level -}} + {{- if ge $level 6 -}} + {{ return }} + {{- end -}} + + {{- $padding := (mul $level 4) -}} + {{- $class := cond (eq $level 0) "hx-font-semibold" (printf "ltr:hx-pl-%d rtl:hx-pr-%d" $padding $padding) -}} + + {{- range $headings }} + {{- if .Title }} +
  • + + {{- .Title | safeHTML | plainify | htmlUnescape }} + +
  • + {{- end -}} + {{- with .Headings -}} + {{ template "toc-subheading" (dict "headings" . "level" (add $level 1)) }} + {{- end -}} + + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/custom/footer-links.html b/themes/hextra-upsun/layouts/partials/custom/footer-links.html new file mode 100644 index 0000000000..9afea500dc --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/footer-links.html @@ -0,0 +1,89 @@ +{{ $currentPage := printf "%s%s" ( site.BaseURL ) ( .context.Page.RelPermalink ) }} + + diff --git a/themes/hextra-upsun/layouts/partials/custom/gtm/noscript.html b/themes/hextra-upsun/layouts/partials/custom/gtm/noscript.html new file mode 100644 index 0000000000..2aa83c4085 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/gtm/noscript.html @@ -0,0 +1,6 @@ +{{ $gtmID := site.Params.services.gtm.ID }} + +{{- if hugo.IsProduction -}} + +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/custom/gtm/script.html b/themes/hextra-upsun/layouts/partials/custom/gtm/script.html new file mode 100644 index 0000000000..40f917de45 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/gtm/script.html @@ -0,0 +1,13 @@ +{{ $gtmID := site.Params.services.gtm.ID }} + +{{- if hugo.IsProduction -}} + + + +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/custom/head-end.html b/themes/hextra-upsun/layouts/partials/custom/head-end.html new file mode 100644 index 0000000000..be59babc75 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/head-end.html @@ -0,0 +1,12 @@ + + + +{{ $zdV := site.Params.services.site.zd }} +{{ $gV := site.Params.services.site.google }} + + + diff --git a/themes/hextra-upsun/layouts/partials/custom/section-back.html b/themes/hextra-upsun/layouts/partials/custom/section-back.html new file mode 100644 index 0000000000..d267d65c55 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/section-back.html @@ -0,0 +1,13 @@ +
    +{{- range .ancestors }} + {{- with site.GetPage . }} + + {{- partial "utils/icon.html" (dict "name" "chevron-right" "attributes" "class=\"hx-w-3.5 hx-shrink-0 rtl:-hx-rotate-180\"") -}} + {{ end -}} +{{ end -}} +
    + {{- partial "utils/title" .context -}} +
    +
    diff --git a/themes/hextra-upsun/layouts/partials/custom/topnav.html b/themes/hextra-upsun/layouts/partials/custom/topnav.html new file mode 100644 index 0000000000..68f67fdcd4 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/custom/topnav.html @@ -0,0 +1,88 @@ + + +{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}} +{{ $currentPage := printf "%s%s" ( site.BaseURL ) ( .context.Page.RelPermalink ) }} + +{{ $campaign := .context.Page.Params.campaign | default "default" }} +{{ $utmSuffix := printf "utm_source=%s&utm_medium=%s&utm_campaign=%s" .context.Site.Params.utm.source .context.Site.Params.utm.medium ( index .context.Site.Data.campaigns $campaign "utm_campaign" ) }} +{{ $ctaLinkURL := printf "https://platform.sh?%s" $utmSuffix }} +{{ $ctaLinkURL := "https://platform.sh"}} + + diff --git a/themes/hextra-upsun/layouts/partials/file-not-found.html b/themes/hextra-upsun/layouts/partials/file-not-found.html new file mode 100644 index 0000000000..a6dabb62e6 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/file-not-found.html @@ -0,0 +1,4 @@ +
    +

    Heads up!

    +

    The file {{ . }} was not found. Did you define it in docs/data/remote-examples to be downloaded?

    +
    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/footer.html b/themes/hextra-upsun/layouts/partials/footer.html new file mode 100644 index 0000000000..18eefb90fd --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/footer.html @@ -0,0 +1,81 @@ +{{- $enableFooterSwitches := .Scratch.Get "enableFooterSwitches" | default true -}} +{{- $displayThemeToggle := site.Params.theme.displayToggle | default true -}} + +{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}} +{{- $poweredBy := (T "poweredBy") | default "Powered by Hextra" -}} + +{{- $footerWidth := "hx-max-w-screen-xl" -}} +{{- with .Site.Params.footer.width -}} + {{ if eq . "wide" -}} + {{ $footerWidth = "hx-max-w-[90rem]" -}} + {{ else if eq . "full" -}} + {{ $footerWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + + +
    + + + {{- if $enableFooterSwitches -}} +
    + + {{- partial "custom/footer-links.html" (dict "context" . ) -}} + {{- with $displayThemeToggle }}{{ partial "theme-toggle.html" }}{{ end -}} +
    + {{- if or hugo.IsMultilingual $displayThemeToggle -}} +
    + {{- end -}} + {{- end -}} + + +
    + +
    +
    + +{{- define "theme-credit" -}} + + + {{- . | markdownify -}} + {{- if strings.Contains . "Hextra" -}} + {{- partial "utils/icon.html" (dict "name" "hextra" "attributes" `height=1em class="hx-inline-block ltr:hx-ml-1 rtl:hx-mr-1 hx-align-[-2.5px]"`) -}} + {{- end -}} + + +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/head.html b/themes/hextra-upsun/layouts/partials/head.html new file mode 100644 index 0000000000..f12af21f94 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/head.html @@ -0,0 +1,68 @@ + + + + {{ if hugo.IsProduction -}} + + {{ else -}} + + {{ end -}} + {{ partialCached "favicons.html" . }} + + {{- if .IsHome -}} + {{ index .Site.Params "titleMain" -}} + {{ else -}} + {{ with .Title }}{{ . }} – {{ end -}} + {{ index .Site.Params "titleMain" -}} + {{ end -}} + + + + + + + + {{ with .Params.canonical }} + + {{ else }} + + {{ end }} + + {{ partial "opengraph.html" . }} + {{ template "_internal/schema.html" . -}} + {{ template "_internal/twitter_cards.html" . -}} + + {{ partialCached "head-css.html" . }} + + + + {{- if and (eq hugo.Environment "production") (or .Site.GoogleAnalytics .Site.Config.Services.GoogleAnalytics.ID) }} + + {{ partial "google-analytics.html" . }} + {{- end }} + + + + {{- partial "custom/gtm/script.html" . -}} + {{ partial "custom/head-end.html" . }} + diff --git a/themes/hextra-upsun/layouts/partials/navbar.html b/themes/hextra-upsun/layouts/partials/navbar.html new file mode 100644 index 0000000000..03a4766a82 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/navbar.html @@ -0,0 +1,108 @@ +{{- $logoPath := .Site.Params.navbar.logo.path | default "images/logo.svg" -}} +{{- $logoLink := .Site.Params.navbar.logo.link | default .Site.Home.RelPermalink -}} +{{- $logoWidth := .Site.Params.navbar.logo.width | default "20" -}} +{{- $logoHeight := .Site.Params.navbar.logo.height | default "20" -}} +{{- $logoDarkPath := .Site.Params.navbar.logo.dark | default $logoPath -}} +{{ $heapCurrentPage := printf "%s%s" ( .Site.BaseURL ) ( .Page.RelPermalink ) }} +{{- $context := . -}} + +{{- $navWidth := "hx-max-w-[90rem]" -}} +{{- with .Site.Params.navbar.width -}} + {{ if eq . "normal" -}} + {{ $navWidth = "hx-max-w-screen-xl" -}} + {{ else if eq . "full" -}} + {{ $navWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + +{{- if .Site.Params.announcement.enable -}} + {{- partial "custom/announcement.html" (dict "context" . "navWidth" $navWidth ) -}} +{{- end -}} +{{- partial "custom/topnav.html" (dict "context" . "navWidth" $navWidth ) -}} + + diff --git a/themes/hextra-upsun/layouts/partials/note.html b/themes/hextra-upsun/layouts/partials/note.html new file mode 100644 index 0000000000..c62474ec02 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/note.html @@ -0,0 +1,21 @@ + +{{- $title := "Note" -}} +{{- with .title -}} + {{- $title = . -}} +{{- end -}} +{{- $bg := "stone" -}} +{{- with .theme -}} + {{- if eq . "warning" -}} + {{- $bg = "pink-light" -}} + {{- else if eq . "info" -}} + {{- $bg = "skye-light" -}} + {{- else if eq . "info-sticky" -}} + {{- $bg = "skye-light" -}} + {{- end -}} +{{- end -}} + diff --git a/themes/hextra-upsun/layouts/partials/php-extensions/grid-row.html b/themes/hextra-upsun/layouts/partials/php-extensions/grid-row.html new file mode 100644 index 0000000000..fe3febf0dd --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/php-extensions/grid-row.html @@ -0,0 +1,29 @@ +{{ $data := .data }} +{{ $extension_name := .extension_name }} +{{ $row_extension := .row_extension | lower }} +{{ range $extension,$versions := .allExtensions }} + {{ if eq $row_extension (lower $extension) }} + + {{ if $extension_name }} + {{ $extension }} + {{ end }} + + {{ range $version,$extensions := $data }} + + + {{ with index $versions $version }} + {{ if eq . "default"}} + Def + {{ else if eq . "available" }} + Avail + {{ else if eq . "built-in" }} + * + {{ else if eq . "with-webp" }} + Avail with
    webp + {{ end }} + {{ end }} + + {{ end }} + + {{ end }} +{{ end }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/php-extensions/sort-grid.html b/themes/hextra-upsun/layouts/partials/php-extensions/sort-grid.html new file mode 100644 index 0000000000..60d5975fe1 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/php-extensions/sort-grid.html @@ -0,0 +1,21 @@ +{{ $data := .data }} +{{ $allExtensions := dict }} +{{ range $version,$support_type := $data }} + + {{ range $support_type_name,$extensions := $support_type }} + + {{ range $extensions }} + {{ $newVersion := dict }} + + {{ with index $allExtensions . }} + {{ $newVersion = merge . ( dict $version $support_type_name ) }} + + {{ else }} + {{ $newVersion = dict $version $support_type_name }} + {{ end }} + {{ $allExtensions = merge $allExtensions ( dict . $newVersion ) }} + {{ end }} + {{ end }} +{{ end }} + +{{ return $allExtensions }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/premium-features/badge.html b/themes/hextra-upsun/layouts/partials/premium-features/badge.html new file mode 100644 index 0000000000..38fcddde3b --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/premium-features/badge.html @@ -0,0 +1 @@ +Premium \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/premium-features/banner.html b/themes/hextra-upsun/layouts/partials/premium-features/banner.html new file mode 100644 index 0000000000..881439b315 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/premium-features/banner.html @@ -0,0 +1,7 @@ +
    + +

    {{ .title }}

    + +

    {{ .content | .context.Page.RenderString }}

    + +
    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/scripts.html b/themes/hextra-upsun/layouts/partials/scripts.html new file mode 100644 index 0000000000..85def2d895 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/scripts.html @@ -0,0 +1,82 @@ +{{- $jsTheme := resources.Get "js/theme.js" | resources.ExecuteAsTemplate "theme.js" . -}} +{{- $jsMenu := resources.Get "js/menu.js" -}} +{{- $jsTabs := resources.Get "js/tabs.js" -}} +{{- $jsLang := resources.Get "js/lang.js" -}} +{{- $jsCodeCopy := resources.Get "js/code-copy.js" -}} +{{- $jsFileTree := resources.Get "js/filetree.js" -}} +{{- $jsSidebar := resources.Get "js/sidebar.js" -}} +{{- $jsBackToTop := resources.Get "js/back-to-top.js" -}} +{{- $jsDismissAlert := "" -}} +{{- $scripts := slice $jsTheme $jsMenu $jsCodeCopy $jsTabs $jsLang $jsFileTree $jsSidebar $jsBackToTop | resources.Concat "js/main.js" -}} +{{- if .Site.Params.announcement.enable -}} + {{- $scripts = slice $jsTheme $jsMenu $jsCodeCopy $jsTabs $jsLang $jsFileTree $jsSidebar $jsBackToTop $jsDismissAlert | resources.Concat "js/main.js" -}} +{{- end -}} + +{{- if hugo.IsProduction -}} + {{- $scripts = $scripts | minify | fingerprint -}} +{{- end -}} + + + +{{/* Search */}} +{{- if (site.Params.search.enable | default true) -}} + {{- $searchType := site.Params.search.type | default "flexsearch" -}} + {{- if eq $searchType "flexsearch" -}} + {{- $jsSearchScript := printf "%s.search.js" .Language.Lang -}} + {{- $jsSearch := resources.Get "js/flexsearch.js" | resources.ExecuteAsTemplate $jsSearchScript . -}} + {{- if hugo.IsProduction -}} + {{- $jsSearch = $jsSearch | minify | fingerprint -}} + {{- end -}} + {{- $flexSearchJS := resources.Get "lib/flexsearch/flexsearch.bundle.min.js" | fingerprint -}} + + + {{- else -}} + {{- warnf `search type "%s" is not supported` $searchType -}} + {{- end -}} +{{- end -}} + +{{/* Mermaid */}} +{{/* FIXME: need to investigate .Page.Store hasMermaid is set for homepage */}} +{{- if and (.Page.Store.Get "hasMermaid") (not .Page.IsHome) -}} + {{- $mermaidJS := resources.Get "lib/mermaid/mermaid.min.js" | fingerprint -}} + + +{{- end -}} + +{{/* KaTex */}} +{{- if .Page.Params.math -}} + {{- $katexCSS := resources.Get "lib/katex/katex.min.css" | fingerprint -}} + {{- $katexJS := resources.Get "lib/katex/katex.min.js" | fingerprint -}} + {{- $mhchemJS := resources.Get "lib/katex/mhchem.min.js" | fingerprint -}} + {{- $katexAutoRenderJS := resources.Get "lib/katex/auto-render.min.js" | fingerprint -}} + + + + + {{ $katexFonts := resources.Match "lib/katex/fonts/*" }} + {{- range $katexFonts -}} + {{ .Publish }} + {{- end -}} + +{{ end }} + + + diff --git a/themes/hextra-upsun/layouts/partials/sidebar.html b/themes/hextra-upsun/layouts/partials/sidebar.html new file mode 100644 index 0000000000..d1fa1ba55e --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/sidebar.html @@ -0,0 +1,208 @@ +{{- $context := .context -}} + +{{- $disableSidebar := .disableSidebar | default false -}} +{{- $displayPlaceholder := .displayPlaceholder | default false -}} + +{{- $sidebarClass := cond $disableSidebar (cond $displayPlaceholder "md:hx-hidden xl:hx-block" "md:hx-hidden") "md:hx-sticky" -}} + +{{- $navRoot := cond (eq site.Home.Type "docs") site.Home $context.FirstSection -}} +{{- $pageURL := $context.RelPermalink -}} + +{{/* EXPERIMENTAL */}} +{{- if .context.Params.sidebar.hide -}} + {{- $disableSidebar = true -}} + {{- $displayPlaceholder = true -}} +{{- end -}} + + +{{ $overrideActive := "" }} +{{ if in .context.Page.Path "/community/post/" }} + {{ $overrideActive = .context.GetPage "/community/posts"}} +{{ end }} + +
    + + +{{- define "sidebar-main" -}} + {{ template "sidebar-tree" (dict "context" .context "level" 0 "page" .page "pageURL" .pageURL "toc" (.toc | default false)) }} +{{- end -}} + +{{- define "sidebar-tree" -}} + + {{ $overrideActive := "" }} + {{ $overriddes := index .context.Site.Params.overrides "sidebar-active" }} + {{ $context := .context }} + {{ $page := .page }} + {{ range $k, $v := $overriddes}} + {{ if in $page.Path $k }} + {{ $overrideActive = $context.GetPage $v }} + {{ end }} + {{ end }} + + {{- if ge .level 4 -}} + {{- return -}} + {{- end -}} + + {{- $context := .context -}} + {{- $page := .page }} + {{- $pageURL := .page.RelPermalink -}} + {{- $level := .level -}} + {{- $toc := .toc | default false -}} + + {{- with $items := union .context.RegularPages .context.Sections -}} + {{- $items = where $items "Params.sidebar.exclude" "!=" true -}} + {{- if eq $level 0 -}} + {{- range $items.ByWeight }} + {{- if .Params.sidebar.separator -}} +
  • + {{ partial "utils/title" . }} +
  • + {{- else -}} + {{- $active := eq $pageURL .RelPermalink -}} + {{- if and ( ne $overrideActive "" ) ( eq . $overrideActive ) -}} + {{ $active = true }} + {{- end -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} +
  • + {{- $linkTitle := partial "utils/title" . -}} + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{- template "sidebar-toc" dict "page" . -}} + {{- end -}} + {{- template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc -}} +
  • + {{- end -}} + {{- end -}} + {{- else if not $context.Params.sidebar.excludechildren -}} +
    +
      + {{- range $items.ByWeight }} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} + {{- $linkTitle := partial "utils/title" . -}} +
    • + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{ template "sidebar-toc" dict "page" . }} + {{- end }} + {{ template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc }} +
    • + {{- end -}} +
    +
    + {{- end -}} + {{- end }} +{{- end -}} + +{{- define "sidebar-toc" -}} + {{ $page := .page }} + {{ with $page.Fragments.Headings }} +
      + {{- range . }} + {{- with .Headings }} + {{- range . -}} +
    • + + {{- .Title -}} + +
    • + {{ end -}} + {{ end -}} + {{ end -}} +
    + {{ end }} +{{- end -}} + +{{- define "sidebar-footer" -}} + {{- range site.Menus.sidebar -}} + {{- $name := or (T .Identifier) .Name -}} + {{ if eq .Params.type "separator" }} +
  • + {{ $name }} +
  • + {{ else }} +
  • {{ template "sidebar-item-link" dict "active" false "title" $name "link" (.URL | relLangURL) }}
  • + {{ end }} + {{- end -}} +{{- end -}} + +{{- define "sidebar-item-link" -}} + {{- $external := strings.HasPrefix .link "http" -}} + {{- $link := .link -}} + {{- if isset .context.Params.sidebar "link" -}} + {{- $external = true -}} + {{- $link = .context.Params.sidebar.link -}} + {{- end -}} + {{- $open := .open | default true -}} + + {{- $title := .title -}} + {{- $active := .active -}} + {{- with .context }} + + + {{- $title -}} + {{- if or .RegularPages .Sections }} + {{- if not .Params.sidebar.excludechildren -}} + + {{- template "sidebar-collapsible-button" -}} + + {{- end -}} + {{- end }} + {{ end -}} + +{{- end -}} + +{{- define "sidebar-collapsible-button" -}} + +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/snippet.html b/themes/hextra-upsun/layouts/partials/snippet.html new file mode 100644 index 0000000000..4c200c4db1 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/snippet.html @@ -0,0 +1,207 @@ +{{- $name := .context.Get "name" | default "myapp" -}} +{{- if ( .name ) -}} + {{- $name = .name -}} +{{- end -}} +{{- $root := .context.Get "root" | default "/" -}} +{{- if ( .root ) -}} + {{- $root = .root -}} +{{- end -}} +{{- $globKey := .context.Get "globKey" | default "true" -}} +{{- if ( .globKey ) -}} + {{- $globKey = .globKey -}} +{{- end -}} +{{- $configType := .context.Get "config" | default "app" -}} +{{- if ( .config ) -}} + {{- $configType = .config -}} +{{- end -}} +{{- $subDir := .context.Get "subDir" | default "" -}} +{{- if ( .subDir ) -}} + {{- $subDir = .subDir -}} +{{- end -}} +{{- $subDom := .context.Get "subDom" | default "" -}} +{{- if ( .subDom ) -}} + {{- $subDom = .subDom -}} +{{- end -}} +{{- if gt ( len $subDom) 0 -}} + {{- $subDom = printf "%s." (.context.Get "subDom") }} +{{- end -}} +{{- $placeholder := .context.Get "placeholder" | default "false" }} +{{- if ( .placeholder ) -}} + {{- $placeholder = .placeholder -}} +{{- end -}} +{{- $redirect := .context.Get "redirect" | default "true" }} +{{- if ( .redirect ) -}} + {{- $redirect = .redirect -}} +{{- end -}} + + +{{- $configFile := .context.Get "configFile" | default "" -}} +{{- if ( .configFile ) -}} + {{- $confiFile = .configFile -}} +{{- end -}} + +{{- $configFiles := .context.Page.Site.Params.vendor.files -}} + +{{- $prepend := "" -}} +{{- $append := "" -}} +{{- $content := "" -}} + +{{- if eq $configType "app" -}} + {{- $appNameComment := "# The name of the app container. Must be unique within a project." -}} + {{- $rootComment := "# The location of the application's code." -}} + + {{- if eq .context.Site.Params.vendor.config.version 2 -}} + {{- $applicationsKey := "" }} + {{- if eq $globKey "true" -}} + {{- $applicationsKey = printf "%s:\n" .context.Site.Params.vendor.config.prefix.apps -}} + {{- end -}} + + {{- if and (eq $placeholder "true") (not .Inner) -}} + {{- $prepend = printf "# %s# %s" $applicationsKey "..." -}} + {{- else -}} + {{- if eq $name "false" -}} + {{- $name = "myapp" -}} + {{- end -}} + {{- $prepend = printf "%s %s\n %s:" $applicationsKey $appNameComment $name -}} + {{- if ne $root "false" -}} + {{- $prepend = printf "%s\n %s\n source:\n root: \"%s\"" $prepend $rootComment $root -}} + {{- end -}} + + {{- $indent := " " }} + {{- $indentCount := 0 }} + {{- range split (trim .Inner "\n") "\n" -}} + {{- if ne (len .) 1 -}} + {{- if eq $indentCount 1 -}} + {{- $indent = " " -}} + {{- end -}} + {{- $content = printf "%s\n%s%s" $content $indent . -}} + {{- $indentCount = 1 -}} + {{- end -}} + {{- end -}} + {{- end -}} + + {{- else -}} + {{- if eq $placeholder "false" -}} + {{- $indent := "" }} + {{- $indentCount := 0 }} + {{- range split (trim .Inner "\n") "\n" -}} + {{- if ne (len .) 1 -}} + {{- if eq $indentCount 1 -}} + {{- $content = printf "%s\n%s%s" $content $indent . -}} + {{- else -}} + {{- $content = printf "%s\n%s%s" $content $indent (trim . " ") -}} + {{- end -}} + {{- $indentCount = 1 -}} + {{- end -}} + {{- end -}} + {{- end -}} + + {{- end -}} + + {{- $final := trim ( printf "%s%s" $prepend $content ) "\n" -}} + {{- $final | safeHTML -}} + +{{- else if eq $configType "apps" -}} + {{- $appNameComment := "# The name of the app container. Must be unique within a project." -}} + {{- $rootComment := "# The location of the application's code." -}} + + {{- if eq .context.Site.Params.vendor.config.version 2 -}} + {{- $applicationsKey := "" }} + {{- if eq $globKey "true" -}} + {{- $applicationsKey = printf "%s:\n" .context.Site.Params.vendor.config.prefix.apps -}} + {{- end -}} + + {{- if and (eq $placeholder "true") (not .Inner) -}} + {{- $prepend = printf "# %s# %s" $applicationsKey "..." -}} + {{- else -}} + {{- $prepend = printf "%s %s\n %s:" $applicationsKey $appNameComment $name -}} + {{- $prepend = printf "%s\n %s\n source:\n root: \"%s\"" $prepend $rootComment $root -}} + + {{- range split (trim .Inner "\n") "\n" -}} + {{- $content = printf "%s\n %s" $content . -}} + {{- end -}} + {{- end -}} + + {{- else -}} + + {{- if eq $placeholder "false" -}} + {{- $prepend = printf "%s\n%s:" $appNameComment $name -}} + {{- $prepend = printf "%s\n %s\n source:\n root: \"%s\"" $prepend $rootComment $root -}} + + {{- range split (trim .Inner "\n") "\n" -}} + {{- $content = printf "%s\n %s" $content . -}} + {{- end -}} + {{- end -}} + + {{- end -}} + + {{- $final := trim ( printf "%s%s" $prepend $content ) "\n" -}} + {{- $final | safeHTML -}} + +{{- else if eq $configType "service" -}} + {{- $servNameComment := "# The name of the service container. Must be unique within a project." -}} + {{- if eq .context.Site.Params.vendor.config.version 2 -}} + {{- $servicesKey := "" -}} + {{- if eq $globKey "true" -}} + {{- $servicesKey = printf "%s:\n" .context.Site.Params.vendor.config.prefix.services -}} + {{- end -}} + + {{- if and (eq $placeholder "true") (not .Inner) -}} + {{- $prepend = printf "# %s# %s" $servicesKey "..." -}} + {{- else -}} + {{- $prepend = printf "%s %s\n %s:" $servicesKey $servNameComment $name -}} + {{- range split (trim .Inner "\n") "\n" -}} + {{- $content = printf "%s\n %s" $content . -}} + {{- end -}} + {{- end -}} + + {{- else -}} + + {{- if eq $placeholder "false" -}} + {{- $prepend = printf "%s\n%s:" $servNameComment $name -}} + {{- $content = .Inner -}} + {{- end -}} + + {{- end -}} + + {{- $final := trim ( printf "%s%s" $prepend $content ) "\n" -}} + {{- $final | safeHTML -}} + +{{- else if eq $configType "route"}} + {{- $routeNameComment := "# Routes for an individual application. Note the matching app name in 'upstream'." -}} + {{- $routesKey := "" }} + {{- if eq .context.Site.Params.vendor.config.version 2 -}} + {{- if eq $globKey "true" -}} + {{- $routesKey = printf "%s:\n" .context.Site.Params.vendor.config.prefix.routes -}} + {{- end -}} + + {{- if and (eq $placeholder "true") (not .Inner) -}} + {{- $prepend = printf "# %s# %s" $routesKey "..." -}} + {{- else -}} + {{- $prepend = printf "%s" $routesKey -}} + {{- if ne $redirect "false" -}} + {{- $prepend = printf "%s \"https://www.%s{default}/%s\":\n type: redirect\n to: \"https://%s{default}/%s\"\n" $prepend $subDom $subDir $subDom $subDir }} + {{- end -}} + {{- $prepend = printf "%s \"https://%s{default}/%s\":\n type: upstream\n upstream: \"%s\"" $prepend $subDom $subDir $name }} + {{- range split (trim .Inner "\n") "\n" -}} + {{- $content = printf "%s\n %s" $content . -}} + {{- end -}} + {{- end -}} + + {{- else -}} + + {{- if eq $placeholder "false" -}} + {{- if ne $redirect "false" -}} + {{- $prepend = printf "\"https://www.%s{default}/%s\":\n type: redirect\n to: \"https://%s{default}/%s\"\n" $subDom $subDir $subDom $subDir }} + {{- end -}} + {{- $prepend = printf "%s\"https://%s{default}/%s\":\n type: upstream\n upstream: \"%s\"" $prepend $subDom $subDir $name }} + {{- range split (trim .Inner "\n") "\n" -}} + {{- $content = printf "%s\n %s" $content . -}} + {{- end -}} + {{- end -}} + + {{- end -}} + + {{- $final := trim ( printf "%s%s" $prepend $content) "\n" -}} + {{- $final | safeHTML -}} +{{- end -}} diff --git a/themes/hextra-upsun/layouts/partials/toc.html b/themes/hextra-upsun/layouts/partials/toc.html new file mode 100644 index 0000000000..6420ed08e5 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/toc.html @@ -0,0 +1,147 @@ +{{/* Table of Contents */}} +{{/* TODO: toc bottom part should be able to hide */}} +{{- $context := . -}} +{{- $toc := .Params.toc | default true -}} +{{- $onThisPage := (T "onThisPage") | default "On this page"}} +{{- $editThisPage := (T "editThisPage") | default "Edit this page"}} +{{- $backToTop := (T "backToTop") | default "Scroll to top" -}} +{{ $currentPage := printf "%s%s" ( .Site.BaseURL ) ( .Page.RelPermalink ) }} + + + +{{/* TOC subheadings component. This is a recursive component that renders a list of headings. */}} +{{- define "toc-subheading" -}} + {{- $headings := .headings -}} + {{- $level := .level -}} + {{- if ge $level 6 -}} + {{ return }} + {{- end -}} + + {{- $padding := (mul $level 4) -}} + {{- $class := cond (eq $level 0) "hx-font-semibold" (printf "ltr:hx-pl-%d rtl:hx-pr-%d" $padding $padding) -}} + + {{- range $headings }} + {{- if .Title }} +
  • + + {{- .Title | safeHTML | plainify | htmlUnescape }} + +
  • + {{- end -}} + {{- with .Headings -}} + {{ template "toc-subheading" (dict "headings" . "level" (add $level 1)) }} + {{- end -}} + + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/user-mgt-sellable/body.md b/themes/hextra-upsun/layouts/partials/user-mgt-sellable/body.md new file mode 100644 index 0000000000..a46a3d3b96 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/user-mgt-sellable/body.md @@ -0,0 +1,4 @@ +{{ $content := `This feature is available as part of the Standard User Management add-on. +To enable it on your organization, [administer your organization's billing](/administration/billing/billing-admin).`}} + +{{ partial "premium-features/banner" ( dict "context" . "content" $content "title" "Feature Availability" )}} diff --git a/themes/hextra-upsun/layouts/partials/utils/excludeSearch.html b/themes/hextra-upsun/layouts/partials/utils/excludeSearch.html new file mode 100644 index 0000000000..1eecf433f0 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/utils/excludeSearch.html @@ -0,0 +1,19 @@ +{{- $excludeStart := "" -}} +{{- $excludeEnd := "" -}} +{{- $append := true -}} +{{- $data := slice -}} + +{{- $splitC := split .content "\n" -}} +{{- range $splitC -}} + {{- if $append -}} + {{- if eq $excludeStart . -}} + {{- $append = false -}} + {{- else -}} + {{- $data = $data | append . -}} + {{- end -}} + {{- else if eq $excludeEnd . -}} + {{- $append = true -}} + {{- end -}} +{{- end -}} +{{- $final := delimit $data "\n" -}} +{{- return $final -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/partials/utils/fragments.html b/themes/hextra-upsun/layouts/partials/utils/fragments.html new file mode 100644 index 0000000000..a007dc8212 --- /dev/null +++ b/themes/hextra-upsun/layouts/partials/utils/fragments.html @@ -0,0 +1,62 @@ +{{/* Split page raw content into fragments */}} +{{ $page := .context }} +{{ $type := .type | default "content" }} +{{ $headingKeys := slice }} +{{ $headingTitles := slice }} + +{{ range $h1 := $page.Fragments.Headings }} + {{ if eq $h1.Title "" }} + {{ $headingKeys = $headingKeys | append $h1.Title }} + {{ else }} + {{ $headingKeys = $headingKeys | append (printf "%s#%s" $h1.ID $h1.Title) }} + {{ end }} + {{ $headingTitles = $headingTitles | append (printf "# %s" $h1.Title) }} + + {{ range $h2 := $h1.Headings }} + {{ $headingKeys = $headingKeys | append (printf "%s#%s" $h2.ID $h2.Title) }} + {{ $headingTitles = $headingTitles | append (printf "## %s" $h2.Title) }} + {{ end }} +{{ end }} + +{{ $content := partial "utils/excludeSearch.html" (dict "context" . "content" $page.RawContent) }} +{{ $len := len $headingKeys }} +{{ $data := dict }} + +{{ if eq $type "content" }} + {{/* Include full content of the page */}} + {{ if eq $len 0 }} + {{ $plainContent := partial "utils/excludeSearch.html" (dict "context" . "content" $page.RawContent) }} + {{ $data = $data | merge (dict "" ($plainContent | htmlUnescape | chomp)) }} + {{ else }} + {{/* Split the raw content from bottom to top */}} + {{ range seq $len }} + {{ $i := sub $len . }} + {{ $headingKey := index $headingKeys $i }} + {{ $headingTitle := index $headingTitles $i }} + + {{ if eq $i 0 }} + {{ $data = $data | merge (dict $headingKey ($content | $page.RenderString | plainify | htmlUnescape | chomp)) }} + {{ else }} + {{ $parts := split $content (printf "\n%s\n" $headingTitle) }} + {{ $lastPart := index $parts (sub (len $parts) 1) }} + + {{ $data = $data | merge (dict $headingKey ($lastPart | $page.RenderString | plainify | htmlUnescape | chomp)) }} + {{ $content = strings.TrimSuffix $lastPart $content }} + {{ $content = strings.TrimSuffix (printf "\n%s\n" $headingTitle) $content }} + {{ end }} + {{ end }} + {{ end }} +{{ else if (eq $type "heading" ) }} + {{/* Put heading keys with empty content to the data object */}} + {{ $data = dict "" "" }} + {{ range $headingKeys }} + {{ $data = $data | merge (dict . "") }} + {{ end }} +{{ else if (eq $type "title") }} + {{/* Use empty data object since title is included in search-data.json */}} + {{ $data = $data | merge (dict "" "") }} +{{ else if (eq $type "summary" ) }} + {{ $data = $data | merge (dict "" ($page.Summary | plainify | htmlUnescape | chomp)) }} +{{ end }} + +{{ return $data }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/people/list.html b/themes/hextra-upsun/layouts/people/list.html new file mode 100644 index 0000000000..6003e4434b --- /dev/null +++ b/themes/hextra-upsun/layouts/people/list.html @@ -0,0 +1,36 @@ +{{ define "main" }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    +
    +

    {{ .Title }}

    + {{ .Content }} + +
    + {{ $pages := where site.RegularPages ".RelPermalink" "in" "/community/engage/people" }} + {{ range site.RegularPages }} + {{ if and ( strings.Contains .RelPermalink "/community/engage/people/" ) ( ne .Title "People" ) }} + + {{ if isset .Params "image" }} + {{ .Title | anchorize }} + {{ else }} + {{ .Title | anchorize }} + {{ end }} +

    {{ .Title }}

    +

    + {{ .Page.Params.role | safeHTML }} +

    +
    + {{ end }} + {{ end }} +
    +
    +
    + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/people/single-old.html b/themes/hextra-upsun/layouts/people/single-old.html new file mode 100644 index 0000000000..26d016d05c --- /dev/null +++ b/themes/hextra-upsun/layouts/people/single-old.html @@ -0,0 +1,60 @@ +{{ define "main" }} + +{{ $former := .Params.former | default false }} + +
    + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
    +
    +
    +
    + {{ if isset .Page.Params "image" }} + + {{ else }} + + {{ end }} +

    {{ .Title }}

    +

    + {{ if $former }}Former {{ end }}{{ .Page.Params.role }} +

    +

    + {{ .Page.Params.company }} {{ .Page.Params.team }} +

    +

    + {{ if isset .Params.links "github" }} + + {{- partial "utils/icon.html" (dict "name" "github" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "twitter" }} + + {{- partial "utils/icon.html" (dict "name" "x-twitter" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "linkedin" }} + + {{- partial "utils/icon.html" (dict "name" "linkedin" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "mailto" }} + + {{- partial "utils/icon.html" (dict "name" "mail" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "website" }} + + {{- partial "utils/icon.html" (dict "name" "globe-alt" "attributes" "height=1.25em") -}} + + {{ end }} +

    + + {{ .Content }} + +
    +
    + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/people/single.html b/themes/hextra-upsun/layouts/people/single.html new file mode 100644 index 0000000000..63861f3605 --- /dev/null +++ b/themes/hextra-upsun/layouts/people/single.html @@ -0,0 +1,63 @@ +{{ define "main" }} +{{ $former := .Params.former | default false }} + +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + +
    +
    + + {{ if isset .Page.Params "image" }} + {{ .Title | anchorize }} + {{ else }} + {{ .Title | anchorize }} + {{ end }} +

    {{ .Title }}

    +

    + {{ if $former }}Former {{ end }}{{ .Page.Params.role }} +

    +

    + {{ .Page.Params.company }} {{ .Page.Params.team }} +

    +

    + {{ if isset .Params.links "github" }} + + {{- partial "utils/icon.html" (dict "name" "github" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "twitter" }} + + {{- partial "utils/icon.html" (dict "name" "x-twitter" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "linkedin" }} + + {{- partial "utils/icon.html" (dict "name" "linkedin" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "mailto" }} + + {{- partial "utils/icon.html" (dict "name" "mail" "attributes" "height=1.25em") -}} + + {{ end }} + {{ if isset .Params.links "website" }} + + {{- partial "utils/icon.html" (dict "name" "globe-alt" "attributes" "height=1.25em") -}} + + {{ end }} +

    + + {{ .Content }} + + +
    + {{ partial "components/last-updated.html" . }} + +
    +
    +
    +{{ end }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/post/list.html b/themes/hextra-upsun/layouts/post/list.html new file mode 100644 index 0000000000..f1ee5d4a52 --- /dev/null +++ b/themes/hextra-upsun/layouts/post/list.html @@ -0,0 +1,30 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "custom/section-back.html" (dict "context" . "ancestors" ( slice "/community" "/community/posts" )) }} + +

    {{ .Title }}

    + + +
    + {{ .Content }} +
    + {{ partial "components/last-updated.html" . }} + + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/post/single.html b/themes/hextra-upsun/layouts/post/single.html new file mode 100644 index 0000000000..82f72ef534 --- /dev/null +++ b/themes/hextra-upsun/layouts/post/single.html @@ -0,0 +1,89 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "breadcrumb.html" . }} + + +

    {{ .Title }}

    + {{ if isset .Params "subtitle" }} + + {{ end }} + + +
    + {{- with $date := .Date }}{{ partial "utils/format-date" $date }}{{ end -}} + {{- $lazyLoading := site.Params.enableImageLazyLoading | default true -}} + + {{ if and .Date .Params.author }}·{{ end -}} + {{- with $.Params.author -}} + {{- range $i, $author := . -}} + {{ $pageCheck := ( $context.Site.GetPage ( printf "/community/engage/people/%s" $author ) ) }} + {{ if ne $pageCheck.Title "" }} + {{ with ( $context.Site.GetPage ( printf "/community/engage/people/%s" $author ) ) }} + + {{- $page := . -}} + {{- if isset .Params "image" -}} + {{- with $image := .Params.image }} + {{- $isLocal := not (urls.Parse $image).Scheme -}} + {{- $startsWithSlash := hasPrefix $image "/" -}} + {{- if and $isLocal $startsWithSlash }} + {{- $image = (relURL (strings.TrimPrefix "/" $image)) -}} + {{ end -}} + {{ $page.Title}} + {{ end -}} + {{- else -}} + {{ .Title }} + {{- end -}} +
    {{ .Title }}
    +
    + + {{ end }} + + {{ else }} + {{ $ghCheck := printf "https://github.com/%s" $author }} + {{ with resources.GetRemote $ghCheck }} + + {{ $author }} +
    {{ $author }}
    +
    + {{ else }} + + {{ $author }} +
    {{ $author }}
    +
    + {{ end }} + {{ end }} + {{- end -}} + ·{{ printf "Reading time: %d minutes" $context.Page.ReadingTime }} + {{- end -}} +
    +
    + {{ .Content }} +
    + {{ partial "components/last-updated.html" . }} + + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/posts/list.html b/themes/hextra-upsun/layouts/posts/list.html new file mode 100644 index 0000000000..f7dff0b495 --- /dev/null +++ b/themes/hextra-upsun/layouts/posts/list.html @@ -0,0 +1,30 @@ +{{ define "main" }} +{{ $context := . }} +
    + {{ partial "content-sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
    +
    + {{ partial "breadcrumb.html" . }} + +

    {{ .Title }}

    + + +
    + {{ .Content }} +
    + {{ partial "components/last-updated.html" . }} + + {{ partial "components/comments.html" . }} +
    +
    +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/posts/list.xml b/themes/hextra-upsun/layouts/posts/list.xml new file mode 100644 index 0000000000..084ba3b482 --- /dev/null +++ b/themes/hextra-upsun/layouts/posts/list.xml @@ -0,0 +1,35 @@ + + + {{ .Site.Title }} – {{ .Title }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + + {{ .Scratch.Set "rssPages" (first 50 (where $.Site.Pages "Type" "post")) }} + {{ range (.Scratch.Get "rssPages") }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + + {{ $img := (.Resources.ByType "image").GetMatch "*featured*" }} + {{ with $img }} + {{ $img := .Resize "640x" }} + {{ printf "]]>" $img.Permalink $img.Width $img.Height | safeHTML }} + {{ end }} + {{ .Content | html }} + + + {{ end }} + + diff --git a/themes/hextra-upsun/layouts/search/list.html b/themes/hextra-upsun/layouts/search/list.html new file mode 100644 index 0000000000..a09be75b28 --- /dev/null +++ b/themes/hextra-upsun/layouts/search/list.html @@ -0,0 +1,35 @@ +{{ define "main" }} + {{- $readMore := (T "readMore") | default "Read more →" -}} +
    + + +
    +
    +
    +

    {{ .Title }}

    +
    {{ .Content }}
    + {{- $pages := partial "utils/sort-pages" (dict "page" . "by" site.Params.blog.list.sortBy "order" site.Params.blog.list.sortOrder) -}} + {{- range $pages }} +
    +

    {{ .Title }}

    + {{- if site.Params.blog.list.displayTags -}} + {{ with .Params.tags }} +

    + {{- range . }}#{{ . }}{{ end -}} +

    + {{ end -}} + {{- end -}} +

    {{- partial "utils/page-description" . -}}

    +

    + + {{- $readMore -}} + +

    +

    {{ partial "utils/format-date" .Date }}

    +
    + {{ end -}} +
    +
    +
    +
    +{{- end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/access-services.md b/themes/hextra-upsun/layouts/shortcodes/access-services.md new file mode 100644 index 0000000000..0fdcafece3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/access-services.md @@ -0,0 +1,25 @@ + +{{ if and ( eq ( .Get "version" ) "2" ) ( eq .Site.Params.vendor.config.version 2 ) }} + +You can access service credentials to connect to [managed services](/add-services/) from environment variables present in the application container. +Consult each of the individual service documentation to see how to retrieve and surface credentials into your application. + +{{ $servicesBundle := .Site.GetPage "/add-services" }} +{{ range $servicesBundle.Pages }} +{{ $suffix := "use-in-app" }} +{{ if eq .File.Path "add-services/network-storage.md" }} + {{ $suffix = "usage-example" }} +{{ else if eq .File.Path "add-services/vault.md" }} + {{ $suffix = "use-vault-kms" }} +{{ else if eq .File.Path "add-services/varnish.md" }} + {{ $suffix = "usage-example" }} +{{ else if eq .File.Path "add-services/gotenberg.md" }} + {{ $suffix = "usage-example" }} +{{ else if eq .File.Path "add-services/clickhouse.md" }} + {{ $suffix = "usage-example" }} +{{ end }} +- [{{ if .Params.sidebarTitle}}{{ .Params.sidebarTitle }}{{ else }}{{ .Title }}{{ end }}]({{ .RelPermalink }}#{{ $suffix }}) +{{ end }} + +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/asciinema.html b/themes/hextra-upsun/layouts/shortcodes/asciinema.html new file mode 100644 index 0000000000..c6bb3cc2ee --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/asciinema.html @@ -0,0 +1,15 @@ + + +{{ if not (.Page.Scratch.Get "asciinema") }} + + + + +{{ .Page.Scratch.Set "asciinema" true }} +{{ end }} + +
    + {{- with .Get "src" -}} + + {{end}} +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/callout.html b/themes/hextra-upsun/layouts/shortcodes/callout.html new file mode 100644 index 0000000000..78cc40ea44 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/callout.html @@ -0,0 +1,63 @@ +{{ $calloutEmojiDict := dict "info" "ℹ️" "warning" "⚠️" "error" "🚫" }} +{{ $type := .Get "type" | default "default" }} +{{/* If emoji is not set, use the emoji from dict */}} +{{ $emoji := .Get "emoji" }} +{{/* Also allow using "icon" */}} +{{ $icon := .Get "icon" }} + +{{ $defaultClass := "hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300" }} +{{ $infoClass := "hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200" }} +{{ $warningClass := "hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200" }} +{{ $errorClass := "hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200" }} + + +{{ $defaultClass := "hx-border-purple-100 hx-bg-purple-50 hx-text-purple-800" }} +{{ $pinkClass := "hx-border-pink-100 hx-bg-pink-50 hx-text-pink-800" }} +{{ $blueClass := "hx-border-blue-100 hx-bg-blue-50 hx-text-blue-800" }} +{{ $orangeClass := "hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800" }} +{{ $yellowClass := "hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-800" }} + +{{ $successClass := "hx-border-success-100 hx-bg-success-50 hx-text-success-800" }} +{{ $criticalClass := "hx-border-critical-100 hx-bg-critical-50 hx-text-critical-800" }} + + +{{ $class := cond + (eq $type "pink") $pinkClass + ( + cond (eq $type "blue") $blueClass + ( + cond (eq $type "orange") $orangeClass + ( + cond (eq $type "yellow") $yellowClass + ( + cond (eq $type "success") $successClass + ( + cond (eq $type "critical") $criticalClass + $defaultClass + ) + ) + ) + ) + ) + }} + + +
    +
    + {{- with $emoji -}} +
    + {{ . }} +
    + {{- else -}} + {{- with $icon }} + {{ partial "utils/icon.html" (dict "name" . "attributes" `height=1.2em class="hx-inline-block hx-align-middle"`) -}} + {{- end -}} + {{- end -}} +
    + +
    +
    + {{ .InnerDeindent | markdownify }} +
    +
    +
    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/cli-installation.html b/themes/hextra-upsun/layouts/shortcodes/cli-installation.html new file mode 100644 index 0000000000..df7bec90b3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/cli-installation.html @@ -0,0 +1,55 @@ +

    To install the CLI, use a Bash installation script. +You can also install with Homebrew (on Linux, macOS, or the Windows Subsystem for Linux) +or Scoop (on Windows).

    + +{{ $Inner := "" }} +{{ if eq .Site.Params.vendor.config.version 1 }} +{{ $Inner = ` ++++ +title=Installation script +highlight=bash ++++ +curl -fsSL https://raw.githubusercontent.com/platformsh/cli/main/installer.sh | bash +<---> ++++ +title=Homebrew +highlight=bash ++++ +brew install platformsh/tap/platformsh-cli +<---> ++++ +title=Scoop +highlight=bash ++++ +scoop bucket add platformsh https://github.com/platformsh/homebrew-tap.git +scoop install platform +`}} + +{{ else if eq .Site.Params.vendor.config.version 2 }} +{{ $Inner = ` ++++ +title=Installation script +highlight=bash ++++ +curl -fsSL https://raw.githubusercontent.com/platformsh/cli/main/installer.sh | VENDOR=upsun bash +<---> ++++ +title=Homebrew +highlight=bash ++++ +brew install platformsh/tap/upsun-cli +<---> ++++ +title=Scoop +highlight=bash ++++ +scoop bucket add platformsh https://github.com/platformsh/homebrew-tap.git +scoop install upsun +`}} +{{ end }} + +{{ partial "codetabs/tabs" ( dict "Inner" $Inner "Page" .Page ) }} + +{{ if eq .Site.Params.vendor.config.version 1 }} +

    If you have issues with installation on a Mac, such as missing libraries, see how to troubleshoot CLI installation on M1 Macs.

    +{{ end }} diff --git a/themes/hextra-upsun/layouts/shortcodes/code-link.html b/themes/hextra-upsun/layouts/shortcodes/code-link.html new file mode 100644 index 0000000000..a11ae74b82 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/code-link.html @@ -0,0 +1,7 @@ +{{- $destination := .Get "destination" -}} +{{- $title := .Get "title" -}} +{{ if not $title }} + {{- $title = "Click for more information" -}} +{{ end }} +{{- $text := .Get "text" -}} +{{- printf "%s" $destination $title $text | chomp | safeHTML -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/codetabs.html b/themes/hextra-upsun/layouts/shortcodes/codetabs.html new file mode 100644 index 0000000000..9b0fc0d0b7 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/codetabs.html @@ -0,0 +1,7 @@ +{{- $v1hide := .Get "v1hide" | default "false" -}} +{{- $v2hide := .Get "v2hide" | default "false" -}} +{{- $version := .Site.Params.vendor.config.version -}} +{{- if and ( or ( eq $v1hide "false") (eq $version 2) ) ( or ( eq $v2hide "false") (eq $version 1) ) -}} + +{{- partial "codetabs/tabs" ( dict "Inner" .Inner "Page" .Page ) -}} +{{- end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/composable/disclaimer.md b/themes/hextra-upsun/layouts/shortcodes/composable/disclaimer.md new file mode 100644 index 0000000000..1cf6fc14ba --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/composable/disclaimer.md @@ -0,0 +1,4 @@ +{{ $title := "Note" }} +{{ $theme := "info" }} +{{ $inner := "You can now use composable image (BETA) to install runtimes and tools in your application container. To find out more, see the [dedicated documentation page](/create-apps/app-reference/composable-image.md)." }} +{{ partial "note" (dict "context" . "title" $title "theme" $theme "Inner" $inner) }} diff --git a/themes/hextra-upsun/layouts/shortcodes/config-reader.md b/themes/hextra-upsun/layouts/shortcodes/config-reader.md new file mode 100644 index 0000000000..2a28a5693e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/config-reader.md @@ -0,0 +1,7 @@ + +### Configuration reader + +While you can read the environment directly from your app, +you might want to use the {{- .Inner -}}. +It decodes service credentials, the correct port, and other information for you. + diff --git a/themes/hextra-upsun/layouts/shortcodes/create-project-link.html b/themes/hextra-upsun/layouts/shortcodes/create-project-link.html new file mode 100644 index 0000000000..729f85b515 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/create-project-link.html @@ -0,0 +1,13 @@ + +{{ .Site.Params.vendor.urls.console }}org/create-project{{ $suffix := printf "?" }}{{ with .Get "scratch" }}{{ $suffix = "/info?" }}{{ end }}{{ with .Get "template" }}{{ $suffix = "/template?" }}{{ if eq (printf "%T" .) "string" }}{{ $suffix = printf "%squery=%s&" $suffix . }}{{ end }}{{ end }}{{ $suffix }}_utm_campaign=cta_deploy_marketplace_template&utm_source=public_documentation&_utm_medium=organic diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/articles.html b/themes/hextra-upsun/layouts/shortcodes/custom/articles.html new file mode 100644 index 0000000000..7f48979561 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/articles.html @@ -0,0 +1,24 @@ +{{ $category := .Get 0 | default "false"}} +{{ $posts := .Site.GetPage "/community/post/" }} +{{ if ne "false" $category }} +{{ $posts = where $posts.Pages ".Params.categories" "intersect" ( slice $category )}} +{{ else}} +{{ $posts = $posts.Pages }} +{{ end }} +{{ $currentYear := "" }} +
      +{{ range $posts }} +{{ $t := time.AsTime .Params.date }} +{{ if ne ( $t.Format "2006" ) $currentYear }} +{{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      +{{ end }} +
      + + {{ .Title }} +
      +{{ end }} +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/card.html b/themes/hextra-upsun/layouts/shortcodes/custom/card.html new file mode 100644 index 0000000000..712ab02cf2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/card.html @@ -0,0 +1,52 @@ +{{- $context := . -}} +{{- $link := .Get "link" -}} +{{- $title := .Get "title" -}} +{{- $icon := .Get "icon" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $image := .Get "image" -}} +{{- $width := 0 -}} +{{- $height := 0 -}} +{{- $imageStyle := .Get "imageStyle" -}} + +{{/* Image processing options */}} +{{- $method := .Get "method" | default "Resize" | humanize -}} +{{- $options := .Get "options" | default "800x webp q80" -}} + +{{- if and $image (not (urls.Parse $image).Scheme) -}} + {{/* Process images in assets */}} + {{- with resources.Get $image -}} + {{- $processed := "" -}} + {{- if eq $method "Resize" -}} + {{- $processed = (.Resize $options) -}} + {{- else if eq $method "Fit" -}} + {{- $processed = (.Fit $options) -}} + {{- else if eq $method "Fill" -}} + {{- $processed = (.Fill $options) -}} + {{- else if eq $method "Crop" -}} + {{- $processed = (.Crop $options) -}} + {{- else -}} + {{- errorf "Invalid image processing command: Must be one of Crop, Fit, Fill or Resize." -}} + {{- end -}} + {{- $width = $processed.Width -}} + {{- $height = $processed.Height -}} + {{- $image = $processed.RelPermalink -}} + {{- else -}} + {{/* Otherwise, use relative link of the image */}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- partial "shortcodes/card" (dict + "page" .Page + "link" $link + "title" $title + "icon" $icon + "subtitle" $subtitle + "image" $image + "width" $width + "height" $height + "imageStyle" $imageStyle + ) +-}} diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/communities.html b/themes/hextra-upsun/layouts/shortcodes/custom/communities.html new file mode 100644 index 0000000000..d7545a01a3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/communities.html @@ -0,0 +1,117 @@ +{{ $link := "https://upsun.com" }} +{{ $target := "blank" }} + + + +
    +
    +
    +
    Upsun
    +
    +
    +
    Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the Upsun PaaS.
    +
    +
    +
    +
    Platform.sh
    +
    +
    +
    Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the Upsun PaaS.
    +
    +
    +
    +
    Blackfire.io
    +
    +
    +
    Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the Upsun PaaS.
    +
    +
    + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/community-cards.html b/themes/hextra-upsun/layouts/shortcodes/custom/community-cards.html new file mode 100644 index 0000000000..cfb5ce575f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/community-cards.html @@ -0,0 +1,22 @@ +{{ $context := . }} +{{ $data := .Site.Params.communitycards }} +
    + {{ range $data }} + {{ $title := .title }} + {{ $category := .category }} + {{ $imgLink := .image }} + {{ $link := .link }} + {{ $subtitle := .subtitle }} + {{ $target := "blank" }} + + {{ $title }} + + + {{ $title }} +
    + {{ $subtitle }} +
    +
    + {{ end }} + +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/content-list.html b/themes/hextra-upsun/layouts/shortcodes/custom/content-list.html new file mode 100644 index 0000000000..29ee96e860 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/content-list.html @@ -0,0 +1,90 @@ +{{ $contentType := .Get 0 | default "posts" }} +{{ $category := .Get 1 | default "all" }} +{{ $showDates := .Get 2 | default true }} + +{{ $posts := .Site.GetPage ( printf "/%s/" $contentType ) }} +{{ $written := $posts.RegularPages }} + +{{ $defaultImage := index .Site.Params.contrib "defaultImage" $contentType }} +{{ $attribution := "by" }} +{{ if eq $contentType "videos" }} + {{ $attribution = "with" }} +{{ end }} + +
    + {{ $contentIndex := 0 }} + {{ $currentYear := "" }} + + {{ $catPosts := $written }} + {{ if ne $category "all" }} + {{ $catPosts = where $written ".Params.categories" "intersect" ( slice $category ) }} + {{ end }} + + {{ if eq 0 ( len $catPosts ) }} + + Coming soon. + + {{ else }} +
      + {{ range $catPosts }} + {{ if ne .Params.sidebar.separator true }} + + {{ $t := time.AsTime .Params.date }} + {{ if and ( ne ( $t.Format "2006" ) $currentYear ) ( ne $showDates "false" ) }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} + +
      +
      + {{ if isset .Params "image" }} + {{ .Title | anchorize }} + {{ else if eq $contentType "videos" }} + {{ .Title | anchorize }} + {{ else }} + {{ .Title | anchorize }} + {{ end }} +
      +
      + + {{ if isset .Params "link" }} + {{ .Title | markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ else }} + {{ .Title | markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ end }} +
      +
      + + {{ end }} + {{ end }} +
    + {{ end }} + + +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/content-list2.html b/themes/hextra-upsun/layouts/shortcodes/custom/content-list2.html new file mode 100644 index 0000000000..f8fb919452 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/content-list2.html @@ -0,0 +1,89 @@ +{{ $contentType := .Get 0 | default "posts" }} +{{ $category := .Get 1 | default "all" }} + +{{ $posts := .Site.GetPage ( printf "/%s/" $contentType ) }} +{{ $written := $posts.RegularPages }} + +{{ $defaultImage := index .Site.Params.contrib "defaultImage" $contentType }} +{{ $attribution := "by" }} +{{ if eq $contentType "videos" }} + {{ $attribution = "with" }} +{{ end }} + +
    + {{ $contentIndex := 0 }} + {{ $currentYear := "" }} + + {{ $catPosts := $written }} + {{ if ne $category "all" }} + {{ $catPosts = where $written ".Params.categories" "intersect" ( slice $category ) }} + {{ end }} + + {{ if eq 0 ( len $catPosts ) }} + + Coming soon. + + {{ else }} +
      + {{ range $catPosts }} + {{ if ne .Params.sidebar.separator true }} + + {{ $t := time.AsTime .Params.date }} + {{ if ne ( $t.Format "2006" ) $currentYear }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} + +
      +
      + {{ if isset .Params "image" }} + + {{ else if eq $contentType "videos" }} + + {{ else }} + + {{ end }} +
      +
      + + {{ if isset .Params "link" }} + {{ .Title | markdownify }} + {{ else }} + {{ .Title | markdownify }} + {{ end }} +
      +
      + + {{ end }} + {{ end }} +
    + {{ end }} + + +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/contributions-posts.html b/themes/hextra-upsun/layouts/shortcodes/custom/contributions-posts.html new file mode 100644 index 0000000000..3368436fdb --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/contributions-posts.html @@ -0,0 +1,151 @@ + +{{ $authorHandle := .Get 0 | default "all" }} +{{ $contentType := .Get 1 | default "posts" }} +{{ $author := slice ( $authorHandle ) }} +{{ $categories := slice "all" }} +{{ $attribution := "by" }} + + + +{{ $context := . }} +{{ $output := partial "custom/all-articles.html" (dict "context" . ) }} + + +{{ $categoryData := index .Site.Data.categories $contentType }} +{{ $s := newScratch }} +{{ $s.Set "all" slice }} +{{ range $i, $v := $categoryData }} + {{ $categories = $categories | append $i }} + {{ $s.Set $i slice }} +{{ end }} + + +{{ range $output }} + {{ if in .author $authorHandle }} + {{ $s.Add "all" ( slice . ) }} + {{ $currentPost := . }} + {{ range $categories }} + {{ if in $currentPost.categories . }} + {{ if ne $currentPost.draft true }} + {{ $s.Add . ( slice $currentPost ) }} + {{ end }} + {{ end }} + {{ end }} + {{ end }} +{{ end }} + +{{if ne ( len ( $s.Get "all" ) ) 0 }} + +

    Articles +

    + + +
    +
    + {{ $contentIndex := 0 }} + {{ range $categories }} + {{ if and ( ne ( len ( $s.Get . ) ) 0 ) ( ne . "all" ) }} + {{ if eq $contentIndex 0}} + + {{ else }} + {{ if ne ( len ( $s.Get . ) ) 0 }} + + {{ end }} + {{ end }} + {{ $contentIndex = add $contentIndex 1 }} + {{ end }} + {{ end }} +
    +
    + + +
    + {{ $contentIndex := 0 }} + {{ range $categories }} + {{ $currentYear := "" }} + {{ if and ( ne ( len ( $s.Get . ) ) 0 ) ( ne . "all" ) }} +
    +
      + {{ range $k, $v := sort ( $s.Get . ) "date" "desc" }} + + {{ $t := time.AsTime $v.date }} + {{ $skip := $v.draft }} + + {{ if not $skip }} + + {{ if ( ne ( $t.Format "2006" ) $currentYear ) }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} + +
      +
      + {{ if isset $v "image" }} + {{ $v.title | anchorize }} + {{ end }} +
      +
      + + {{ if ( strings.Contains $v.full "devcenter.upsun.com" ) }} + {{ $v.title | markdownify }}{{ if $v.subtitle }}: {{ $v.subtitle | markdownify }}{{ end }} + {{ else }} + {{ $v.title | markdownify }}{{ if $v.subtitle }}: {{ $v.subtitle | markdownify }}{{ end }} + {{ end }} +
      +
      + + {{ end }} + + {{ end }} +
    +
    + {{ $contentIndex = add $contentIndex 1 }} + {{ end }} + + {{ end }} +
    + +{{ end }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/contributions.html b/themes/hextra-upsun/layouts/shortcodes/custom/contributions.html new file mode 100644 index 0000000000..058df20f41 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/contributions.html @@ -0,0 +1,213 @@ +{{ $authorHandle := .Get 0 | default "all" }} +{{ $contentType := .Get 1 | default "posts" }} +{{ $author := slice ( $authorHandle ) }} +{{ $categories := slice "all" }} + +{{ $categoryData := index .Site.Data.categories $contentType }} + +{{ range $i, $v := $categoryData }} + {{ $categories = $categories | append $i }} +{{ end }} + +{{ $posts := .Site.GetPage ( printf "/%s/" $contentType ) }} + +{{ $written := $posts.RegularPages }} +{{ if ne ( index $author 0 ) "all" }} + {{ $written = where $posts.Pages "Params.author" "intersect" $author }} +{{ end }} + +{{ $defaultImage := index .Site.Params.contrib "defaultImage" $contentType }} + +{{ $attribution := "by" }} +{{ if eq $contentType "videos" }} + {{ $attribution = "with" }} +{{ end }} + +{{ if eq 0 ( len $written ) }} + +{{ else }} + {{ $skipHeadings := slice "/community/content/videos/" "/community/content/posts/" }} + {{ if not (in $skipHeadings .Page.RelPermalink) }} + {{ if eq $contentType "posts" }} +

    Articles +

    + {{ else }} +

    Videos +

    + {{ end }} + {{ end }} + +
    +
    + {{ $contentIndex := 0 }} + {{ range $categories }} + {{ if eq . "all" }} + + {{ else }} + {{ $catPosts := where $written ".Params.categories" "intersect" ( slice . )}} + {{ if gt ( len $catPosts ) 0 }} + + {{ end }} + {{ end }} + {{ $contentIndex = add $contentIndex 1 }} + {{ end }} +
    +
    + +
    + {{ $contentIndex := 0 }} + {{ range $categories }} + {{ $currentYear := "" }} + + {{ if eq . "all" }} +
    + + +
      + {{ range $written }} + {{ if ne .Params.sidebar.separator true }} + {{ $t := time.AsTime .Params.date }} + {{ if ne ( $t.Format "2006" ) $currentYear }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} +
      +
      + {{ if isset .Params "image" }} + {{ .Title | anchorize }} + {{ else if eq $contentType "videos" }} + {{ .Title | anchorize }} + {{ else }} + {{ .Title | anchorize }} + {{ end }} +
      +
      + + {{ if isset .Params "link" }} + {{ .Title | markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ else }} + {{ .Title | markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ end }} +
      +
      + {{ end }} + {{ end }} +
    + + + +
    + {{ else }} + {{ $catPosts := where $written ".Params.categories" "intersect" ( slice . )}} + {{ if gt ( len $catPosts ) 0 }} +
    + + +
      + {{ range $catPosts }} + {{ $t := time.AsTime .Params.date }} + {{ if ne ( $t.Format "2006" ) $currentYear }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} +
      +
      + {{ if isset .Params "image" }} + {{ .Title | anchorize }} + {{ else if eq $contentType "videos" }} + {{ .Title | anchorize }} + {{ else }} + {{ .Title | anchorize }} + {{ end }} +
      +
      + + {{ if isset .Params "link" }} + {{ .Title | markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ else }} + {{ .Title| markdownify }}{{ if isset .Params "subtitle" }}: {{ .Params.subtitle | markdownify }}{{ end }} + {{ end }} +
      +
      + {{ end }} +
    + + +
    + {{ end }} + {{ end }} + {{ $contentIndex = add $contentIndex 1 }} + {{ end }} +
    +{{ end }} diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/contributors.html b/themes/hextra-upsun/layouts/shortcodes/custom/contributors.html new file mode 100644 index 0000000000..c9874f7e8b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/contributors.html @@ -0,0 +1,910 @@ + +
    +
    + + rfay GitHub avatar + + + stasadev GitHub avatar + + + gilbertsoft GitHub avatar + + + tannerjfco GitHub avatar + + + beeradb GitHub avatar + + + dependabot[bot] GitHub avatar + + + mattstein GitHub avatar + + + andrewfrench GitHub avatar + + + frodopwns GitHub avatar + + + tyler36 GitHub avatar + + + hanoii GitHub avatar + + + cyberswat GitHub avatar + + + rpkoller GitHub avatar + + + shaal GitHub avatar + + + mandrasch GitHub avatar + + + GuySartorelli GitHub avatar + + + jonaseberle GitHub avatar + + + cweagans GitHub avatar + + + cmuench GitHub avatar + + + rickmanelius GitHub avatar + + + chellman GitHub avatar + + + dennisameling GitHub avatar + + + gitressa GitHub avatar + + + damienmckenna GitHub avatar + + + AronNovak GitHub avatar + + + joelpittet GitHub avatar + + + nico-loeber GitHub avatar + + + mikesnoeren GitHub avatar + + + deviantintegral GitHub avatar + + + penyaskito GitHub avatar + + + tmotyl GitHub avatar + + + nmccrory GitHub avatar + + + mikebarkas GitHub avatar + + + bencroker GitHub avatar + + + josefglatz GitHub avatar + + + peterkraume GitHub avatar + + + bmartinez287 GitHub avatar + + + mbomb007 GitHub avatar + + + Nick-Hope GitHub avatar + + + weitzman GitHub avatar + + + ultimike GitHub avatar + + + mglaman GitHub avatar + + + joachim-n GitHub avatar + + + jameswilson GitHub avatar + + + mootari GitHub avatar + + + unn GitHub avatar + + + andy-blum GitHub avatar + + + Morgy93 GitHub avatar + + + ayacoo GitHub avatar + + + miromichalicka GitHub avatar + + + diegoe GitHub avatar + + + ajibarra GitHub avatar + + + klonos GitHub avatar + + + ibrah3m GitHub avatar + + + rowild GitHub avatar + + + heddn GitHub avatar + + + jeffsheltren GitHub avatar + + + arafalov GitHub avatar + + + webflo GitHub avatar + + + AugustMiller GitHub avatar + + + ekl1773 GitHub avatar + + + DigitalFrontiersMedia GitHub avatar + + + NBZ4live GitHub avatar + + + RCheesley GitHub avatar + + + leymannx GitHub avatar + + + maxfenton GitHub avatar + + + mttsch GitHub avatar + + + luenemam GitHub avatar + + + iammati GitHub avatar + + + liayn GitHub avatar + + + marklabrecque GitHub avatar + + + d3pendent GitHub avatar + + + ahillio GitHub avatar + + + hctom GitHub avatar + + + ijf8090 GitHub avatar + + + markhalliwell GitHub avatar + + + majamee GitHub avatar + + + testwill GitHub avatar + + + ctorgalson GitHub avatar + + + ursbraem GitHub avatar + + + truls1502 GitHub avatar + + + timkelty GitHub avatar + + + thomasdiluccio GitHub avatar + + + khalwat GitHub avatar + + + andreashager GitHub avatar + + + amitaibu GitHub avatar + + + vanWittlaer GitHub avatar + + + MurzNN GitHub avatar + + + bserem GitHub avatar + + + amayer5125 GitHub avatar + + + adriendupuis GitHub avatar + + + misterboe GitHub avatar + + + BramDriesen GitHub avatar + + + brandonkelly GitHub avatar + + + cspitzlay GitHub avatar + + + atomicptr GitHub avatar + + + meason GitHub avatar + + + skeemer GitHub avatar + + + wizonesolutions GitHub avatar + + + kevinquillen GitHub avatar + + + juampynr GitHub avatar + + + jonasbn GitHub avatar + + + jeroenpeters1986 GitHub avatar + + + bajuku-daniel GitHub avatar + + + longwave GitHub avatar + + + davereid GitHub avatar + + + dclear GitHub avatar + + + garvinhicking GitHub avatar + + + nearlythere GitHub avatar + + + tyrann0us GitHub avatar + + + richlawson GitHub avatar + + + siliconmeadow GitHub avatar + + + Firesphere GitHub avatar + + + riconeitzel GitHub avatar + + + syssi GitHub avatar + + + RobLoach GitHub avatar + + + powpow12 GitHub avatar + + + torenware GitHub avatar + + + rndmh3ro GitHub avatar + + + rawdreeg GitHub avatar + + + ruslansteiger GitHub avatar + + + jonesrussell GitHub avatar + + + rmcveigh GitHub avatar + + + Data5tream GitHub avatar + + + rszrama GitHub avatar + + + justafish GitHub avatar + + + Berdir GitHub avatar + + + pyrello GitHub avatar + + + CollierCZ GitHub avatar + + + mfickers GitHub avatar + + + durmazmehmettemax GitHub avatar + + + stucki GitHub avatar + + + mtelgkamp GitHub avatar + + + mjankiewicz GitHub avatar + + + michielgerritsen GitHub avatar + + + moritzkrauss GitHub avatar + + + quicksketch GitHub avatar + + + oknate GitHub avatar + + + nlisgo GitHub avatar + + + alkymst GitHub avatar + + + kiatng GitHub avatar + + + nedsbeds GitHub avatar + + + NicoHaase GitHub avatar + + + RuZniki GitHub avatar + + + nilsingwersen GitHub avatar + + + nir-riskified GitHub avatar + + + tekNorah GitHub avatar + + + Novitsh GitHub avatar + + + voronkovich GitHub avatar + + + oleksii-lisovyi GitHub avatar + + + gormus GitHub avatar + + + paulvandermeijs GitHub avatar + + + pcambra GitHub avatar + + + peter-neumann-dev GitHub avatar + + + texnixe GitHub avatar + + + ericchew87 GitHub avatar + + + graham73may GitHub avatar + + + griesi007 GitHub avatar + + + hebbet GitHub avatar + + + hussainweb GitHub avatar + + + iribarne GitHub avatar + + + jastraat GitHub avatar + + + karenmurky GitHub avatar + + + kay-o GitHub avatar + + + laetus007 GitHub avatar + + + lukaszuznanski GitHub avatar + + + marten-wirelab GitHub avatar + + + michadu GitHub avatar + + + michaellenahan GitHub avatar + + + mrbaileys GitHub avatar + + + mrhorse GitHub avatar + + + nlighteneddesign GitHub avatar + + + nathannaveen GitHub avatar + + + paulrudy GitHub avatar + + + Romaixn GitHub avatar + + + sreichel GitHub avatar + + + swierczek GitHub avatar + + + ted933 GitHub avatar + + + webseppel GitHub avatar + + + stborchert GitHub avatar + + + KaffDaddy GitHub avatar + + + stephanie-ehrling GitHub avatar + + + susannemoog GitHub avatar + + + thomaskieslich GitHub avatar + + + spoonerWeb GitHub avatar + + + tbal GitHub avatar + + + MakerTim GitHub avatar + + + timnolte GitHub avatar + + + tbmatuka GitHub avatar + + + titouanmathis GitHub avatar + + + kronthto GitHub avatar + + + dasginganinja GitHub avatar + + + tomasnorre GitHub avatar + + + TopherGopher GitHub avatar + + + travisbutterfield GitHub avatar + + + TravisWhitehead GitHub avatar + + + williamengbjerg GitHub avatar + + + yanniboi GitHub avatar + + + andrewbelcher GitHub avatar + + + ashermiddleton GitHub avatar + + + dahnte GitHub avatar + + + dingman GitHub avatar + + + doradovictor GitHub avatar + + + brotkrueml GitHub avatar + + + chrisfromredfin GitHub avatar + + + chri5tia GitHub avatar + + + lolli42 GitHub avatar + + + dacostafilipe GitHub avatar + + + danepowell GitHub avatar + + + DanielRuf GitHub avatar + + + DanielSiepmann GitHub avatar + + + d13r GitHub avatar + + + davearch GitHub avatar + + + dmp1ce GitHub avatar + + + WidgetsBurritos GitHub avatar + + + dmnkhhn GitHub avatar + + + douggreen GitHub avatar + + + plebward GitHub avatar + + + uberhacker GitHub avatar + + + ederlf GitHub avatar + + + edysmp GitHub avatar + + + eiriksm GitHub avatar + + + eliashaeussler GitHub avatar + + + ElijahLynn GitHub avatar + + + Ellarddekoeijer GitHub avatar + + + Juneezee GitHub avatar + + + LionsAd GitHub avatar + + + fawmi GitHub avatar + + + amanire GitHub avatar + + + abhisekmazumdar GitHub avatar + + + adamgross42 GitHub avatar + + + adamzimmermann GitHub avatar + + + alexbogias GitHub avatar + + + alexander-nitsche GitHub avatar + + + ops-andy GitHub avatar + + + maddy2101 GitHub avatar + + + Bujenoff GitHub avatar + + + froboy GitHub avatar + + + benwalch GitHub avatar + + + mlncn GitHub avatar + + + briezler GitHub avatar + + + benjifisher GitHub avatar + + + bbrala GitHub avatar + + + bobbygryzynger GitHub avatar + + + rocketeerbkw GitHub avatar + + + brianjhanson GitHub avatar + + + syzygy333 GitHub avatar + + + rokclimb15 GitHub avatar + + + Brupes GitHub avatar + + + cballenar GitHub avatar + + + carstendietrich GitHub avatar + + + z3cka GitHub avatar + + + outdoorsman GitHub avatar + + + filimoreira GitHub avatar + + + juanjol GitHub avatar + + + JPustkuchen GitHub avatar + + + julbrs GitHub avatar + + + JulienMelissas GitHub avatar + + + lolautruche GitHub avatar + + + apotek GitHub avatar + + + KarimBoudjema GitHub avatar + + + karlshea GitHub avatar + + + kdambekalns GitHub avatar + + + Kayu84 GitHub avatar + + + kmbremner GitHub avatar + + + littleviking GitHub avatar + + + klausi GitHub avatar + + + rafal-kos GitHub avatar + + + ssssct GitHub avatar + + + linawolf GitHub avatar + + + maks-oleksyuk GitHub avatar + + + mmikkel GitHub avatar + + + manuelmeister GitHub avatar + + + mamoschli GitHub avatar + + + mscieszka GitHub avatar + + + mariohernandez GitHub avatar + + + mrimann GitHub avatar + + + matlads GitHub avatar + + + Furo42 GitHub avatar + + + gambry GitHub avatar + + + georgringer GitHub avatar + + + rintisch GitHub avatar + + + greggles GitHub avatar + + + greggmarshall GitHub avatar + + + gturpin-dev GitHub avatar + + + dasjoe GitHub avatar + + + henokmikre GitHub avatar + + + isholgueras GitHub avatar + + + isikbattenstein GitHub avatar + + + jamesmacwhite GitHub avatar + + + janhelke GitHub avatar + + + t3easy GitHub avatar + + + JanKoehnlein GitHub avatar + + + JeremySkinner GitHub avatar + + + jeroenimpres GitHub avatar + + + jodyHamilton GitHub avatar + + + choicelildice GitHub avatar + + + jowhannez GitHub avatar + + + cngJo GitHub avatar + + + jonnitto GitHub avatar + + + JorenRothman GitHub avatar + + + jmpala GitHub avatar + +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/endpoint.html b/themes/hextra-upsun/layouts/shortcodes/custom/endpoint.html new file mode 100644 index 0000000000..f74f9dd3f3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/endpoint.html @@ -0,0 +1,4 @@ +{{- $method := .Get "method" -}} +{{- $path := .Get "path" -}} +{{ upper $method }}{{ $path }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/fragments.html b/themes/hextra-upsun/layouts/shortcodes/custom/fragments.html new file mode 100644 index 0000000000..d40e00b244 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/fragments.html @@ -0,0 +1,20 @@ +{{ $excludeStart := "" }} +{{ $excludeEnd := "" }} +{{ $append := true }} +{{ $data := slice }} +{{ with .Site.GetPage "/community/engage/people/chadwcarlson" }} + {{ $content := .RawContent }} + {{ $splitC := split $content "\n" }} + {{ range $splitC }} + {{ if $append }} + {{ if eq $excludeStart . }} + {{ $append = false }} + {{ else }} + {{ $data = $data | append . }} + {{ end }} + {{ else if eq $excludeEnd . }} + {{ $append = true }} + {{ end }} + {{ end }} +{{ end }} +{{ delimit $data " " }} diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/getdesc.html b/themes/hextra-upsun/layouts/shortcodes/custom/getdesc.html new file mode 100644 index 0000000000..5b0e797f24 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/getdesc.html @@ -0,0 +1,5 @@ +{{- $path := .Get 0 -}} +{{- $page := .Page.GetPage $path -}} +

    + {{- index $page.Params "description" | markdownify -}} +

    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/hero-container.html b/themes/hextra-upsun/layouts/shortcodes/custom/hero-container.html new file mode 100644 index 0000000000..8511161cbb --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/hero-container.html @@ -0,0 +1,18 @@ +{{- $class := .Get "class" -}} +{{- $cols := .Get "cols" | default 2 -}} +{{- $style := .Get "style" -}} + +{{- $css := printf "--hextra-feature-grid-cols: %v; %s" $cols $style -}} + +
    + {{ $content := split .Inner "<----->" }} + {{ range $content }} + +
    + {{ . | markdownify }} +
    + {{ end }} +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/media.html b/themes/hextra-upsun/layouts/shortcodes/custom/media.html new file mode 100644 index 0000000000..7f48979561 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/media.html @@ -0,0 +1,24 @@ +{{ $category := .Get 0 | default "false"}} +{{ $posts := .Site.GetPage "/community/post/" }} +{{ if ne "false" $category }} +{{ $posts = where $posts.Pages ".Params.categories" "intersect" ( slice $category )}} +{{ else}} +{{ $posts = $posts.Pages }} +{{ end }} +{{ $currentYear := "" }} +
      +{{ range $posts }} +{{ $t := time.AsTime .Params.date }} +{{ if ne ( $t.Format "2006" ) $currentYear }} +{{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      +{{ end }} +
      + + {{ .Title }} +
      +{{ end }} +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/openapi-test.html b/themes/hextra-upsun/layouts/shortcodes/custom/openapi-test.html new file mode 100644 index 0000000000..da65725348 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/openapi-test.html @@ -0,0 +1,19 @@ +{{ $url := "https://api.upsun.com/docs/openapispec-platformsh.json" }} +{{ $api := "" }} +{{ with resources.GetRemote $url }} + {{ with .Err }} + {{ errorf "%s" . }} + {{ else }} + {{ $api = . | openapi3.Unmarshal }} + {{ end }} +{{ else }} + {{ errorf "Unable to get remote resource %q" $url }} +{{ end }} + +{{ index $api.Info.Title }} ({{ index $api.Info.Version }}) + +URL: {{ index $api.Info.Contact.URL }} | Terms of Service + +
    + +{{ index (split $api.Info.Description "Introduction\n\n") 1 | safeHTML }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/people.html b/themes/hextra-upsun/layouts/shortcodes/custom/people.html new file mode 100644 index 0000000000..6cbe36e559 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/people.html @@ -0,0 +1,19 @@ +
    +{{ $pages := where site.RegularPages ".RelPermalink" "in" "/community/people" }} + +{{ range site.RegularPages }} + {{ if and ( strings.Contains .RelPermalink "/community/people/" ) ( ne .Title "People" ) }} + + {{ if isset .Params "image" }} + + {{ else }} + + {{ end }} +

    {{ .Title }}

    +

    + {{ .Page.Params.role | safeHTML }} +

    +
    + {{ end }} +{{ end }} +
    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/profile/articles.html b/themes/hextra-upsun/layouts/shortcodes/custom/profile/articles.html new file mode 100644 index 0000000000..9ac37effb8 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/profile/articles.html @@ -0,0 +1,35 @@ +{{ $author := slice }} +{{ $externalWritten := slice }} +{{ $context := . }} +{{ with .Page.File }} + {{ $author = $author | append .BaseFileName }} + {{ $externalWritten = index $context.Site.Data.external .BaseFileName }} +{{ end }} +{{ $blogs := where .Site.RegularPages "Section" "eq" "blog" }} +{{ $written := where $blogs "Params.author" "intersect" $author }} + +{{ $allPosts := slice }} +{{ range $externalWritten }} + {{ $allPosts = $allPosts | append . }} +{{ end }} +{{ range $written }} + {{ $allPosts = $allPosts | append . }} +{{ end }} + +{{ range $allPosts }} + + {{ if .IsPage }} +
    + + {{ .Title }} +
    + {{ else }} + {{ $t := time.AsTime .date }} +
    + + {{ .title }} +
    + {{ end }} +{{ end }} + + diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/profile/media.html b/themes/hextra-upsun/layouts/shortcodes/custom/profile/media.html new file mode 100644 index 0000000000..21b4b94fd1 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/profile/media.html @@ -0,0 +1,53 @@ +{{ $targetType := slice ( .Get 0 ) }} +{{ $author := slice }} +{{ $context := . }} +{{ with .Page.File }} + {{ $author = $author | append .BaseFileName }} +{{ end }} + +{{ $media := where .Site.Data.media ".categories" "intersect" $targetType }} +{{ $written := where $media ".author" "intersect" $author }} +{{ if gt ( len $written ) 0 }} + + {{ range $written }} + {{ if eq ( index $targetType 0 ) "talks" }} + {{ $event_link := "#" }} + {{ $event_title := "EVENT TITLE TBD"}} + {{ $eventPage := "Something" }} + {{ if isset . "event" }} + {{ $event_link = printf "/events/%s" .event }} + {{ $eventPage = $context.Site.GetPage $event_link }} + {{ with $eventPage }} + {{ $event_title = .Title }} + {{ end }} + {{ end }} + {{ $t := time.AsTime .date }} +
    + + {{ if isset . "id" }} + {{ .title }} + {{ else }} + {{ .title }} + {{ end }} +
    + + {{ else }} + {{ $t := time.AsTime .date }} +
    + + + {{ if isset . "id" }} + {{ .title }} + {{ else }} + {{ .title }} + {{ end }} +
    + {{ end }} + {{ end }} + +{{ else }} +

    + Nothing here - yet. +

    +{{ end }} + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/readfile.html b/themes/hextra-upsun/layouts/shortcodes/custom/readfile.html new file mode 100644 index 0000000000..e1605274b6 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/readfile.html @@ -0,0 +1 @@ +{{ readFile ( .Get 0 ) }} diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/remote-articles.html b/themes/hextra-upsun/layouts/shortcodes/custom/remote-articles.html new file mode 100644 index 0000000000..e326d90e88 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/remote-articles.html @@ -0,0 +1,88 @@ +{{ $contentType := "posts" }} +{{ $category := .Get 0 | default "all" }} +{{ $showDates := .Get 1 | default true }} + +{{ $attribution := "by" }} +{{ $context := . }} +{{ $output := partial "custom/all-articles.html" (dict "context" . ) }} + +{{ $maxFeaturedArticle := 3 }} +{{ $countFeatArticle := 0 }} + +
    + {{ $contentIndex := 0 }} + {{ $currentYear := "" }} +
      + {{ range $k, $v := sort $output "date" "desc" }} + {{ $t := time.AsTime $v.date }} + + {{ $skip := $v.draft }} + + {{ if ne $category "all" }} + {{ if not ( in $v.categories $category ) }} + {{ $skip = true }} + {{ end }} + {{ end }} + + {{ if eq $category "featured" }} + {{ if (gt $countFeatArticle $maxFeaturedArticle ) }} + {{ $skip = true }} + {{ end }} + {{ $countFeatArticle = (math.Add $countFeatArticle 1) }} + {{ end }} + + {{ if not $skip }} + {{ if and ( ne ( $t.Format "2006" ) $currentYear ) ( ne $showDates "false" ) }} + {{ $currentYear = $t.Format "2006" }} +
      {{ $currentYear }}
      + {{ end }} + +
      +
      + {{ if and (isset $v "image") ($v.image) }} + {{ if $v.image_alt }}{{ $v.image_alt }}{{ else }}{{ $v.title | anchorize }}{{ end }} + {{ end }} +
      +
      + + {{ if ( strings.Contains $v.full "devcenter.upsun.com" ) }} + {{ $v.title | markdownify }}{{ if $v.subtitle }}: {{ $v.subtitle | markdownify }}{{ end }} + {{ else }} + {{ $v.title | markdownify }}{{ if $v.subtitle }}: {{ $v.subtitle | markdownify }}{{ end }} + {{ end }} +
      +
      + {{ end }} + {{ end }} +
    + +
    \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/search-suggestions.html b/themes/hextra-upsun/layouts/shortcodes/custom/search-suggestions.html new file mode 100644 index 0000000000..a379f87c51 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/search-suggestions.html @@ -0,0 +1,6 @@ +{{ $searchSuggestions := .Site.Params.search.suggestions }} +{{ $randomIndex := math.Rand | mul ( len $searchSuggestions ) | math.Floor | int }} +
    + Unsure where to start? Try searching for + {{ index $searchSuggestions $randomIndex | markdownify }}. +
    diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/search.html b/themes/hextra-upsun/layouts/shortcodes/custom/search.html new file mode 100644 index 0000000000..3d110139a0 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/search.html @@ -0,0 +1,55 @@ +{{- $placeholder := (T "searchPlaceholder") | default "What are you looking for?" -}} + +
    +
    +
    + {{ partial "utils/icon.html" (dict "name" "search") -}} +
    + + +
    + +
    +
      +
      +
      + + + diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/search2.html b/themes/hextra-upsun/layouts/shortcodes/custom/search2.html new file mode 100644 index 0000000000..ddc4f0ff15 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/search2.html @@ -0,0 +1,30 @@ +{{- $placeholder := (T "searchPlaceholder") | default "What are you looking for?" -}} + +
      +
      +
      + {{ partial "utils/icon.html" (dict "name" "search") -}} +
      + +
      + +
      +
        +
        + + + diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/whats-new.html b/themes/hextra-upsun/layouts/shortcodes/custom/whats-new.html new file mode 100644 index 0000000000..655decd1bc --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/whats-new.html @@ -0,0 +1,87 @@ +{{ $context := . }} +{{ $media := .Site.Data.media }} +
        + {{- $data := .Site.Params.featured -}} + {{ $limitThree := 0 }} + {{ range $data }} + {{ if ne $limitThree 3 }} + {{ $title := "tempTitle" }} + {{ $subtitle := "" }} + {{ $link := "tempLink" }} + {{ $category := "tempCategory" }} + {{ $authors := slice "John Doe" }} + {{ $imgLink := "tempImgLink" }} + {{ $attribution := "" }} + {{ $target := "" }} + {{ $date := "2024-07-11T15:20:15+09:00" }} + {{ if isset . "pageRef" }} + {{ $link = .pageRef }} + {{ with $context.Site.GetPage .pageRef }} + {{ $title = .Title }} + {{ if isset .Params "subtitle" }} + {{ $subtitle = printf ": %s" ( .Params.subtitle ) }} + {{ end }} + {{ $imgLink = .Params.image }} + {{ if isset . "image" }} + {{ $imgLink = .image }} + {{ end }} + {{ $category = index .Params.categories 0 }} + {{ $attribution = "by" }} + {{ $authors = .Params.author }} + {{ $date = .Params.date }} + {{ end }} + {{ else }} + {{ if isset . "media" }} + {{ $target = "blank" }} + {{ $video := index ( where $media ".id" .id ) 0 }} + {{ $title = $video.title }} + {{ $imgLink = printf "https://img.youtube.com/vi/%s/hqdefault.jpg" $video.id }} + {{ $category = index $video.categories 0 }} + {{ $attribution = "with" }} + {{ $authors = $video.authors }} + {{ $date = $video.date }} + {{ $link = printf "https://www.youtube.com/watch?v=%s" $video.id }} + {{ end }} + {{ end }} + + {{ $title }} + + + {{ $title }}{{ $subtitle }} +
        + + {{ if eq ( len $authors) 1 }} + {{ $author0 := site.GetPage ( printf "/community/engage/people/%s" ( index $authors 0 ) )}} + {{ if ne $author0.Title "" }} + {{ $author0 = $author0.Title }} + {{ else }} + {{ $author0 = index $authors 0 }} + {{ end }} + {{ $attribution }} {{ $author0 }} + {{ else }} + {{ $author0 := site.GetPage ( printf "/community/engage/people/%s" ( index $authors 0 ) )}} + {{ if ne $author0.Title "" }} + {{ $author0 = $author0.Title }} + {{ else }} + {{ $author0 = index $authors 0 }} + {{ end }} + {{ $author1 := site.GetPage ( printf "/community/engage/people/%s" ( index $authors 1 ) )}} + {{ if ne $author1.Title "" }} + {{ $author1 = $author1.Title }} + {{ else }} + {{ $author1 = index $authors 1 }} + {{ end }} + {{ $attribution }} {{ $author0}} and {{ $author1 }} + {{ end }} +
        +
        + {{ $t := time.AsTime $date }} + {{ $t.Format "02 Jan 2006" }} +
        +
        + {{ if eq $context.Page.Type "community" }} + {{ $limitThree = add $limitThree 1 }} + {{ end }} + {{ end }} + {{ end -}} +
        diff --git a/themes/hextra-upsun/layouts/shortcodes/custom/youtube-playlist.html b/themes/hextra-upsun/layouts/shortcodes/custom/youtube-playlist.html new file mode 100644 index 0000000000..aa8ff1aa02 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/custom/youtube-playlist.html @@ -0,0 +1,11 @@ +{{- $pc := .Page.Site.Config.Privacy.YouTube -}} +{{- if not $pc.Disable -}} +{{- $ytHost := cond $pc.PrivacyEnhanced "www.youtube-nocookie.com" "www.youtube.com" -}} +{{- $id := .Get "id" | default (.Get 0) -}} +{{- $class := .Get "class" | default (.Get 1) -}} +{{- $title := .Get "title" | default "YouTube Video" }} +
        + +
        +{{ end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/connect.md b/themes/hextra-upsun/layouts/shortcodes/ddev/connect.md new file mode 100644 index 0000000000..40eacc16d3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/connect.md @@ -0,0 +1,12 @@ + +The best way to connect your local DDEV to your {{ .Site.Params.vendor.name }} project is through the [{{ .Site.Params.vendor.name }} DDEV add-on](https://github.com/ddev/ddev-platformsh). +To add it, run the following command: + +```bash +ddev get ddev/ddev-platformsh +``` + +Answer the interactive prompts with your project ID and the name of the environment to pull data from. + +With the add-on, you can now run `ddev platform ` from your computer without needing to install the {{ .Site.Params.vendor.name }} CLI. + diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/definition.md b/themes/hextra-upsun/layouts/shortcodes/ddev/definition.md new file mode 100644 index 0000000000..258416e20a --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/definition.md @@ -0,0 +1,6 @@ + +[DDEV](https://ddev.readthedocs.io/en/stable/) is an open-source tool for local development environments. +It allows you to use Docker in your workflows while maintaining a GitOps workflow. +You get fully containerized environments to run everything locally +without having to install tools (including the {{ .Site.Params.vendor.name }} CLI, PHP, and Composer) on your machine. + diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/install.md b/themes/hextra-upsun/layouts/shortcodes/ddev/install.md new file mode 100644 index 0000000000..8426c35ab6 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/install.md @@ -0,0 +1,6 @@ + +To install DDEV, follow the [DDEV documentation for your operating system](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/). + +This installs the self-contained `ddev` command-line interface (CLI). +For more information on `ddev`, run `ddev help`. + diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/local-note.md b/themes/hextra-upsun/layouts/shortcodes/ddev/local-note.md new file mode 100644 index 0000000000..0b47afc080 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/local-note.md @@ -0,0 +1,8 @@ + +{{ $name := .Get "name" }} +{{ $link := .Get "link" }} + +This guide is an example for setting up a local development environment for {{ $name }}. +The recommended tool for local development is DDEV. +See the [{{ $name }} DDEV guide]({{ $link }}). + diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/requirements.md b/themes/hextra-upsun/layouts/shortcodes/ddev/requirements.md new file mode 100644 index 0000000000..5263c2ad88 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/requirements.md @@ -0,0 +1,11 @@ + +Make sure your computer meets the [system requirements for DDEV](https://ddev.readthedocs.io/en/stable/#system-requirements). + +For the integration to run smoothly, you also need the following tools: + +- `jq` +- `base64` +- `perl` + +If you don't have these already installed, use your normal package manager. + diff --git a/themes/hextra-upsun/layouts/shortcodes/ddev/token.md b/themes/hextra-upsun/layouts/shortcodes/ddev/token.md new file mode 100644 index 0000000000..a478883e06 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/ddev/token.md @@ -0,0 +1,18 @@ + +To connect DDEV with your {{ .Site.Params.vendor.name }} account, use a {{ .Site.Params.vendor.name }} API token. + +First [create an API token](/administration/cli/api-tokens.md#2-create-an-api-token) in the Console. + +Then add the token to your DDEV configuration. +You can do so globally (easiest for most people): + +```bash +ddev config global --web-environment-add={{ `{{< vendor/prefix_cli >}}` | .Page.RenderString }}_CLI_TOKEN={{ `{{< variable "API_TOKEN" >}}` | .Page.RenderString }} +``` + +You can also add the token only to the project: + +```bash +ddev config --web-environment-add={{ `{{< vendor/prefix_cli >}}` | .Page.RenderString }}_CLI_TOKEN={{ `{{< variable "API_TOKEN" >}}` | .Page.RenderString }} +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/deprecated-versions.md b/themes/hextra-upsun/layouts/shortcodes/deprecated-versions.md new file mode 100644 index 0000000000..2287396d40 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/deprecated-versions.md @@ -0,0 +1,8 @@ + +### Deprecated versions + +The following versions are [deprecated](/glossary.html#deprecated-versions). +They're available, but they aren't receiving security updates from upstream and aren't guaranteed to work. +They'll be removed in the future, +so migrate to one of the [supported versions](#supported-versions). + diff --git a/themes/hextra-upsun/layouts/shortcodes/description.md b/themes/hextra-upsun/layouts/shortcodes/description.md new file mode 100644 index 0000000000..a8758edf2d --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/description.md @@ -0,0 +1,3 @@ + +{{ .Page.Description | .Page.RenderString }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/devrel-sponsored-sites-form.html b/themes/hextra-upsun/layouts/shortcodes/devrel-sponsored-sites-form.html new file mode 100644 index 0000000000..4e3ddcadda --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/devrel-sponsored-sites-form.html @@ -0,0 +1,3 @@ + + + diff --git a/themes/hextra-upsun/layouts/shortcodes/disable-cache.md b/themes/hextra-upsun/layouts/shortcodes/disable-cache.md new file mode 100644 index 0000000000..98f48c81ca --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/disable-cache.md @@ -0,0 +1,17 @@ + +## 1. Avoid double-caching + +To avoid stale content that can't be cleared, +avoid using {{ .Get "CDN" }} with [HTTP caching](/define-routes/cache.md). + +For routes where {{ .Get "CDN" }} is used, +disable HTTP caching using the following configuration: + +```yaml {configFile="routes"} +https://{default}/: + type: upstream + ... + cache: + enabled: false +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/gen-3-services.html b/themes/hextra-upsun/layouts/shortcodes/gen-3-services.html new file mode 100644 index 0000000000..67f2b7c044 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/gen-3-services.html @@ -0,0 +1,28 @@ + + + + + + {{- range $image, $info := .Site.Data.registry -}} + + {{- if and (isset $info "versions-dedicated-gen-3") (ne $image "redis-persistent") (ne $image "mysql") (ne $image "elasticsearch") -}} + {{- $label := index $info "name" -}} + {{- $versions := index ( index $info "versions-dedicated-gen-3") "supported" -}} + {{- $docs_link := index (index $info "docs") "url" -}} + + + + + {{- end -}} + {{- end -}} +
        ServiceSupported versions
        {{ $label }} + {{- $service_versions := "" -}} + {{- range $versions -}} + {{- if eq ( len $service_versions ) 0 -}} + {{- $service_versions = printf "%s%s" $service_versions . -}} + {{- else -}} + {{- $service_versions = printf "%s, %s" $service_versions . -}} + {{- end -}} + {{- end -}} + {{ $service_versions }} +
        diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/basic-app.md b/themes/hextra-upsun/layouts/shortcodes/get-started/basic-app.md new file mode 100644 index 0000000000..e6a2d86519 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/basic-app.md @@ -0,0 +1,421 @@ + +
        + + + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'php:8.0' + +# Indicate to use Composer 2 (leave out if you want Composer 1) +# See how without Composer: https://docs.platform.sh/guides/wordpress/vanilla.html +dependencies: + php: + composer/composer: '^2' + +# The size of the persistent disk of the application (in MB) +disk: 2048 + +# Your app's configuration when it's exposed to the web. +web: + locations: + "/": + # The public directory of the app, relative to its root. + root: "web" + # The front-controller script to send non-static requests to. + passthru: "/index.php" +``` + +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'php:8.0' + +# Indicate to use Composer 2 (leave out if you want Composer 1) +# See how without Composer: https://docs.platform.sh/guides/wordpress/vanilla.html +dependencies: + php: + composer/composer: '^2' + +# The size of the persistent disk of the application (in MB) +disk: 2048 + +# Your app's configuration when it's exposed to the web. +web: + # Set the upstream property to create a socket to listen to + upstream: + socket_family: tcp + protocol: http + + # Set the specific command to start your app + # using the provided port + commands: + start: php path/to/start/command --port=$PORT + + locations: + "/": + # Send all requests through to the app + allow: false + passthru: true + scripts: false +``` + +
        +
        + +
        + + + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'python:3.10' + +# The size of the persistent disk of the application (in MB) +disk: 1024 + +# Your app's configuration when it's exposed to the web. +web: + commands: + start: python app.py +``` + +You may need to adapt the start command to fit your app. + +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'python:3.10' + +# The build-time dependencies of the app. +dependencies: + python3: + pipenv: "2022.6.7" + +# The size of the persistent disk of the application (in MB) +disk: 1024 + +# Your app's configuration when it's exposed to the web. +web: + upstream: + # Ensure your app listens on the right socket + socket_family: unix + commands: + # The exact command varies based on the server you use + + # 1) ASGI: daphne + start: "pipenv run daphne app.asgi:application" + # 2) ASGI: uvicorn + start: "pipenv run gunicorn -k uvicorn.workers.UvicornWorker -w 4 -b unix:$SOCKET app.wsgi:application" + # 3) ASGI: hypercorn + start: "pipenv run hypercorn app.asgi:application" + # 4) WSGI: gunicorn + start: "pipenv run gunicorn -w 4 -b unix:$SOCKET app.wsgi:application" +``` + +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'python:3.10' + +# Set properties for poetry +variables: + env: + POETRY_VERSION: '1.1.14' + POETRY_VIRTUALENVS_IN_PROJECT: true + POETRY_VIRTUALENVS_CREATE: false + +# The size of the persistent disk of the application (in MB) +disk: 1024 + +web: + upstream: + # Ensure your app listens on the right socket + socket_family: unix + commands: + # The exact command varies based on the server you use + + # 1) ASGI: daphne + start: "poetry run daphne app.asgi:application" + # 2) ASGI: uvicorn + start: "poetry run gunicorn -k uvicorn.workers.UvicornWorker -w 4 -b unix:$SOCKET app.wsgi:application" + # 3) ASGI: hypercorn + start: "poetry run hypercorn app.asgi:application" + # 4) WSGI: gunicorn + start: "poetry run gunicorn -w 4 -b unix:$SOCKET app.wsgi:application" +``` + +
        + +
        + +
        + + + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'nodejs:16' + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + start: NODE_ENV=production npm run start +``` +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'nodejs:16' + +# Turn off the default use of npm +build: + flavor: none + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + start: NODE_ENV=production yarn start +``` + +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'nodejs:16' + +# Turn off the default use of npm +build: + flavor: none + +# Include yarn as a global dependency +dependencies: + nodejs: + yarn: "1.22.19" + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + start: NODE_ENV=production yarn start +``` + +
        + +This assumes you start your app with a `start` script in your `package.json`. +You may need to adapt the start command to fit your app. +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'golang:1.18' + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + # This should match the output of your build command + start: ./bin/app +``` + +You may need to adapt the start command to fit your app. +
        + +
        + + + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'java:14' + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + start: java -jar $JAVA_OPTS target/app.jar --server.port=$PORT +``` +
        + +
        + +```yaml {configFile="app"} +# The name of the app. Must be unique within a project. +name: app + +# The type of the application to build +type: 'java:14' + +# The size of the persistent disk of the application (in MB) +disk: 512 + +# Your app's configuration when it's exposed to the web. +web: + commands: + # Adapt the `app.jar` to what's in `build.gradle` + start: java -jar $JAVA_OPTS build/libs/app.jar --server.port=$PORT +``` +
        + +You may need to adapt the start command to fit your app. +
        + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/build-hook.md b/themes/hextra-upsun/layouts/shortcodes/get-started/build-hook.md new file mode 100644 index 0000000000..0e0955ae31 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/build-hook.md @@ -0,0 +1,186 @@ + +
        + +To build your app, you may also need to add commands to go through the build process. +These are included in what's known as the build hook. + +Add something similar to the following to the end of the file you just added: +
        + +
        + + + +
        + +```yaml {configFile="app"} +hooks: + build: pipenv install --system --deploy +``` + +
        + +
        + +```yaml {configFile="app"} +hooks: + build: | + # Fail the build if any part fails + set -e + # Install poetry + export PIP_USER=false + curl -sSL https://install.python-poetry.org | python3 - --version $POETRY_VERSION + export PIP_USER=true + # Install dependencies + poetry install +``` + +
        + +
        + +
        + +(This assumes you have your build process as part of a `build` script in your `package.json`) + + + +
        + +```yaml {configFile="app"} +hooks: + build: npm run build +``` + +
        + +
        + +```yaml {configFile="app"} +hooks: + build: | + # Fail the build if any part fails + set -e + corepack yarn install + corepack yarn build +``` + +
        + +
        + +```yaml {configFile="app"} +hooks: + build: | + # Fail the build if any part fails + set -e + yarn --frozen-lockfile + yarn build +``` + +
        + +
        + +
        + +```yaml {configFile="app"} +hooks: + # Make sure the output matches your start command + build: go build -o bin/app +``` + +
        + +
        + + + +
        + +```yaml {configFile="app"} +hooks: + build: mvn clean package +``` + +
        + +
        + +Assuming you've committed Gradle to your repository. + +```yaml {configFile="app"} +hooks: + build: ./gradlew clean build --no-daemon +``` + +
        + +
        + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/choose-stack.html b/themes/hextra-upsun/layouts/shortcodes/get-started/choose-stack.html new file mode 100644 index 0000000000..00c4fa11b3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/choose-stack.html @@ -0,0 +1,24 @@ + + + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/connect-service.md b/themes/hextra-upsun/layouts/shortcodes/get-started/connect-service.md new file mode 100644 index 0000000000..046746e342 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/connect-service.md @@ -0,0 +1,68 @@ + +## Connect database to app + +Now connect the database to your app. + +
        + +First, add the {{ .Site.Params.vendor.name }} Config Reader library to make the connection easier. + +
        + +```bash +composer require platformsh/config-reader +``` + +
        + +
        + +```bash +npm install platformsh-config +``` + +
        + +
        + +```bash +pip install platformshconfig +``` + +
        + +Then connect to the database in your app using the library. +You can choose where to do this depending on what makes sense in your app. + +
        + +
        + +{{ highlight ( readFile "static/files/fetch/examples/php/mysql" ) "php" "" }} + +
        + +
        + +{{ highlight ( readFile "static/files/fetch/examples/nodejs/mysql" ) "js" "" }} + +
        + +
        + +{{ highlight ( readFile "static/files/fetch/examples/python/mysql" ) "python" "" }} + +
        + +
        + +{{ highlight ( readFile "static/files/fetch/examples/golang/mysql" ) "go" "" }} + +
        + +
        + +{{ highlight ( readFile "static/files/fetch/examples/java/mysql" ) "java" "" }} + +
        + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/environment-note.md b/themes/hextra-upsun/layouts/shortcodes/get-started/environment-note.md new file mode 100644 index 0000000000..4d7298def3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/environment-note.md @@ -0,0 +1,3 @@ + +An additional [`.environment` file](/development/variables/set-variables.html#set-variables-via-script) may be located at the root of your source code. This file contains {{ .Site.Params.vendor.name }} specific environment variables. + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/next-button.html b/themes/hextra-upsun/layouts/shortcodes/get-started/next-button.html new file mode 100644 index 0000000000..28bdb68fd5 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/next-button.html @@ -0,0 +1,9 @@ +{{ $destination := .Get "next" }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/service-needed.md b/themes/hextra-upsun/layouts/shortcodes/get-started/service-needed.md new file mode 100644 index 0000000000..79b542b367 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/service-needed.md @@ -0,0 +1,16 @@ + +
        + +You can now see your built app at the returned URL. + +
        + +
        + +Your app is built and served at the returned URL, but it doesn't yet have all the services it needs to work. +
        + +You could [define more complicated routes](/define-routes.html), +but the default is enough for basic apps. +Now branch your environment to see how data works in {{ .Site.Params.vendor.name }} and then add services. + diff --git a/themes/hextra-upsun/layouts/shortcodes/get-started/steps.md b/themes/hextra-upsun/layouts/shortcodes/get-started/steps.md new file mode 100644 index 0000000000..a088c60381 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/get-started/steps.md @@ -0,0 +1,7 @@ +
          +{{ range .Page.Pages }} +
        1. + {{ .Title }} +
        2. +{{ end }} +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/guide-buttons.html b/themes/hextra-upsun/layouts/shortcodes/guide-buttons.html new file mode 100644 index 0000000000..225472d67b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guide-buttons.html @@ -0,0 +1,93 @@ + +{{ $pageContext := .Page }} +{{ $navType := "*" }} +{{ with .Get "type" }} + {{ $navType = . }} +{{ end }} + +{{ $next := "" }} +{{ with .Get "next" }} + {{ $next = . | $pageContext.RenderString }} +{{ end }} + +{{ $nextLink := "" }} +{{ with .Get "nextLink" }} + {{ $nextLink = . | $pageContext.RenderString }} +{{ end }} + +{{ $previous := "" }} +{{ with .Get "previous" }} + {{ $previous = . | $pageContext.RenderString }} +{{ end }} + +{{ $prevLink := "" }} +{{ with .Get "previousLink" }} + {{ $prevLink = . | $pageContext.RenderString }} +{{ end }} + + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/config-app.md b/themes/hextra-upsun/layouts/shortcodes/guides/config-app.md new file mode 100644 index 0000000000..38c49126b7 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/config-app.md @@ -0,0 +1,16 @@ + +{{ $template := .Get "template" }} +## Configure apps in `{{ partial "vendor/configfile" (dict "context" . "config" "app") }}` + +Your app configuration in a `{{ partial "vendor/configfile" (dict "context" . "config" "app") }}` file is allows you to configure nearly any aspect of your app. +For all of the options, see a [complete reference]({{ relref . "/create-apps/app-reference/single-runtime-image.md" }}). +The following example shows a complete configuration with comments to explain the various settings. + +{{ .Inner | .Page.RenderString }} + +{{ if not ( .Get "noExample" ) }} +```yaml {configFile="app"} +{{ readFile ( printf "static/files/fetch/appyaml/%s" $template ) }} +``` +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/config-desc.md b/themes/hextra-upsun/layouts/shortcodes/guides/config-desc.md new file mode 100644 index 0000000000..e513fe4f89 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/config-desc.md @@ -0,0 +1,60 @@ + +{{ $name := .Get "name" }} +You now have a *project* running on {{ .Site.Params.vendor.name }}. +In many ways, a project is just a collection of tools around a Git repository. +Just like a Git repository, a project has branches, called *environments*. +Each environment can then be activated. +*Active* environments are built and deployed, +giving you a fully isolated running site for each active environment. + +Once an environment is activated, your app is deployed through a cluster of containers. +You can configure these containers in three ways, each corresponding to a [YAML file](/learn/overview/yaml): + +- **Configure apps** in a `{{ partial "vendor/configfile" (dict "context" . "config" "app") }}` file. + This controls the configuration of the container where your app lives. +- **Add services** in a `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` file. + This controls what additional services are created to support your app, + such as databases or search servers. + Each environment has its own independent copy of each service. + If you're not using any services, you don't need this file. +- **Define routes** in a `{{ partial "vendor/configfile" (dict "context" . "config" "routes") }}` file. + This controls how incoming requests are routed to your app or apps. + It also controls the built-in HTTP cache. + If you're only using the single default route, you don't need this file. + +Start by creating empty versions of each of these files in your repository: + +```bash +# Create empty {{ .Site.Params.vendor.name }} configuration files +mkdir -p .platform && touch {{ partial "vendor/configfile" (dict "context" . "config" "services") }} && touch {{ partial "vendor/configfile" (dict "context" . "config" "routes") }}{{ if not (.Get "noService") }} && touch {{ partial "vendor/configfile" (dict "context" . "config" "app") }}{{ end }} +``` + +{{ if isset .Params "platformify" }} +Alternatively, you could use the `platformify` script to initialize these files. +This script downloads any missing files from the official template. +It doesn't affect any files you already created. + +```bash +# Platformify your app and automatically download the missing configuration files +curl -fsS https://raw.githubusercontent.com/platformsh/snippets/main/src/platformify.sh | { bash /dev/fd/3 -t {{(.Get "platformify")}} ; } 3<&0 +``` + +If you run this command on an empty folder, the entire template is downloaded. + +{{ else if eq $name "Symfony" }} +Alternatively, you could use the Symfony CLI to initialize these files. +This command generates a sensible default configuration depending on your project +dependencies. + +```bash +symfony project:init +git add . && git commit -m "Add {{ .Site.Params.vendor.name }} configuration files" +``` + +{{ end }} + +Now that you've added these files to your project, +configure each one for {{ $name }} in the following sections. +Each section covers basic configuration options and presents a complete example +with comments on why {{ $name }} requires those values. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/config-reader-info.md b/themes/hextra-upsun/layouts/shortcodes/guides/config-reader-info.md new file mode 100644 index 0000000000..a1eb516267 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/config-reader-info.md @@ -0,0 +1,25 @@ + +{{ $lang := .Get "lang" }} +You can get all information about a deployed environment, +including how to connect to services, through [environment variables]({{ relref . "/development/variables/_index.md" }}). +Your app can [access these variables]({{ relref . "development/variables/use-variables.md#access-variables-in-your-app" }}). + +{{ if eq $lang "nodejs" }} +Install the package with your preferred package manager: + +```bash +npm install platformsh-config + +# Or for Yarn +yarn add platformsh-config +``` +{{ end }} + +{{ if eq $lang "php" }} +The following examples use it, so install it through Composer if you haven't already. + +```bash +composer require platformsh/config-reader +``` +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/config-routes.md b/themes/hextra-upsun/layouts/shortcodes/guides/config-routes.md new file mode 100644 index 0000000000..75396772e2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/config-routes.md @@ -0,0 +1,40 @@ + +{{ $name := .Get "name" }} +## Define routes + +All HTTP requests sent to your app are controlled through the routing and caching you define in a `{{ partial "vendor/configfile" (dict "context" . "config" "routes") }}` file. + +The two most important options are the main route and its caching rules. +A route can have a placeholder of `{default}`, +which is replaced by your domain name in production and environment-specific names for your preview environments. +The main route has an `upstream`, which is the name of the app container to forward requests to. + +You can enable [HTTP cache]({{ relref . "/define-routes/cache.md" }}). +The router includes a basic HTTP cache. +By default, HTTP caches includes all cookies in the cache key. +So any cookies that you have bust the cache. +The `cookies` key allows you to select which cookies should matter for the cache.{{ if or (eq $name "WordPress") (eq $name "TYPO3") (eq $name "Drupal")}} +Generally, you want the user session cookie, which is included in the example for {{ $name }}. +You may need to add other cookies depending on what additional modules you have installed.{{ end }} + +You can also set up routes as [HTTP redirects]({{ relref . "/define-routes/redirects.md" }}). +In the following example, all requests to `www.{default}` are redirected to the equivalent URL without `www`. +HTTP requests are automatically redirected to HTTPS. + +If you don't include a `{{ partial "vendor/configfile" (dict "context" . "config" "routes") }}` file, a single default route is used. +This is equivalent to the following: + +```yaml {configFile="routes"} +https://{default}/: + type: upstream + upstream: :http +``` + +Where `` is the `name` you've defined in your [app configuration](#configure-apps-in-platformappyaml). + +The following example presents a complete definition of a main route for a {{ $name }} app: + +```bash {configFile="routes"} +{{ readFile ( printf "static/files/fetch/routesyaml/%s" (.Get "template" ) ) }} +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/config-service.md b/themes/hextra-upsun/layouts/shortcodes/guides/config-service.md new file mode 100644 index 0000000000..8877122451 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/config-service.md @@ -0,0 +1,24 @@ + +{{ $name := .Get "name" }} +## Add services in `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` + +You can add the managed services you need for you app to run in the `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` file. +You pick the major version of the service and security and minor updates are applied automatically, +so you always get the newest version when you deploy. +You should always try any upgrades on a development branch before pushing to production. + +{{ .Inner | .Page.RenderString }} + +{{ if .Get "noService" }} +{{ $name }} doesn't require services to deploy, so you don't need a `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` file for now.{{ end }} +You can [add other services](/add-services/_index.md) if desired, +such as [Solr](/add-services/solr.md) or [Elasticsearch](/add-services/elasticsearch.md). +You need to configure {{ $name }} to use those services once they're enabled. + +{{ if not (.Get "noService") }} +Each service entry has a name (`db`{{ if not (or (.Get "WordPress") (eq $name "Django") (eq (.Get "framework") "Strapi")) }} and `cache`{{ end }} in the example) +and a `type` that specifies the service and version to use. +Services that store persistent data have a `disk` key, to specify the amount of storage. + +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/data-migration.md b/themes/hextra-upsun/layouts/shortcodes/guides/data-migration.md new file mode 100644 index 0000000000..67d04cccbe --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/data-migration.md @@ -0,0 +1,68 @@ + +{{ $isWordPress := .Get "WordPress" }} +{{ $isSymfony := .Get "Symfony" }} +## Migrate your data + +If you are moving an existing site to {{ .Site.Params.vendor.name }}, then in addition to code you also need to migrate your data. +That means your database and your files. + +### Import the database + +First, obtain a database dump from your current site, +such as using the +* [`pg_dump` command for PostgreSQL](https://www.postgresql.org/docs/current/app-pgdump.html) +* [`mysqldump` command for MariaDB](https://mariadb.com/kb/en/mysqldump/) +* [`sqlite-dump` command for SQLite](https://www.sqlitetutorial.net/sqlite-dump/) + +{{ .Inner | .Page.RenderString }} + +Next, import the database into your {{ .Site.Params.vendor.name }} site by running the following command: + +{{ if $isSymfony }} +```bash +symfony cloud:sql < dump.sql +``` +{{ else }} +```bash +{{ `{{% vendor/cli %}}` | .Page.RenderString }} sql < dump.sql +``` +{{ end }} + +That connects to the database service through an SSH tunnel and imports the SQL. + +### Import files + +First, download your files from your current hosting environment. +The easiest way is likely with rsync, but consult your host's documentation. + +This guide assumes that you have already downloaded {{ if $isWordPress }} +all of your uploaded files to your local `wordpress/wp-content/uploads` directory +{{ else }} +all of your user files to your local `files/user` directory and your public files to `files/public` +{{ end }}, but adjust accordingly for their actual locations. + +Next, upload your files to your mounts +using the {{ if $isSymfony }}`symfony cloud:mount:upload`{{ else }}`{{ `{{% vendor/cli %}}` | .Page.RenderString }} mount:upload`{{ end }} command. +Run the following command from your local Git repository root, +modifying the `--source` path if needed. + +{{ if $isWordPress }} +```bash +{{ `{{% vendor/cli %}}` | .Page.RenderString }} mount:upload --mount wordpress/wp-content/uploads --source ./wordpress/wp-content/uploads +``` +{{ else }} +```bash +{{ `{{% vendor/cli %}}` | .Page.RenderString }} mount:upload --mount src/main/resources/files/user --source ./files/user +{{ `{{% vendor/cli %}}` | .Page.RenderString }} mount:upload --mount src/main/resources/files/public --source ./files/public +``` +{{ end }} + + +This uses an SSH tunnel and rsync to upload your files as efficiently as possible. +Note that rsync is picky about its trailing slashes, so be sure to include those. + +You've now added your files and database to your {{ .Site.Params.vendor.name }} environment. +When you make a new branch environment off of it, +all of your data is fully cloned to that new environment +so you can test with your complete dataset without impacting production. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/deployment.md b/themes/hextra-upsun/layouts/shortcodes/guides/deployment.md new file mode 100644 index 0000000000..a828358083 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/deployment.md @@ -0,0 +1,23 @@ + +{{ $isSymfony := .Get "Symfony" }} +{{ $cliCommand := `{{% vendor/cli %}}` | .Page.RenderString }} +{{ if $isSymfony }} + {{ $cliCommand = "symfony cloud:" }} +{{ end }} +Now you have your configuration for deployment and your app set up to run on {{ .Site.Params.vendor.name }}. +Make sure all your code is committed to Git +and run `{{ if $isSymfony }}symfony cloud:deploy{{ else }}git push{{ end }}` to your {{ .Site.Params.vendor.name }} environment. + +Your code is built, producing a read-only image that's deployed to a running cluster of containers. +If you aren't using a source integration, the log of the process is returned in your terminal. +If you're using a source integration, you can get the log by running `{{ $cliCommand }} activity:log --type environment.push`. + +When the build finished, you're given the URL of your deployed environment. +Click the URL to see your site. + +If your environment wasn't active and so wasn't deployed, activate it by running the following command: + +```bash +{{ $cliCommand }} environment:activate +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/django/local-assumptions.md b/themes/hextra-upsun/layouts/shortcodes/guides/django/local-assumptions.md new file mode 100644 index 0000000000..2d36a82026 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/django/local-assumptions.md @@ -0,0 +1,13 @@ + +## Assumptions + +This example makes some assumptions, which you may need to adjust for your own circumstances. + +It's assumed you want to run a built-in lightweight development server with `manage.py runserver`. +To match a production web server (such as Gunicorn or Daphne), +[modify those commands accordingly](../../../languages/python/server.md). + +It's generally assumed that {{ .Site.Params.vendor.name }} is the primary remote for the project. +If you use a source integration, the steps are identical in most cases. +When they differ, the alternative is noted. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/django/local-sanitize-example.md b/themes/hextra-upsun/layouts/shortcodes/guides/django/local-sanitize-example.md new file mode 100644 index 0000000000..38a7fe6f52 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/django/local-sanitize-example.md @@ -0,0 +1,25 @@ + +### Sanitize data + +It's often a compliance requirement to ensure that only a minimal subset of developers within an organization +have access to production data during their work. +By default, your production data is automatically cloned into _every_ child environment. + +You can customize your deployments to include a script that sanitizes the data within every preview environment. + +1. Create a new environment called `sanitize-non-prod`. + +2. Follow the example on how to [sanitize PostgreSQL with Django](../../../development/sanitize-db/postgresql.md). + This adds a sanitization script to your deploy hook that runs on all preview environments. + +3. Commit and push the revisions by running the following command: + + ```bash + git add . && git commit -m "Add data sanitization" && git push platform sanitize-non-prod + ``` + +4. Merge the change into production. + + Once the script is merged into production, every preview environment created on {{ .Site.Params.vendor.name }} + and all local environments contain sanitized data free of your users' personally identifiable information (PII). + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-applicationsyaml.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-applicationsyaml.md new file mode 100644 index 0000000000..e03c513287 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-applicationsyaml.md @@ -0,0 +1,6 @@ + +You can optionally combine the application configuration (`{{ partial "vendor/configfile" (dict "context" . "config" "services") }}`) for Gatsby +and {{ .Get "name" }} into a [single configuration file](/create-apps/multi-app/project-structure.md#unified-app-configuration). +Like `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` and `{{ partial "vendor/configfile" (dict "context" . "config" "routes") }}`, this file is shared across the project and resides in the `.platform` subdirectory. +You need to explicitly define the source of each application. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-backend.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-backend.md new file mode 100644 index 0000000000..b142dfd181 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-backend.md @@ -0,0 +1,11 @@ + +{{ $name := .Get "name" }} +{{ $template := $name }} +{{ if eq $name "Drupal" }} + {{ $template = "Drupal9"}} +{{ end }} +The multi-app template has a single modification to {{ .Site.Params.vendor.name }}'s [standard {{ $name }} template](https://github.com/platformsh-templates/{{ anchorize ( $template ) }}): +the `name` attribute in {{ $name }}'s `{{ partial "vendor/configfile" (dict "context" . "config" "services") }}` has been updated to `{{ anchorize ( $name )}}`. +This value is used to define the [relationship between Gatsby and {{ $name }}](#gatsby) +and in the [routes configuration](#routes-configuration). + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-gatsby.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-gatsby.md new file mode 100644 index 0000000000..a139d050f9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-gatsby.md @@ -0,0 +1,45 @@ + +The frontend Gatsby app has a slightly different configuration from the basic [Gatsby deployment](/guides/gatsby/deploy.html). +Below is the `gatsby/.platform.app.yaml` file that configures the app. + +{{ $file := printf "static/files/fetch/multiappyaml/%s" (.Get "template") }} +{{ highlight ( readFile $file ) "yaml" ""}} + +In particular, notice: + +- `relationships` + + Access to another service or app container in the cluster is given through [`relationships`](/create-apps/app-reference/single-runtime-image#relationships). + In this case, one has been defined to the backend {{ .Get "name" }} container using it's `name`. + +- `post_deploy` + + {{ .Site.Params.vendor.name }} containers reside in separate build containers at build time, + before their images are moved to the final app container at deploy time. + These build containers are isolated and so Gatsby can't access {{ .Get "name" }} during the build hook, + where you would normally run the [`gatsby build` command](https://github.com/platformsh-templates/gatsby/blob/master/.platform.app.yaml#L21). + {{ .Get "name" }} isn't available until after the deploy hook. + So the Gatsby build is postponed until the [`post_deploy` hook](/create-apps/hooks/hooks-comparison.html#post-deploy-hook). + + To run `gatsby build` on-demand, or to trigger a rebuild from the backend when content is updated, + define a [runtime operation](/create-apps/runtime-operations.html#build-your-app-when-using-a-static-site-generator). + +- `mounts` + + There are consequences to postponing the Gatsby build, + as you don't generally have write access to the container this late in the pipeline. + To allow Gatsby to write to `public`, that directory has been defined as a [mount](/create-apps/app-reference/single-runtime-image#mounts). + +{{ .Inner | .Page.RenderString }} + +This is facilitated by {{ .Site.Params.vendor.name }}'s [Config Reader library](https://github.com/platformsh/config-reader-nodejs). +So be sure to install this to the Gatsby dependencies first when replicating. +When used, Gatsby pulls the information to communicate with the {{ .Get "name" }} container *on the current branch*. + +{{ $file := printf "static/files/fetch/gatsby/%s" (.Get "template" ) }} +{{ highlight ( readFile $file ) "js" ""}} + +Lastly, the Gatsby app itself needs to include [GraphQL queries](https://www.gatsbyjs.com/docs/reference/graphql-data-layer/) +to handle the data coming from {{ .Get "name" }} and create content pages. +The most important files in the template you should consult are: + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-intro.html b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-intro.html new file mode 100644 index 0000000000..bfd8bf1107 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-intro.html @@ -0,0 +1,7 @@ +

        {{ .Site.Params.vendor.name }} maintains a template that you can quickly deploy, and then use this guide as a reference for the {{ .Site.Params.vendor.name }} specific changes that have been made to Gatsby and {{ .Get "name" }} to make it work. Click the button below to sign up for a free trial account and deploy the project.

        + +

        + + Deploy on {{ .Site.Params.vendor.name }} + +

        diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-multiplesources.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-multiplesources.md new file mode 100644 index 0000000000..396586d247 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-multiplesources.md @@ -0,0 +1,7 @@ + +Gatsby supports pulling multiple sources into its build. +This includes external services like Stripe and additional backend CMSs for different sets of content. +As in this example with {{ .Get "name" }}, +you can branch off your repository and add an additional directory that contains the codebase for [another backend](/guides/gatsby/headless.html#headless-backends). +Then add the source plugin for that backend to `gatsby-config.js`. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-plansize.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-plansize.md new file mode 100644 index 0000000000..7962528568 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-plansize.md @@ -0,0 +1,10 @@ + +As mentioned previously, you should have at least a {{ partial "plans/multiapp-plan-name" }} plan for your multi-app projects. +This size gives the project enough resources for all of your containers +as well as the memory necessary to actually pull content from {{ .Get "name" }} into Gatsby during its build. + +Keep in mind that the increased plan size applies only to your production environment, +and not to preview environments (which default to {{ partial "plans/default-dev-env-size" }}). +As you continue to work with Gatsby and a backend headless CMS, +you may want to [upsize your preview environments](/administration/pricing.html#preview-environments). + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-postinstall.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-postinstall.md new file mode 100644 index 0000000000..12e5a4e245 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-postinstall.md @@ -0,0 +1,10 @@ + +When you first deploy the template, the frontend Gatsby site will fail with a 403 error. +Visit the `backend` subdomain of your site and finish the installation of {{ .Get "name"}}. +You don't need to set database credentials as they're already provided. + +{{ .Inner | .Page.RenderString }} + +Once you've finished, redeploy the project with the CLI command `platform redeploy` to view your Gatsby site, +It's now pulling its content from a backend {{ .Get "name" }} container in the same project. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-project.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-project.md new file mode 100644 index 0000000000..0a14aaa173 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-project.md @@ -0,0 +1,24 @@ + +Your local clone of the template has the following project structure: + +```bash +├── .platform +│ ├── {{ partial "vendor/configfile" (dict "context" . "config" "routes" "strip" true ) }} +│ └── {{ partial "vendor/configfile" (dict "context" . "config" "services" "strip" true) }} +├── {{ anchorize (.Get "name" )}} +│ ├── # App code +│ └── {{ partial "vendor/configfile" (dict "context" . "config" "app") }} +├── gatsby +│ ├── # App code +│ └── {{ partial "vendor/configfile" (dict "context" . "config" "app") }} +└── README.md +``` + +From this repository, you deploy a Gatsby app and a {{ .Get "name" }} app. +The code for each of them resides in their own directories. +When deploying a single app project [such as Gatsby](/guides/gatsby/deploy.html), +the repository needs three configuration files that describe its infrastructure, described below in detail. +For [multi-app projects](/create-apps/multi-app/_index.md), +two of those files remain in the project root and are shared between Gatsby and {{ .Get "name" }}. +Each app keeps its own app configuration file (`{{ partial "vendor/configfile" (dict "context" . "config" "app") }}`) in its subdirectory. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-routes.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-routes.md new file mode 100644 index 0000000000..cc3653193e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-routes.md @@ -0,0 +1,8 @@ + +This [`{{ partial "vendor/configfile" (dict "context" . "config" "routes") }}`](/define-routes.html) file defines how requests are handled by {{ .Site.Params.vendor.name }}. +The following example shows Gatsby being served from the primary domain +and {{ .Get "name" }} being accessible from the `backend` subdomain. + +{{ $file := printf "static/files/fetch/routesyaml/%s" (.Get "template") }} +{{ highlight ( readFile $file ) "yaml" ""}} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-services.md b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-services.md new file mode 100644 index 0000000000..5183a3a183 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/gatsby/headless-services.md @@ -0,0 +1,8 @@ + +This file describes which [service containers](/add-services.html) (such as a database) your project should include. +Gatsby does not require services to deploy, but {{ .Get "name" }} does. +So the following examples shows these service configurations: + +{{ $file := printf "static/files/fetch/servicesyaml/%s" (.Get "template") }} +{{ highlight ( readFile $file ) "yaml" ""}} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/initialize.html b/themes/hextra-upsun/layouts/shortcodes/guides/initialize.html new file mode 100644 index 0000000000..6e6ed68a1c --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/initialize.html @@ -0,0 +1,93 @@ + +{{ $isSymfony := eq ( .Get "name" ) "Symfony" }} +{{ $cliCommand := `{{% vendor/cli %}}` | .Page.RenderString }} +{{ if $isSymfony }} + {{ $cliCommand = "symfony" }} +{{ end }} +

        You can start with a basic code base or push a pre-existing project to {{ .Site.Params.vendor.name }}.

        + +
          +
        1. +

          Create your first project by running the following command:

          + +
          {{  print $cliCommand ` create \-\-title {{< variable "PROJECT_TITLE" >}}`  | .Page.RenderString }}
          + +

          Then choose the region you want to deploy to, such as the one closest to your site visitors. + You can also select more resources for your project through additional flags, + but a Development plan should be enough for you to get started.

          + +

          Copy the ID of the project you've created.

          +
        2. +
        3. +

          Get your code ready locally.

          + +

          If your code lives in a remote repository, clone it to your computer.

          + +

          If your code isn't in a Git repository, initialize it by running git init.

          + {{ .Inner | .Page.RenderString }}
        4. +
        5. +

          Connect your {{ .Site.Params.vendor.name }} project with Git. + You can use {{ .Site.Params.vendor.name }} as your Git repository or connect to a third-party provider: + GitHub, GitLab, or BitBucket. +

          + +{{ $titleName := .Site.Params.vendor.name }} +{{ if $isSymfony }} + {{ $titleName = "the Symfony CLI" }} +{{ end }} +{{ $inner := print ` ++++ +title=Using ` $titleName ` ++++ + +Add a Git remote for the ` .Site.Params.vendor.name ` project you just created +by running the following command from your repository: + +
          ` $cliCommand ` project:set-remote {{< variable "PROJECT_ID" >}}
          + +That creates an upstream called ` $cliCommand ` for your Git repository. + +<---> ++++ +title=Using a third-party provider ++++ + +When you choose to use a third-party Git hosting service +the ` .Site.Params.vendor.name ` Git repository becomes a read-only mirror of the third-party repository. +All your changes take place in the third-party repository. + +Add an integration to your existing third party repository. + +The process varies a bit for each supported service, so check the specific pages for each one. + +- [BitBucket](/integrations/source/bitbucket.md) +- [GitHub](/integrations/source/github.md) +- [GitLab](/integrations/source/gitlab.md) + +Accept the default options or modify to fit your needs. + +All of your existing branches are automatically synchronized to ` .Site.Params.vendor.name `. +You get a deploy failure message because you haven't provided configuration files yet. +You add them in the next step. + +If you're integrating a repository to ` .Site.Params.vendor.name ` that contains a number of open pull requests, +don't use the default integration options. +Projects are limited to three\* preview environments (active and deployed branches or pull requests) +and you would need to deactivate them individually to test this guide's migration changes. +Instead, each service integration should be made with the following flag: + +
          ` $cliCommand ` integration:add --type=<service> ... --build-pull-requests=false
          +
          + +You can then go through this guide and activate the environment when you're ready to deploy + +\* You can purchase additional preview environments at any time in the Console. +Open your project and select **Edit plan**. +Add additional **Environments**, view a cost estimate, and confirm your changes. +` }} +{{ partial "codetabs/tabs" (dict "Inner" $inner "Page" .Page ) }} +
        6. +
        + +

        Now you have a local Git repository, a {{ .Site.Params.vendor.name }} project, and a way to push code to that project. Next you can configure your project to work with {{ .Site.Params.vendor.name }}.

        + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/lando.md b/themes/hextra-upsun/layouts/shortcodes/guides/lando.md new file mode 100644 index 0000000000..8708ee15b2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/lando.md @@ -0,0 +1,26 @@ + +[Lando](https://github.com/lando/lando) is a local development tool. +Lando can read your {{ .Site.Params.vendor.name }} configuration files for WordPress +and produce an approximately equivalent configuration using Docker +See a guide on [using Lando with {{ .Site.Params.vendor.name }}](/development/local/lando.html). + +Templates come configured for use already with a base [Landofile](https://docs.lando.dev/landofile/), +as in the following example. +It can be helpful getting started with Lando without the need to have a project on {{ .Site.Params.vendor.name }}. +This file sets up good defaults for Lando and {{ .Site.Params.vendor.name }}-configured codebases, +most notably through the `recipe` attribute. + +{{ $file := printf "static/files/fetch/lando/%s" (.Get "repo" ) }} +{{ highlight ( readFile $file ) "yaml" ""}} + +This Landofile is also where you can configure access to tools +that would normally be available within a {{ .Site.Params.vendor.name }} app container (such as the WordPress CLI) +and that you also want to access locally. + +You can replicate this file or follow the guide on [using Lando with {{ .Site.Params.vendor.name }}](/development/local/lando.html). +Once you have completed the configuration, you can start your local environment by running: + +```bash +lando start +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/link-philosophy.md b/themes/hextra-upsun/layouts/shortcodes/guides/link-philosophy.md new file mode 100644 index 0000000000..e2527d05c5 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/link-philosophy.md @@ -0,0 +1,4 @@ + +If you're new to {{ .Site.Params.vendor.name }}, you might want to check out the [philosophy of {{ .Site.Params.vendor.name }}](/learn/overview/philosophy.md) +to get started on the best possible footing. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/local-requirements.md b/themes/hextra-upsun/layouts/shortcodes/guides/local-requirements.md new file mode 100644 index 0000000000..34fac83ba7 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/local-requirements.md @@ -0,0 +1,16 @@ + +{{ $isSymfony := eq ( .Get "name" ) "Symfony" }} +## Before you begin + +You need: + +- A local copy of the repository for a {{ with .Get "framework" }}[{{ . }}](../deploy/_index.md) {{ end }} project running on {{ .Site.Params.vendor.name }}. + +{{ if not $isSymfony }} + To get one, run {{ `{{< vendor/cli >}}` | .Page.RenderString }} get {{ `{{< variable "PROJECT_ID" >}}` | .Page.RenderString }}. +{{ end }} + + {{ if not $isSymfony }}Alternatively, you can clone{{ else }}You can clone{{ end }} an integrated source repository and set the remote branch. + To do so, run {{ if $isSymfony }}symfony cloud:{{ else }}{{ `{{< vendor/cli >}}` | .Page.RenderString }} {{ end }}project:set-remote {{ `{{< variable "PROJECT_ID" >}}` | .Page.RenderString }}. +- The {{ if $isSymfony }}[Symfony CLI](https://symfony.com/download){{ else }}[{{ .Site.Params.vendor.name }} CLI](/administration/cli/_index.md){{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/requirements.md b/themes/hextra-upsun/layouts/shortcodes/guides/requirements.md new file mode 100644 index 0000000000..431c4f7ff3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/requirements.md @@ -0,0 +1,19 @@ + +{{ $isSymfony := eq ( .Get "name" ) "Symfony" }} +## Before you begin + +You need: + +- [Git](https://git-scm.com/downloads). + Git is the primary tool to manage everything your app needs to run. + Push commits to deploy changes and control configuration through YAML files. + These files describe your infrastructure, making it transparent and version-controlled. +- A {{ .Site.Params.vendor.name }} account. + If you don't already have one, [register for a trial account]({{ .Site.Params.vendor.urls.register }}). + You can sign up with an email address or an existing GitHub, Bitbucket, or Google account. + If you choose one of these accounts, you can set a password for your {{ .Site.Params.vendor.name }} account later. +- The {{ if $isSymfony }}[Symfony CLI](https://symfony.com/download){{ else }}[{{ .Site.Params.vendor.name }} CLI](/administration/cli/_index.md){{ end }}. + This lets you interact with your project from the command line. + You can also do most things through the [Web Console](/administration/web/_index.md). + + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/starting-point.md b/themes/hextra-upsun/layouts/shortcodes/guides/starting-point.md new file mode 100644 index 0000000000..be90313b28 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/starting-point.md @@ -0,0 +1,46 @@ + +{{ $name := .Get "name"}} +{{ $repo := .Get "templateRepo" }} +{{ $composerLink := .Get "composerLink" }} +{{ $site := $name}} +{{ if ne $composerLink "" }} + {{ $site = printf "[Composer-flavored %s](%s)" $name $composerLink }} +{{ end }} + +{{ $org := "platformsh-templates" }} +{{ with .Get "templateOrg" }} + {{ $org = . }} +{{ end }} + +{{ $templateUrl := print `https://raw.githubusercontent.com/platformsh/template-builder/master/templates/` ( .Get "template" ) `/.platform.template.yaml ` }} +{{ if eq $name "Symfony" }} + {{ $templateUrl = print `https://raw.githubusercontent.com/symfonycorp/platformsh-symfony-template-metadata/main/` ( .Get "template" ) `.yaml` }} +{{ end }} + +To get {{ $name }} running on {{ .Site.Params.vendor.name }}, you have two potential starting places: + +- You already have a {{ $site }} site you are trying to deploy. + Go through this guide to make the recommended changes to your repository to prepare it for {{ .Site.Params.vendor.name }}. + +- You have no code at this point. + + If you have no code, you have two choices: + + - Generate a basic {{ $site }} site. + {{ if .Get "initExample" }}See an example for doing this under initializing a project.{{ end }} + + - Use a ready-made [{{ $name }} template](https://github.com/{{ $org }}/{{ $repo }}). + +{{ markdownify (readFile "/layouts/shortcodes/template-intro.md") }} + +To use a template, click the button below to create a {{ .Get "name" }} template project. + +

        + + Deploy on {{ .Site.Params.vendor.name }} + +

        + +Once the template is deployed, you can follow the rest of this guide +to better understand the extra files and changes to the repository. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-assumptions.md b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-assumptions.md new file mode 100644 index 0000000000..7f09414a2b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-assumptions.md @@ -0,0 +1,36 @@ + +{{ $redisGuide := .Get "redis-guide-link" }} +{{ $postgresqlGuide := .Get "postgresql-guide-link" }} + +## Assumptions + +This example makes a few assumptions, which you may need to adjust for your own circumstances. + +It assumes that you've already [deployed a Symfony project on {{ .Site.Params.vendor.name }}](../getting-started/_index.md) +that has production data in a [PostgreSQL database]({{ $postgresqlGuide }}) and use [Redis component]({{ $redisGuide }}). + +It's assumed that your project has the following service definitions: + +```yaml {configFile="services"} +database: + type: postgresql:14 + disk: 1024 + +cache: + type: redis:7.0 + configuration: + maxmemory_policy: volatile-lru + # any other finetuning here +``` + +This is assumed to have the following relationship definitions: + +```yaml {configFile="app"} +relationships: + database: "database:postgresql" + rediscache: "cache:redis" +``` + +Finally, this example mostly assumes that a {{ .Site.Params.vendor.name }} is the primary remote for the project. +When using source integrations, the steps will be identical in most cases and addressed otherwise. + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-end.md b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-end.md new file mode 100644 index 0000000000..4e373266ea --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-end.md @@ -0,0 +1,69 @@ + +3. Commit and push the revisions by running the following command: + + ```bash + git add . && git commit -m "Add local configuration" && git push platform local-config + ``` + +4. Merge the change into production by running the following command: + + ```bash + symfony merge local-config + ``` +5. Grant access on the project to the new member of your team + + ```bash + symfony user:add bob@example.com -r production:v -r development:c + ``` + + You can also use the Web Console to [add a new user to your project](/administration/users.html#add-a-user-to-a-project). + + +Once the script is merged into production, +any granted user can then set up their local environment by running the following commands: + +```bash +{{ ` symfony get {{< variable "PROJECT_ID" >}} + cd {{< variable "PROJECT_NAME" >}} + ./init-local.sh {{< variable "PROJECT_ID" >}} another-new-feature main` | .Page.RenderString }} +``` + + + + +### Sanitize data + +It's often a compliance requirement to ensure that only a minimal subset of developers within an organization +have access to production data during their work. +By default, your production data is automatically cloned into _every_ child environment. + +You can customize your deployments to include a script that sanitizes the data within every preview environment. + +1. Create a new environment called `sanitize-non-prod`. + ```bash + symfony branch sanitize-non-prod + ``` + +2. Follow the example on how to [sanitize PostgreSQL with Symfony](../../../development/sanitize-db/postgresql-symfony.md). + This adds a sanitization script to your deploy hook that runs on all preview environments. + +3. Commit and push the revisions by running the following command: + + ```bash + git add . && git commit -m "Add data sanitization" && git push platform sanitize-non-prod + ``` + +4. Merge the change into production by running the following command: + + ```bash + symfony merge sanitize-non-prod + ``` + +Once the script is merged into production, every preview environment created on {{ .Site.Params.vendor.name }} +and all local environments contain sanitized data free of your users' personally identifiable information (PII). + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-start.md b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-start.md new file mode 100644 index 0000000000..0c1d53d248 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/symfony/local-next-steps-start.md @@ -0,0 +1,29 @@ + +{{ $name := "local" }} +{{ with .Get "name" }} + {{ $name = . }} +{{ end }} +## Next steps + +You can now use your local environment to develop changes for review on {{ .Site.Params.vendor.name }} environments. +The following examples show how you can take advantage of that. + +### Onboard collaborators + +It's essential for every developer on your team to have a local development environment to work on. +Place the {{ $name }} configuration into a script to ensure everyone has this. +You can merge this change into production. + +1. Create a new environment called `local-config`. + ```bash + symfony branch local-config + ``` + +2. Create an executable script to set up a local environment for a new {{ .Site.Params.vendor.name }} environment. + + ```bash + touch init-local.sh && chmod +x init-local.sh + ``` + + Fill it with the following example: + diff --git a/themes/hextra-upsun/layouts/shortcodes/guides/whitelabel/git_integration.md b/themes/hextra-upsun/layouts/shortcodes/guides/whitelabel/git_integration.md new file mode 100644 index 0000000000..2bf47fc528 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/guides/whitelabel/git_integration.md @@ -0,0 +1,43 @@ + +{{ $git := .Get "git" }} +{{ $stack := .Get "stack" }} +{{ $option := "" }} + +{{ if in $git "GitHub" }} + {{ $option = "2" }} +{{ end }} +{{ if in $git "Gitlab" }} + {{ $option = "3" }} +{{ end }} +{{ if in $git "Bitbucket" }} + {{ $option = "0" }} +{{ end }} + +We assume here that you already have your own {{ $git }} repository with the {{ $stack }} source code you want to host on {{ .Site.Params.vendor.name }}. +To link using this repository, use the following {{ .Site.Params.vendor.name }} CLI command to create a {{ $git }} integration with your project and then let the integration process create one environment per Git branch from your repository: + +```shell +$ upsun integration:add +* Integration type (--type) + Enter a number to choose: + [0 ] bitbucket + [1 ] bitbucket_server + [2 ] github + [3 ] gitlab + [4 ] webhook + [5 ] health.email + [6 ] health.pagerduty + [7 ] health.slack + [8 ] health.webhook + [10] script +> {{ $option }} + +* Token (--token) + An authentication or access token for the integration +> X1234567890AZERTYUIOP + +* Repository (--repository) + The repository (e.g. 'owner/repository') +> / +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/hextra/feature-card.html b/themes/hextra-upsun/layouts/shortcodes/hextra/feature-card.html new file mode 100644 index 0000000000..1be5f8f0d2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/hextra/feature-card.html @@ -0,0 +1,36 @@ +{{- $title := .Get "title" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $class := .Get "class" -}} +{{- $image := .Get "image" -}} +{{- $imageClass := .Get "imageClass" -}} +{{- $style := .Get "style" -}} +{{- $icon := .Get "icon" -}} +{{- $link := .Get "link" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (strings.HasPrefix $link "/") ($link | relURL) $link -}} + +{{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} +{{- end -}} + + +
        +

        + {{ $title }} + {{ with $icon -}} + + {{- partial "utils/icon.html" (dict "name" . "attributes" "height=1.75rem") -}} + + {{ end -}} +

        +

        {{ $subtitle | markdownify }}

        +
        + {{- with $image -}} + {{ $title }} + {{- end -}} +
        diff --git a/themes/hextra-upsun/layouts/shortcodes/hextra/hero-button.html b/themes/hextra-upsun/layouts/shortcodes/hextra/hero-button.html new file mode 100644 index 0000000000..744d2f8e2a --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/hextra/hero-button.html @@ -0,0 +1,16 @@ +{{- $link := .Get "link" -}} +{{- $text := .Get "text" -}} +{{- $style := .Get "style" -}} +{{- $class := .Get "class" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (hasPrefix $link "/") ($link | relURL) $link -}} + + + {{- $text -}} + diff --git a/themes/hextra-upsun/layouts/shortcodes/home.html b/themes/hextra-upsun/layouts/shortcodes/home.html new file mode 100644 index 0000000000..70b154881b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home.html @@ -0,0 +1,77 @@ +
        + +

        Welcome to the

        +

        {{ .Site.Title }}

        + +

        Built for developers, by developers. The efficient, reliable, and secure Platform-as-a-Service (PaaS) that gives development teams control and peace of mind while accelerating the time it takes to build and deploy applications.

        + +

        Resources to help you customize, experiment, and optimize all from one platform.

        + + + + +
        + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/links-blackfire.html b/themes/hextra-upsun/layouts/shortcodes/home/links-blackfire.html new file mode 100644 index 0000000000..a2a381e233 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/links-blackfire.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/links-blog.html b/themes/hextra-upsun/layouts/shortcodes/home/links-blog.html new file mode 100644 index 0000000000..8a14dc72ed --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/links-blog.html @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/links-ddev.html b/themes/hextra-upsun/layouts/shortcodes/home/links-ddev.html new file mode 100644 index 0000000000..94056da70b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/links-ddev.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/links-github.html b/themes/hextra-upsun/layouts/shortcodes/home/links-github.html new file mode 100644 index 0000000000..82700b2c1f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/links-github.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/links-youtube.html b/themes/hextra-upsun/layouts/shortcodes/home/links-youtube.html new file mode 100644 index 0000000000..921335e1ae --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/links-youtube.html @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/home/table.html b/themes/hextra-upsun/layouts/shortcodes/home/table.html new file mode 100644 index 0000000000..f41f2e20e7 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/home/table.html @@ -0,0 +1,85 @@ +{{ $version := .Get 0 }} + +
        + + {{ if eq $version "services" }} + Managed services +

        Services on our platform are managed. You can provision them with a few lines of YAML and quickly connect them to the rest of your environment. No infrastructure expertise is required.

        +
        + +

        Popular documentation:

        + +
          + {{ with .Page.GetPage "/add-services" }} + {{ range .Pages }} + {{ if .Params.sidebarTitle }} +
        • {{ .Params.sidebarTitle }}
        • + {{ else }} +
        • {{ .Title }}
        • + {{ end }} + {{ end }} + {{ end }} +
        + {{ else if eq $version "languages" }} + Runtime languages +

        Like services, configure your application containers with one of many supported runtime types.

        +
        +

        Popular documentation:

        + + + {{ else if eq $version "configuration" }} + Project & environment configuration +

        Delve deeper into how to configure containers, environments, projects, and repositories.

        +
        +

        Popular documentation:

        + + {{ else if eq $version "topics" }} + Advanced topics +

        Learn more about how you can customize and optimize your deployed projects, and further experiment on the platform.

        +
        +

        Popular documentation:

        + + {{ end }} + +
        + + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/add.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/add.html new file mode 100644 index 0000000000..fe91120d39 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/add.html @@ -0,0 +1,2 @@ +Add + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/backup.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/backup.html new file mode 100644 index 0000000000..2bb358ca57 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/backup.html @@ -0,0 +1,2 @@ +Backup + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/branch.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/branch.html new file mode 100644 index 0000000000..7c00d5c9a9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/branch.html @@ -0,0 +1,4 @@ +Branch + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/chevron.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/chevron.html new file mode 100644 index 0000000000..271940032f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/chevron.html @@ -0,0 +1,2 @@ +Chevron Icon + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/copy.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/copy.html new file mode 100644 index 0000000000..98ce6168db --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/copy.html @@ -0,0 +1,2 @@ +Copy icon + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/expand.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/expand.html new file mode 100644 index 0000000000..7696b9360e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/expand.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/merge.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/merge.html new file mode 100644 index 0000000000..667f1b8887 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/merge.html @@ -0,0 +1,10 @@ +Merge + + + + + + + + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/minus.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/minus.html new file mode 100644 index 0000000000..20193fc62a --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/minus.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/more.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/more.html new file mode 100644 index 0000000000..d6aee8e92b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/more.html @@ -0,0 +1,4 @@ +More + + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/settings.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/settings.html new file mode 100644 index 0000000000..1e841a5f9b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/settings.html @@ -0,0 +1,3 @@ +Settings + + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/share.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/share.html new file mode 100644 index 0000000000..2253fc58dd --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/share.html @@ -0,0 +1,2 @@ +Share + diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/success.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/success.html new file mode 100644 index 0000000000..14c1fbd926 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/success.html @@ -0,0 +1,2 @@ +Success + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon-paths/sync.html b/themes/hextra-upsun/layouts/shortcodes/icon-paths/sync.html new file mode 100644 index 0000000000..e6c85fd0e1 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon-paths/sync.html @@ -0,0 +1,2 @@ +Sync + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/icon.html b/themes/hextra-upsun/layouts/shortcodes/icon.html new file mode 100644 index 0000000000..2fd6a186be --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/icon.html @@ -0,0 +1 @@ +{{ $icon := .Get 0 }}{{ $iconFile := printf "layouts/shortcodes/icon-paths/%s.html" $icon }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/image-versions.html b/themes/hextra-upsun/layouts/shortcodes/image-versions.html new file mode 100644 index 0000000000..5d6e4536eb --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/image-versions.html @@ -0,0 +1,34 @@ +{{ $image := .Get "image" }} +{{ $status := .Get "status" }} +{{ $envParam := .Get "environment" }} + +{{ $environment := "" }} +{{ if or (eq $envParam "grid") (eq $envParam "") }} + {{ $environment = "versions" }} +{{ else if eq $envParam "dedicated-gen-2" }} + {{ $environment = "versions-dedicated-gen-2" }} +{{ else if eq $envParam "dedicated-gen-3" }} + {{ $environment = "versions-dedicated-gen-3" }} +{{ else }} + {{ errorf "Incorrect environment param: %q. Possible values are grid, dedicated-gen-2, and dedicated-gen-3. Empty defaults to \"grid\". Image: %s" $envParam $image }} +{{ end }} + +{{ if (index .Site.Data.registry $image $environment) }} + {{ if isset (index .Site.Data.registry $image $environment) $status }} + {{ if gt ( len ( index .Site.Data.registry $image $environment $status ) ) 0 }} +
          +{{ range index .Site.Data.registry $image $environment $status }} +
        • {{ . }}
        • +{{ end }} +
        + {{ else if ne $status "deprecated" }} + None available + {{ end }} + {{ end }} +{{ else }} + {{ if and (eq $envParam "dedicated") (eq $status "supported") }} + None available + {{ else }} + None available + {{ end }} +{{ end }} diff --git a/themes/hextra-upsun/layouts/shortcodes/index/cta-left.html b/themes/hextra-upsun/layouts/shortcodes/index/cta-left.html new file mode 100644 index 0000000000..9ca0328554 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/index/cta-left.html @@ -0,0 +1,8 @@ +
        +

        + {{ .Get "title" | default .Page.Title }} +

        +
        + {{ .Inner }} +
        +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/index/cta-right.html b/themes/hextra-upsun/layouts/shortcodes/index/cta-right.html new file mode 100644 index 0000000000..bab32a93cc --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/index/cta-right.html @@ -0,0 +1,8 @@ +
        +

        + {{ .Get "title" | default .Page.Title }} +

        +
        + {{ .Inner }} +
        +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/index/cta.html b/themes/hextra-upsun/layouts/shortcodes/index/cta.html new file mode 100644 index 0000000000..ab1a8b5757 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/index/cta.html @@ -0,0 +1,7 @@ +
        +
        +
        + {{ .Inner }} +
        +
        +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/index/hero.html b/themes/hextra-upsun/layouts/shortcodes/index/hero.html new file mode 100644 index 0000000000..ce72c14310 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/index/hero.html @@ -0,0 +1,36 @@ +
        + +
        +
        +
        +

        + {{ .Get "title" | default .Page.Title }} +

        +

        {{ .Get "subtitle" }}

        + +
        +
        +
        + App screenshot +
        +
        +
        +
        + +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/language-specification.md b/themes/hextra-upsun/layouts/shortcodes/language-specification.md new file mode 100644 index 0000000000..55d00c7761 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/language-specification.md @@ -0,0 +1,6 @@ + +{{ $type := .Get "type" }} +### Specify the language + +To use {{ .Get "display_name" }}, specify `{{ $type }}` as your [app's `type`](/create-apps/app-reference/single-runtime-image.html#types): + diff --git a/themes/hextra-upsun/layouts/shortcodes/latest.html b/themes/hextra-upsun/layouts/shortcodes/latest.html new file mode 100644 index 0000000000..4a9a12b215 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/latest.html @@ -0,0 +1,2 @@ +{{- $supported := index .Site.Data.registry ( .Get 0 ) "versions" "supported" -}} +{{- index ( sort $supported "value" "desc" ) 0 -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/lets_encrypt_limitations.md b/themes/hextra-upsun/layouts/shortcodes/lets_encrypt_limitations.md new file mode 100644 index 0000000000..1d7e60b3b0 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/lets_encrypt_limitations.md @@ -0,0 +1,7 @@ + +Let's Encrypt allows a maximum of 100 hostnames per certificate. +You can have 1 Let's Encrypt certificate for each of your environments. +If you define both a `{default}` and a `www.{default}` route for each domain you use, +you can add up to 50 hostnames. +Going over this limitation results in a warning on deploy and no new TLS certificates are issued. + diff --git a/themes/hextra-upsun/layouts/shortcodes/local-dev/lando-plugin-note.md b/themes/hextra-upsun/layouts/shortcodes/local-dev/lando-plugin-note.md new file mode 100644 index 0000000000..d8eb5ba97e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/local-dev/lando-plugin-note.md @@ -0,0 +1,9 @@ + +Lando used to support {{ .Site.Params.vendor.name }} PHP projects out of the box through a plugin. +However, this plugin is now deprecated. +It's still available, but it's no longer receiving updates and isn't guaranteed to work. + +For a seamless experience, switch to [DDEV](./ddev.md), which is the recommended tool for local development with {{ .Site.Params.vendor.name }}. +The integration with DDEV is maintained by {{ .Site.Params.vendor.name }} to ensure it works smoothly. +Note that a {{ .Site.Params.vendor.name }} migration guide from Lando to DDEV will be released soon. + diff --git a/themes/hextra-upsun/layouts/shortcodes/multi-app-intro.md b/themes/hextra-upsun/layouts/shortcodes/multi-app-intro.md new file mode 100644 index 0000000000..f5c500f6a5 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/multi-app-intro.md @@ -0,0 +1,5 @@ + +You can create multiple apps within a single project so they can share data. +This can be useful if you have several apps that are closely related, +such as a backend-only CMS and a frontend system for content delivery and display. + diff --git a/themes/hextra-upsun/layouts/shortcodes/names/dedicated-environments.html b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-environments.html new file mode 100644 index 0000000000..a68a6246eb --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-environments.html @@ -0,0 +1 @@ +Dedicated Environments \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-2.html b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-2.html new file mode 100644 index 0000000000..cfd0e0e7d1 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-2.html @@ -0,0 +1 @@ +Dedicated Gen 2 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-3.html b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-3.html new file mode 100644 index 0000000000..8597a6e474 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/names/dedicated-gen-3.html @@ -0,0 +1 @@ +Dedicated Gen 3 \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/note.md b/themes/hextra-upsun/layouts/shortcodes/note.md new file mode 100644 index 0000000000..9b0bbe5749 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/note.md @@ -0,0 +1,13 @@ + +{{ $title := .Get "title" | .Page.RenderString -}} +{{- $theme := .Get "theme" -}} +{{- $version := .Get "version" -}} +{{- $inner := .Inner -}} +{{- if $version -}} + {{- if eq ( string .Site.Params.vendor.config.version ) $version -}} + {{- partial "note" (dict "context" . "title" $title "theme" $theme "Inner" $inner) -}} + {{- end -}} +{{- else -}} + {{- partial "note" (dict "context" . "title" $title "theme" $theme "Inner" $inner) -}} +{{- end -}} + diff --git a/themes/hextra-upsun/layouts/shortcodes/onboarding-table.html b/themes/hextra-upsun/layouts/shortcodes/onboarding-table.html new file mode 100644 index 0000000000..44fcae6bee --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/onboarding-table.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        PhaseMeetingsDescription
        Setup +
          +
        • Introduction
        • +
        • Hand-off
        • +
            +
        +

        The Solutions Engineer briefly reviews the development workflow that was discussed during the sales process. A + dedicated Slack channel for your team’s onboarding process will be set up and members of your team invited. This + will allow for a quicker feedback loop during the onboarding process.

        +

        The Solutions Engineer will introduce you to the Platform Dedicated workflow process, provision resources, and + hand them off to the client.

        +
        Development +
          +
        • Developer Workflow Consultation
        • +
            +
        +

        The customer has access to all the resources necessary to develop, migrate, and test the project on the + {{ .Site.Params.vendor.name }} infrastructure - development, staging, and production. If necessary, developers may request an + additional training session (held by the Solutions Engineer) to discuss the development workflow and best + practices in detail.

        +

        Once the application is live on your staging environment, a staging CDN distribution will be created so that + proper configuration of your CDN can begin.

        +
        Go-Live +
          +
        • Pre-launch
        • +
        • Debrief
        • +
            +
        +

        Customer notifies their Solutions Engineer through a [support ticket](/learn/overview/get-support) of the intention to go live. The Solutions + Engineer may also reach out to the customer a few days before the approximate cut-over date if one was provided. + The Solutions Engineer reviews the infrastructure, notes any risks, and discusses the go live process.

        +

        The production configuration of your CDN will be created with the configuration mirroring that of your staging + distribution, and will be configured to pull from your production environment.

        +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/partial.html b/themes/hextra-upsun/layouts/shortcodes/partial.html new file mode 100644 index 0000000000..b56ae30cde --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/partial.html @@ -0,0 +1 @@ +{{ partial (.Get 0) . }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/php-extensions/dedicated.html b/themes/hextra-upsun/layouts/shortcodes/php-extensions/dedicated.html new file mode 100644 index 0000000000..df2220531d --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/php-extensions/dedicated.html @@ -0,0 +1,45 @@ +{{ $data := index $.Site.Data.php_extensions "dedicated" }} + + +{{ $allExtensions := dict }} +{{ range $version,$extensions := $data }} + {{ range $extensions }} + {{ $newVersions := slice }} + + {{ with index $allExtensions . }} + {{ $newVersions = . | append $version }} + + {{ else }} + {{ $newVersions = slice $version }} + {{ end }} + {{ $allExtensions = merge $allExtensions ( dict . $newVersions ) }} + {{ end }} +{{ end }} + + + + + + {{ range $version,$extensions := $data }} + + {{ end }} + + + + + {{ range $extension,$versions := $allExtensions }} + + + + {{ range $version,$extensions := $data }} + + {{ end }} + + {{ end }} + +
        Extension{{ $version }}
        {{ $extension }} + + {{ with in $versions $version }} + ✅ + {{ end }} +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/php-extensions/grid.html b/themes/hextra-upsun/layouts/shortcodes/php-extensions/grid.html new file mode 100644 index 0000000000..a9293b2e5b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/php-extensions/grid.html @@ -0,0 +1,27 @@ +{{ $data := index $.Site.Data.php_extensions "grid" }} +{{ with partial "php-extensions/sort-grid" ( dict "data" $data ) }} + {{ $allExtensions := . }} + + + + + + {{ range $version,$support_type := $data }} + + {{ end }} + + + + + {{ $.Scratch.Set "lower_names" (slice) }} + {{ range $extension,$versions := $allExtensions }} + {{ $.Scratch.Add "lower_names" (lower $extension) }} + {{ end }} + {{ range sort ($.Scratch.Get "lower_names") }} + {{ $lower_ext := . }} + + {{ partial "php-extensions/grid-row" ( dict "data" $data "allExtensions" $allExtensions "row_extension" $lower_ext "extension_name" true ) }} + {{ end }} + +
        Extension{{ $version }}
        +{{ end }} diff --git a/themes/hextra-upsun/layouts/shortcodes/php-extensions/single.html b/themes/hextra-upsun/layouts/shortcodes/php-extensions/single.html new file mode 100644 index 0000000000..f880b9f6d5 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/php-extensions/single.html @@ -0,0 +1,18 @@ +{{ $extension := .Get "extension" }} +{{ $data := index $.Site.Data.php_extensions "grid" }} +{{ with partial "php-extensions/sort-grid" ( dict "data" $data ) }} + {{ $allExtensions := . }} + + + + + {{ range $version,$support_type := $data }} + + {{ end }} + + + + {{ partial "php-extensions/grid-row" ( dict "data" $data "allExtensions" $allExtensions "row_extension" $extension ) }} + +
        {{ $version }}
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/pipenv.md b/themes/hextra-upsun/layouts/shortcodes/pipenv.md new file mode 100644 index 0000000000..7e6ccedaeb --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/pipenv.md @@ -0,0 +1,14 @@ + +For example, to use `pipenv` to manage requirements and a virtual environment, add the following: + +```yaml {configFile="app"} +dependencies: + python3: + pipenv: "2022.12.19" + +hooks: + build: | + set -eu + pipenv install --system --deploy +``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/premium-features/add-on.html b/themes/hextra-upsun/layouts/shortcodes/premium-features/add-on.html new file mode 100644 index 0000000000..3b23f48e94 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/premium-features/add-on.html @@ -0,0 +1,6 @@ +{{ $feature := .Get "feature" }} +{{ $content := print $feature ` isn't included in any ` .Site.Params.vendor.name ` plan. +You need to add it separately at an additional cost. +To add ` $feature `, [contact Sales](https://platform.sh/contact/).`}} + +{{ partial "note" ( dict "context" . "Inner" $content "title" "Premium Service" "theme" "info" )}} diff --git a/themes/hextra-upsun/layouts/shortcodes/premium-features/tiered.html b/themes/hextra-upsun/layouts/shortcodes/premium-features/tiered.html new file mode 100644 index 0000000000..b7ed78d8cc --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/premium-features/tiered.html @@ -0,0 +1,4 @@ + +{{ if eq (string .Site.Params.vendor.config.version) "1" }} +{{ partial "tiered-features/body.html" (dict "tiers" .Params ) }} +{{ end}} diff --git a/themes/hextra-upsun/layouts/shortcodes/project-isolation.md b/themes/hextra-upsun/layouts/shortcodes/project-isolation.md new file mode 100644 index 0000000000..95fd6fe66f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/project-isolation.md @@ -0,0 +1,28 @@ + +## Project isolation + +All Dedicated clusters are single-tenant. +The [three hosts](./_index.md) are exclusively used by a single customer +and each cluster is launched into its own isolated network (VPC on AWS, equivalent on other providers). + +{{ $plan := .Get "plan" }} +{{ if eq $plan "true" }} +The network is behind a firewall for incoming connections. +Only ports 22 (SSH), 80 (HTTP), and 443 (HTTPS) are opened to incoming traffic. +{{ else }} +The network is behind a firewall for incoming connections. +Only ports 22 (SSH), 80 (HTTP), and 443 (HTTPS), and 2221 (SFTP) are opened to incoming traffic. +{{ end }} + +**There are no exceptions** for this rule, so any incoming web service requests, +ETL jobs, or otherwise need to transact over one of these protocols. + +Outgoing TCP traffic isn't behind a firewall. +Outgoing UDP traffic is disallowed. + +For containers to be allowed to connect to each other, the following requirement must be met: + +- The containers must live in the same environment. +- You need to define an explicit `relationship` between the containers + in your [app configuration](/create-apps/app-reference/single-runtime-image.md#relationships). + diff --git a/themes/hextra-upsun/layouts/shortcodes/python-sockets.md b/themes/hextra-upsun/layouts/shortcodes/python-sockets.md new file mode 100644 index 0000000000..05028e6943 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/python-sockets.md @@ -0,0 +1,11 @@ + +{{ $server := .Get "server" }} +To deploy with {{ $server }} on {{ .Site.Params.vendor.name }} , +use one of the following examples to update your [app configuration](../../create-apps/_index.md). + +The examples vary based on both your package manager (Pip, Pipenv, or Poetry) +and whether your app listens on a TCP (default) or Unix (for running behind a proxy server) socket. +For more information on upstream sockets and protocols, see the [application reference](/create-apps/app-reference/single-runtime-image.md#upstream). + +The snippets below assume that {{ $server }} has been added as a dependency to your `requirements.txt`, `Pipfile.lock`, or `poetry.lock`. + diff --git a/themes/hextra-upsun/layouts/shortcodes/readFile.html b/themes/hextra-upsun/layouts/shortcodes/readFile.html new file mode 100644 index 0000000000..4345517200 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/readFile.html @@ -0,0 +1,44 @@ +{{ $markdown := "false" }} +{{ $configFiles := .Site.Params.vendor.config.files }} +{{ with .Get "markdownify" }} + {{ $markdown = . }} +{{ end }} +{{ $highlight := "false"}} +{{ with .Get "highlight"}} + {{ $highlight = . }} +{{ end }} +{{ $location := "false" }} +{{ with .Get "location" }} + {{ $location = . }} +{{ end }} +{{ with .Get "configFile" }} + {{ $location = index $configFiles . }} +{{ end }} + +{{ $contentLength := 0 }} +{{ with .Get "file" }} + {{ $contentLength = len ( readFile . ) }} +{{ end }} + +{{- if ne ( len ( getenv "GITHUB_API_TOKEN" ) ) 0 }} + {{- if ne $contentLength 0 }} + + {{ if eq $markdown "true" }} + {{ with .Get "file" }}{{ markdownify ( readFile . ) }}{{end}} + {{ else if ne $highlight "false" }} + {{ if ne $location "false" }} +
        {{ $location }}
        + {{ end }} + {{ with .Get "file" }}{{ highlight ( readFile . ) $highlight ""}}{{end}} + {{ else }} + {{ with .Get "file" }}{{ safeHTML ( readFile . ) }}{{end}} + {{ end }} + + {{- else -}} + {{ errorf "File %s not found" ( .Get "file" ) }} + {{- end -}} +{{- else -}} + {{ with .Get "file" }} + {{ partial "file-not-found" . }} + {{ end }} +{{- end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/regions.html b/themes/hextra-upsun/layouts/shortcodes/regions.html new file mode 100644 index 0000000000..134290c8a7 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/regions.html @@ -0,0 +1,61 @@ + +{{ $region := .Get "region" }} +{{ $data := index $.Site.Data.regions $region }} + + + + + + + + + + + + + {{ range sort ( sort $data "label" "asc" ) "available" "desc" }} + + + + + + + + + + + + + {{ end }} + +
        + Region + + {{ $regionAnchor := anchorize ( printf "%s %s" .name .label ) }} +

        + {{ .name }} +

        + {{ printf "%s" .label}}.platform.sh +
        + Provider + {{ .provider }} + + Available to new orgs + {{ if .available }}✅{{ end }} + + Outbound ips +
          + {{ range .outbound_ips }} +
        • {{ . }}
        • + {{ end }} +
        +
        + Inbound ips + {{ printf "%s.%s" .inbound_location $.Site.Params.vendor.urls.hostname }} + +
          + {{ range .inbound_ips }} +
        • {{ . }}
        • + {{ end }} +
        +
        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/relationship.html b/themes/hextra-upsun/layouts/shortcodes/relationship.html new file mode 100644 index 0000000000..6aa3575a9e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/relationship.html @@ -0,0 +1,12 @@ +{{- $file := printf "/static/files/fetch/examples/relationships/%s" ( .Get 0 ) -}} +{{- $contentLength := len ( readFile $file ) -}} +{{- if ne ( len ( getenv "GITHUB_API_TOKEN" ) ) 0 }} + {{- if ne $contentLength 0 }} + {{- $content := readFile ( printf "/static/files/fetch/examples/relationships/%s" ( .Get 0 ) ) -}} + {{- highlight $content "json" "" -}} + {{- else -}} + {{ errorf "File /static/files/fetch/examples/relationships/%s not found" ( .Get 0 ) }} + {{- end -}} +{{- else -}} + {{ partial "file-not-found" $file }} +{{- end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/repolist.html b/themes/hextra-upsun/layouts/shortcodes/repolist.html new file mode 100644 index 0000000000..2f6e537fc3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/repolist.html @@ -0,0 +1,71 @@ +{{ $lang := .Get "lang" }} +{{ if eq .Site.Params.vendor.config.version 1 }} + +{{ if not ( .Get "noIntro" ) }} +

        The following list shows templates available for {{ .Get "displayName" }} apps. + {{ markdownify (readFile "/layouts/shortcodes/template-intro.md") }}

        +{{ end }} + +{{ if isset .Site.Data.templates $lang }} + + {{ $templates := index .Site.Data.templates $lang }} + +
        + + {{ range sort $templates "name" }} + +
        + + +
        + {{ .name }} +

        {{ .name }}

        + {{ .description | safeHTML }} + + {{ $content:= split .content "
        " }} + +

        Features:

        +
          + {{ range $content}} + {{ $content2 := split . "
          " }} + {{ range $content2}} + {{ if gt ( len . ) 1 }} +
        • {{ . }}
        • + {{ end}} + {{ end }} + {{ end }} +
        +

        View the repository on GitHub.

        +
        + + Deploy on {{ .Site.Params.vendor.name }} + +
        +
        +
        + + {{ end }} +
        + +
        + + {{ else }} + + Templates in development. + +{{ end }} + +{{ end }} diff --git a/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/intro.md b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/intro.md new file mode 100644 index 0000000000..ae27ea93f0 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/intro.md @@ -0,0 +1,12 @@ + +{{ $db := .Get "database" }} +{{ $framework := .Get "framework" }} +Databases of live websites often contain personally identifiable information (PII) +such as full names, mailing addresses, and phone numbers. +To ensure people reviewing code changes can't access information they shouldn't, +sanitize your databases of any PII that they may contain. + +{{ if $db }} +This example goes through the process for a {{ $db }} database using {{ $framework }}. +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/requirements.md b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/requirements.md new file mode 100644 index 0000000000..e8fdfdb5a9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/requirements.md @@ -0,0 +1,34 @@ + +{{ $db := .Get "database" }} +{{ $framework := .Get "framework" }} +{{ $pageLink := printf "%s.md" ( $db | lower ) }} +{{ if eq $db "MySQL" }} + {{ $pageLink = "mysql/_index.md" }} +{{ end }} +{{ $cli := "pqsl" }} +{{ if eq $framework "Drupal" }} + {{ $cli = "[Drush](https://www.drush.org/latest/install/)" }} +{{ end }} +{{ $cliLink := "[Platform CLI](../../administration/cli/_index.md)" }} +{{ if eq $.Site.Params.vendor.config.version 2 }} + {{ $cliLink = "[Upsun CLI](../../administration/cli/_index.md)" }} +{{ end }} +{{ if eq $framework "Symfony" }} + {{ $cliLink = "[Symfony CLI](https://symfony.com/download)" }} +{{ end }} +## Before you begin + +You need: + +- A project with a [{{ $db }} database](../../add-services/{{ $pageLink }}). +- A command interface installed: + - If doing it manually, the {{ $cliLink }}. + - Otherwise, make sure {{ $cli }} is installed in your environment. + +This guide is about sanitizing {{ $db }} databases. + +This guide doesn't address: + +- Sanitizing NoSQL Databases (such as [MongoDB](../../add-services/mongodb.md)) +- Input validation and input sanitization, which both help prevent security vulnerabilities + diff --git a/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-intro.md b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-intro.md new file mode 100644 index 0000000000..650b919b75 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-intro.md @@ -0,0 +1,21 @@ + +{{ $db := .Get "database" }} +{{ $pageLink := printf "%s.md" ( $db | lower ) }} +{{ if eq $db "MySQL" }} + {{ $pageLink = "mysql/_index.md" }} +{{ end }} +{{ $cliCommand := `{{< vendor/cli >}}` | .Page.RenderString }} +{{ if eq ( .Get "framework" ) "Symfony" }} + {{ $cliCommand = "symfony" }} +{{ end }} +## Sanitize the database + +Make sure that you only sanitize preview environments and **never** the production environment. +Otherwise you may lose most or even all of the relevant data stored in your database. + +First, take a [database dump](../../add-services/{{ $pageLink }}#exporting-data) of your preview environment. +This is just a safety precaution. +Production data isn't altered. +To get a database dump, run the following command: +{{ $cliCommand }} db:dump -e {{ `{{< variable "DEVELOPMENT_ENVIRONMENT_NAME" >}}` | .Page.RenderString }}. + diff --git a/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-manually.md b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-manually.md new file mode 100644 index 0000000000..197c9c5bda --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/sanitize-manually.md @@ -0,0 +1,95 @@ + +{{ $query := "MariaDB [main]> SELECT * FROM users;" }} +{{ $result := `+----+------------+---------------+---------------------------+---------------+ + | ID | first_name | last_name | user_email | display_name | + +----+------------+---------------+---------------------------+---------------+ + | 1 | admin | admin | admin@yourcompany.com | admin | + | 2 | john | doe | john.doe@gmail.com | john | + | 3 | jane | doe | janedoe@ymail.com | jane | + +----+------------+---------------+---------------------------+---------------+` }} +{{ if eq (.Get "database") "PostgreSQL" }} + {{ $query = "main=> SELECT * FROM users;" }} + {{ $result = `id | user_email | display_name + -----+-----------------------------------------+----------------------- + 3501 | daniel02@yourcompany.com | Jason Brown + 3502 | ismith@kim.com | Sandra Griffin + 3503 | olee@coleman-rodriguez.com | Miss Christine Morgan`}} +{{ end }} +Assumptions: + +- `users` is the table where all of your PII is stored in the `staging` development database. +- `staging` is an exact copy of your production database. + +1. Connect to the `staging` database by running `{{ if eq ( .Get "framework") "Symfony" }}symfony{{ else }}{{ `{{< vendor/cli >}}` | .Page.RenderString }}{{ end }} sql -e staging`. + +2. Display all fields from your `users` table, to select which ones need to be redacted. + Run the following query: + + ```sql + {{ $query }} + ``` + + You see output like the following: + + ```sql + {{ $result }} + ``` + +3. Change the fields where PII is contained with the [`UPDATE` statement](https://mariadb.com/kb/en/update/). + For example, to change the display name of users with an email address not in your company's domain + to a random value, run the following query: + + ```sql + UPDATE users + SET display_name==substring(md5(display_name||'$PLATFORM_PROJECT_ENTROPY') for 8); + WHERE email NOT LIKE '%@yourcompany%' + ``` + + Adapt and run that query for all fields that you need to sanitize. + If you modify fields that you shouldn't alter, + [you can restore them](../../environments/restore.md) from the dump you took in step 1. + + You can create a script to automate the sanitization process to be run automatically on each new deployment. + Once you have a working script, add your script to sanitize the database to [a `deploy` hook](../../create-apps/hooks/hooks-comparison.md#deploy-hook): + +{{ if eq .Page.Site.Params.vendor.config.version 1 }} + + ```yaml {configFile="app"} + hooks: + deploy: | + + # ... + + cd /app/public + if [ "$PLATFORM_ENVIRONMENT_TYPE" = production ]; then + # Do whatever you want on the production site. + else + # The sanitization of the database should happen here (since it's non-production) + sanitize_the_database.sh + fi + ``` + +{{ else }} + + ```yaml {configFile="app"} + applications: + myapp: + + # ... + + hooks: + deploy: | + + # ... + + cd /app/public + if [ "$PLATFORM_ENVIRONMENT_TYPE" = production ]; then + # Do whatever you want on the production site. + else + # The sanitization of the database should happen here (since it's non-production) + sanitize_the_database.sh + fi + ``` + +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/whats-next.md b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/whats-next.md new file mode 100644 index 0000000000..4bee6808dd --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/sanitize-dbs/whats-next.md @@ -0,0 +1,10 @@ + +You learned how to remove sensitive data from a database. + +To replace sensitive data that with other meaningful data, you can add a `faker` to the process. +A `faker` is a program that generates fake data that looks real. +Having meaningful PII-free data allows you to keep your current Q&A, external reviews, and other processes. +To add a faker, adapt your sanitizing queries to replace each value that contains PII with a new value generated by the faker. + +You might also want to make sure that you [implement input validation](https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html#goals-of-input-validation). + diff --git a/themes/hextra-upsun/layouts/shortcodes/snippet.html b/themes/hextra-upsun/layouts/shortcodes/snippet.html new file mode 100644 index 0000000000..532a15cd9a --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/snippet.html @@ -0,0 +1 @@ +{{ partial "snippet" (dict "context" . "Inner" .Inner ) }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/enable-integration.html b/themes/hextra-upsun/layouts/shortcodes/source-integration/enable-integration.html new file mode 100644 index 0000000000..5ea9c13c7d --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/enable-integration.html @@ -0,0 +1,194 @@ + +{{ $source := .Get "source" }} +{{ $source_variable := replace $source " " "_" | lower }} +{{ $token_variable := print $source_variable "_ACCESS_TOKEN" | upper }} +{{ $base_url_variable := print $source_variable "_URL" | upper }} + + +{{ $pull := "pull" }} +{{ if eq $source "GitLab" }}{{ $pull = "merge" }}{{ end }} + +

        To enable the integration, use either the CLI or the Console.

        + + +{{ $tokenConsoleInstructions := "" }} +{{ if or ( eq $source "GitHub" ) ( eq $source "GitLab" ) }} + {{ $tokenConsoleInstructions = print ` +1. Add the [token you generated](#1-generate-a-token). +1. Optional: If your ` $source ` project isn't hosted at ` ( $source | lower ) `.com, enter your ` $source ` custom domain. +1. Click **Continue**. +1. Choose the repository to use for the project.` }} + +{{ else if ( eq $source "Bitbucket" )}} +{{ $tokenConsoleInstructions = ` +1. Complete the form with: + - The repository in the form owner/repository + - The [key and secret you generated](#1-create-an-oauth-consumer)` }} +{{ else if ( eq $source "Bitbucket server" )}} + {{ $tokenConsoleInstructions = ` +1. Complete the form with: + - Your server URL + - Your Bitbucket username + - The [token you generated](#1-generate-a-token) + - The Bitbucket server project name + - The repository in the form owner/repository` }} +{{ end }} + + +{{ $baseUrlExpanation := "" }} +{{ $baseUrlServer := "GitLab" }} +{{ $baseUrlSource := "https://gitlab.com" }} +{{ $baseUrlExample := "" }} +{{ $baseUrlVariable := print `--base-url {{< variable ` $base_url_variable ` >}} ` }} +{{ $exampleUrl := "example.com" }} +{{ if eq $source "GitHub" }} + {{ $baseUrlServer = "GitHub Enterprise" }} + {{ $baseUrlSource = "https://github.com" }} + {{ $exampleUrl = "github.com" }} +{{ end }} +{{ if eq $source "GitLab" }} + {{ $baseUrlExample = "--base-url https://example.com " }} +{{ end }} +{{ if or ( eq $source "GitHub" ) ( eq $source "GitLab" ) }} +{{ $baseUrlExpanation = print `- ` $base_url_variable ` is the base URL for your ` $baseUrlServer ` server if you self-host. + If you use the public ` $baseUrlSource `, omit the --base-url flag when running the command.` }} +{{ else if ( eq $source "Bitbucket server" )}} + {{ $baseUrlExpanation = print `- ` $base_url_variable ` is the base URL for your Bitbucket server.` }} + {{ $baseUrlExample = "--base-url https://example.com " }} +{{ else if ( eq $source "Bitbucket" ) }} + {{ $baseUrlVariable = "" }} + {{ $exampleUrl = "bitbucket.org" }} +{{ end }} + + +{{ $repoVariable := print `--repository {{< variable "OWNER/REPOSITORY" >}} ` }} +{{ if eq $source "GitLab" }} + {{ $repoVariable := print `--server-project {{< variable "OWNER/REPOSITORY" >}} ` }} +{{ end }} + + +{{ $accessFlagsVariable := print `--token {{< variable ` $token_variable ` >}}` }} +{{ $accessFlagsExplanation := print `- ` $token_variable ` is the [token you generated](#1-generate-a-token).` }} +{{ $accessFlagsExample := "--token abc123" }} +{{ if ( eq $source "Bitbucket server" ) }} + {{ $accessFlagsVariable = print `--username {{< variable BITBUCKET_USERNAME >}} \` "\n " $accessFlagsVariable }} + {{ $accessFlagsExample = print `--username user@example.com \` "\n " $accessFlagsExample}} +{{ end }} +{{ if ( eq $source "Bitbucket" ) }} + {{ $accessFlagsVariable = print `--key {{< variable CONSUMER_KEY >}} \` "\n " "--secret {{< variable CONSUMER_SECRET >}}" }} + {{ $accessFlagsExplanation = `- CONSUMER_KEY is the key of the [OAuth consumer you created](#1-create-an-oauth-consumer). +- CONSUMER_SECRET is the secret of the [OAuth consumer you created](#1-create-an-oauth-consumer).` }} + {{ $accessFlagsExample = print `--key abcd1234 \` "\n " "--secret abcd1234" }} +{{ end }} + + +{{ $CLIa := print ` ++++ +title=Using the CLI ++++ + +Run the following command: + +
        {{< vendor/cli >}} integration:add \
        +  --project {{< variable "PROJECT_ID" >}} \
        +  --type ` $source_variable ` \
        +  ` $repoVariable `\
        +  ` $accessFlagsVariable ` `}}
        +
        +{{ $CLIb := print `
        +
        +`}} + +{{ if gt ( len $baseUrlVariable ) 0 }} + {{ $CLIb = print `\ + ` $baseUrlVariable ` + `}} +{{ end }} + +{{ $CLIc := print ` +- PROJECT_ID is the ID of your ` .Site.Params.vendor.name ` project. +- OWNER/REPOSITORY is the name of the repository in ` $source `. +` $accessFlagsExplanation ` +` $baseUrlExpanation ` + +For example, if your repository is located at https://` $exampleUrl `/{{< vendor/alt-name >}}/{{< vendor/alt-name >}}-docs, +the command is similar to the following: + +
        {{< vendor/cli >}} integration:add \
        +  --project abcdefgh1234567 \
        +  --type ` $source_variable ` \
        +  --repository {{< vendor/alt-name >}}/{{< vendor/alt-name >}}-docs \
        +  ` $accessFlagsExample ` ` }}
        +
        +{{ $CLId := print `
        +
        +`}} + +{{ if gt ( len $baseUrlExample ) 0 }} + {{ $CLId := print `\ + ` $baseUrlExample ` + `}} +{{ end }} + +{{ $ConsoleInner:= print `<---> ++++ +title=In the Console ++++ + +1. Select the project where you want to enable the integration. +1. Click {{< icon settings >}} **Settings**. +1. Under **Project settings**, click **Integrations**. +1. Click **+ Add integration**. +1. Under **` $source `**, click **+ Add**. +` $tokenConsoleInstructions ` +1. Check that the other options match what you want. +1. Click **Add integration**. + +` }} + +{{ $Inner := printf `%s%s%s%s%s` $CLIa $CLIb $CLIc $CLId $ConsoleInner }} + +{{ partial "codetabs/tabs" ( dict "Inner" $Inner "Page" .Page ) }} + +

        In both the CLI and Console, you can choose from the following options:

        + + +{{ $draftOption := "" }} +{{ if or ( eq $source "GitHub" ) ( eq $source "GitLab") }} + {{ $draftOption = print ` + | build-draft-` $pull `-requests | true | Whether to also track and build draft ` $pull ` requests. Automatically disabled when ` $pull ` requests aren't built. |` }} +{{ end }} +{{ if eq $source "GitLab" }} + {{ $draftOption = replace $draftOption "-draft-" "-wip-" }} +{{ end }} + + +{{ $cloneOption := "" }} +{{ if ne $source "Bitbucket" }} + {{ $cloneOption = print `| ` $pull `-requests-clone-parent-data | true | Whether to clone data from the parent environment when creating a ` $pull ` request environment. |` }} +{{ end }} + + +{{ $extraOption := "" }} +{{ if eq $source "GitHub" }} + {{ $extraOption = ` +| build-pull-requests-post-merge | false | Whether to build what would be the result of merging each pull request. Turning it on forces rebuilds any time something is merged to the target branch. |` }} +{{ else if eq $source "Bitbucket" }} + {{ $extraOption = `| resync-pull-requests | false | Whether to sync data from the parent environment on every push to a pull request. |` }} +{{ end }} + + +{{ $OptionsTable := print ` +| CLI flag | Default | Description | +| -------- | ------- | ----------- | +| fetch-branches | true | Whether to mirror and update branches on ` .Site.Params.vendor.name ` and create inactive environments from them. | +| prune-branches | true | Whether to delete branches from ` .Site.Params.vendor.name ` that don't exist in the ` $source ` repository. Automatically disabled when fetching branches is disabled. | +| build-` $pull `-requests | true | Whether to track all ` $pull ` requests and create active environments from them, which builds the ` $pull ` request. | ` $draftOption ` +` $cloneOption $extraOption }} +{{ $OptionsTable | markdownify }} + +

        To keep your repository clean and avoid performance issues, + make sure you enable both the fetch-branches and prune-branches options.

        \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/environment-status.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/environment-status.md new file mode 100644 index 0000000000..9b7c7b592d --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/environment-status.md @@ -0,0 +1,16 @@ + +{{ $source := .Get "source" }} +{{ $pull := "pull"}} +{{ if eq $source "GitLab" }} + {{ $pull = "merge" }} +{{ end }} +## Environment parent and status + +When a **branch** is created in {{ $source }}, +an environment is created in {{ .Site.Params.vendor.name }} with the default branch as its parent. +It starts as an [inactive environment](/glossary.html#inactive-environment) with no data or services. + +When a **{{ $pull }} request** is opened in {{ $source }}, +an environment is created in {{ .Site.Params.vendor.name }} with the {{ $pull }} request's target branch as its parent. +It starts as an [active environment](/glossary.html#active-environment) with a copy of its parent's data. + diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/intro.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/intro.md new file mode 100644 index 0000000000..1a16a65079 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/intro.md @@ -0,0 +1,21 @@ + +{{ $source := .Get "source" }} +{{ $pull := "pull"}} +{{ if eq $source "GitLab" }} + {{ $pull = "merge" }} +{{ end }} +If you have code in a {{ $source }} repository, you might want to connect it to a {{ .Site.Params.vendor.name }} project. +This means you can keep your {{ $source }} workflows +and treat the {{ $source }} repository as the source of truth for your code. + +Your {{ .Site.Params.vendor.name }} project becomes a mirror of your {{ $source }} repository. +This means you shouldn't push code directly to {{ .Site.Params.vendor.name }}. +Any changes you push directly get overwritten by the integration when changes happen in the {{ $source }} repository. + +When you set up an integration with {{ $source }}, +it automates the following processes for you: + +- Creating a new environment when a branch is created or a {{ $pull }} request is opened. +- Rebuilding the environment when new code is pushed to {{ $source }}. +- Deleting the environment when a {{ $pull }} request is merged. + diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/requirements.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/requirements.md new file mode 100644 index 0000000000..8ba7d48848 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/requirements.md @@ -0,0 +1,11 @@ + +{{ $source := .Get "source" }} +{{ if eq $source "Bitbucket" }} + {{ $source = "Bitbucket Cloud or Bitbucket Server" }} +{{ end }} +## Before you begin + +To manage source integrations, you need to be a [project admin](../../administration/users.md). + +You also need a {{ $source }} repository with working code. + diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/source-of-truth.html b/themes/hextra-upsun/layouts/shortcodes/source-integration/source-of-truth.html new file mode 100644 index 0000000000..fd0df2bf02 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/source-of-truth.html @@ -0,0 +1,29 @@ +{{ $source := .Get "source" }} +

        When you add an integration, your {{ $source }} repository is considered to be the source of truth for the project. +Your {{ .Site.Params.vendor.name }} project is only a mirror of that repository and you can only push commits to {{ $source }}. + +

        To clone your code, follow these steps:

        + +{{ $Inner := ` ++++ +title=Using the CLI ++++ + +Run the following command: + +
        {{< vendor/cli >}} get {{< variable PROJECT_ID >}}
        + +<---> ++++ +title=Using Git ++++ + +1. In the Console, open the project you want to clone. +2. Click **Code**. +3. Click **Git**. +4. Run the command you find using Git. +`}} +{{ partial "codetabs/tabs" ( dict "Inner" $Inner "Page" .Page ) }} + +

        When you do this, you're cloning from your integrated {{ $source }} repository, +if you have the appropriate access to do so.

        diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/sync-fetch-prune.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/sync-fetch-prune.md new file mode 100644 index 0000000000..a41e332ec4 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/sync-fetch-prune.md @@ -0,0 +1,18 @@ +{{ $type := .Get "service" }} + +An integration from {{ $type }} to {{ .Site.Params.vendor.name }} establishes that: + +- {{ $type }} is the source of truth, where Git operations occur +- {{ .Site.Params.vendor.name }} is a mirror of that repository - provisioning infrastructure according to configuration, and orchestrating environments according to the branch structure of the {{ $type }} repository + +Actions that take place on {{ .Site.Params.vendor.name }} don't affect commits on {{ $type }}. +Because of this, the {{ $type }} integration enables both `fetch-branches` (track branches on {{ $type }}) and `prune-branches` (delete branches that don't exist on {{ $type }}) by default. +You can change these settings but it is recommend to keep them. + +When enabled by default, you are limited by design as to what actions can be performed within the context of a {{ .Site.Params.vendor.name }} project with a {{ $type }} integration: + +| Action | Observation | Recommendation | +| :---------------- | :---------------- | :------- | +| Branch from parent | Running [`environment:branch`](/administration/cli/reference#environmentbranch) with the CLI, or selecting **Branch** in Console produces a new child environment, but it's deleted shortly after automatically. | Contribute to the {{ $type }} repository itself by creating a branch and pull request. When the PR has been opened, a new environment will be provisioned for it. | +| Merge in parent | Running [`environment:merge`](/administration/cli/reference#environmentmerge) with the CLI fails locally, and the **Merge** option in Console is not clickable. | Review and merge pull requests and/or branches on the {{ $type }} repository. | +| Merge into child (sync code) | Running [`environment:synchronize`](/administration/cli/reference#environmentsynchronize) with the CLI fails locally, and the **Sync** option in Console won't allow me to include `code` in that sync. | Perform the merge locally from a matching branch on {{ $type }}. For example, clone the most recent parent (`git pull origin parent-branch`), switch to the pull request branch (`git checkout ga-staging`), and then merge the parent into the current branch (`git merge main`). | \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/url.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/url.md new file mode 100644 index 0000000000..31e83d0718 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/url.md @@ -0,0 +1,14 @@ + +{{ $source := .Get "source" }} +{{ $pull := "pull"}} +{{ if eq $source "GitLab" }} + {{ $pull = "merge" }} +{{ end }} +## {{ $pull | title }} request URLs + +When a {{ $pull }} request is deployed, the integration reports the primary URL for the deployed environment. +So you get a link to the deployed environment right in the {{ $pull }} request. + +If you have multiple routes, +ensure the correct one is reported by [specifying the primary route](/define-routes.html#route-configuration-reference). + diff --git a/themes/hextra-upsun/layouts/shortcodes/source-integration/validate.md b/themes/hextra-upsun/layouts/shortcodes/source-integration/validate.md new file mode 100644 index 0000000000..d8db2139ba --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/source-integration/validate.md @@ -0,0 +1,39 @@ + +{{ $source := .Get "source" }} + +##{{ if eq $source "Bitbucket" }}#{{ end }} 3. Validate the integration + +Verify that your integration is functioning properly [using the CLI](../overview.md#validate-integrations): + +```bash +{{ `{{% vendor/cli %}} integration:validate` | .Page.RenderString }} +``` + +###{{ if eq $source "Bitbucket" }}#{{ end }} Add the webhook manually + +If the integration was added with the correct permissions, the necessary webhook is added automatically. +If you see a message that the webhook wasn't added, add one manually. + +{{ $reqdPerms := "Admin" }} +{{ $permsLink := "" }} +{{ if eq $source "Bitbucket" }} + {{ $permsLink = "https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/" }} +{{ else if eq $source "GitHub" }} + {{ $permsLink = "https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization#permissions-for-each-role" }} +{{ else if eq $source "GitLab" }} + {{ $reqdPerms = "Maintainer or Owner" }} + {{ $permsLink = "https://docs.gitlab.com/ee/user/permissions.html" }} +{{ end }} + +To configure a webhook on a {{ $source }} repository, +you need to have {{ $reqdPerms }} [user permissions]({{ $permsLink }}). + +1. Get the webhook URL by running this command: `{{ `{{< vendor/cli >}}` | .Page.RenderString }} integration:get --property hook_url`. +1. Copy the returned URL. +{{ .Inner }} + +You can now start pushing code, creating new branches, +and opening {{ if eq $source "GitLab" }}merge{{ else }}pull{{ end }} requests +directly in your {{ $source }} repository. +Your {{ .Site.Params.vendor.name }} environments are automatically created and updated. + diff --git a/themes/hextra-upsun/layouts/shortcodes/spring-common-props.md b/themes/hextra-upsun/layouts/shortcodes/spring-common-props.md new file mode 100644 index 0000000000..e92ebd0538 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/spring-common-props.md @@ -0,0 +1,4 @@ + +For access to more credentials options, check [Spring common application properties](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html) +and [binding from environment variables](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#features.external-config.typesafe-configuration-properties.relaxed-binding.environment-variables). + diff --git a/themes/hextra-upsun/layouts/shortcodes/supported-services.md b/themes/hextra-upsun/layouts/shortcodes/supported-services.md new file mode 100644 index 0000000000..495f2efcce --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/supported-services.md @@ -0,0 +1,7 @@ + +{{ $registry := .Site.Data.registry }} + +| Service | `type` | Supported versions | +| ------- | ------ | ------------------ |{{ range sort $registry "type" }}{{ if eq .runtime false }} +| [{{ .name }}]({{ .docs.url }}){{ if .premium }} {{ partial "premium-features/badge" }}{{ end }} | `{{ .type }}` | {{ delimit .versions.supported ", " }} |{{ end }}{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/swoole.md b/themes/hextra-upsun/layouts/shortcodes/swoole.md new file mode 100644 index 0000000000..76e61af012 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/swoole.md @@ -0,0 +1,36 @@ + +## Install + +Install the PHP extension for Swoole or Open Swoole during the build. + +Take advantage of an [installation script](https://raw.githubusercontent.com/platformsh/snippets/main/src/install_swoole.sh). +You need to pass 2 parameters: + +* Which Swoole project to use: `openswoole` or `swoole` +* Which version to install + +{{ if eq .Page.Site.Params.vendor.config.version 1 }} + +```yaml {configFile="app"} +hooks: + build: | + set -e + ... + curl -fsS https://raw.githubusercontent.com/platformsh/snippets/main/src/install_swoole.sh | { bash /dev/fd/3 openswoole 4.11.0 ; } 3<&0 +``` + +{{ else }} + +```yaml {configFile="app"} +applications: + app: + type: 'php:' + hooks: + build: | + set -e + ... + curl -fsS https://raw.githubusercontent.com/platformsh/snippets/main/src/install_swoole.sh | { bash /dev/fd/3 openswoole 4.11.0 ; } 3<&0 +``` + +{{ end }} + diff --git a/themes/hextra-upsun/layouts/shortcodes/template-intro.md b/themes/hextra-upsun/layouts/shortcodes/template-intro.md new file mode 100644 index 0000000000..4466121ce9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/template-intro.md @@ -0,0 +1,4 @@ + +A template is a starting point for building your project. +It should help you get a project ready for production. + diff --git a/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-end.md b/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-end.md new file mode 100644 index 0000000000..2fcb514dce --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-end.md @@ -0,0 +1,7 @@ + +1. When you've finished your work, close the tunnels to your services by running the following command: + + ```bash + {{ `{{< vendor/cli >}}` | .Page.RenderString }} tunnel:close --all -y + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-start.md b/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-start.md new file mode 100644 index 0000000000..1b7b02599b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tethered-dev/steps-start.md @@ -0,0 +1,24 @@ + +1. Create a new environment based on production. + + ```bash + {{ `{{< vendor/cli >}}` | .Page.RenderString }} branch new-feature {{ `{{< variable "PRODUCTION_ENVIRONMENT_NAME" >}}` | .Page.RenderString }} + ``` + + If you're using a [source integration](/integrations/source.html), + open a merge/pull request. + +2. To open an SSH tunnel to the new environment's services, run the following command: + + ```bash + {{ `{{< vendor/cli >}}` | .Page.RenderString }} tunnel:open + ``` + + This command returns the addresses for SSH tunnels to all of your services. + +3. Export the `PLATFORMSH_RELATIONSHIPS` environment variable with information from the open tunnel: + + ```bash + export PLATFORM_RELATIONSHIPS="$({{ `{{< vendor/cli >}}` | .Page.RenderString }} tunnel:info --encode)" + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli-database.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli-database.md new file mode 100644 index 0000000000..4d922fa5a8 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli-database.md @@ -0,0 +1,28 @@ + +{{ $cliCommand := `{{< vendor/cli >}}` | .Page.RenderString }} +{{ $cliName := ".Site.Params.vendor.name CLI" }} +{{ if eq ( .Get "framework" ) "Symfony" }} + {{ $cliCommand = "symfony cloud:" }} + {{ $cliName = "Symfony CLI" }} +{{ end }} + +You might find the following commands useful when using a database with your Symfony app. + +- Create a local dump of the remote database: + + ```bash + {{ $cliCommand }} db:dump --relationship database + ``` + +- Run an SQL query on the remote database: + + ```bash + {{ $cliCommand }} sql 'SHOW TABLES' + ``` + +- Import a local SQL file into a remote database: + + ```bash + {{ $cliCommand }} sql < my_database_backup.sql + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli.md new file mode 100644 index 0000000000..90c704ee02 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/cli.md @@ -0,0 +1,28 @@ + +{{ $cliCommand := `{{< vendor/cli >}}` | .Page.RenderString }} +{{ $cliName := "{{ .Site.Params.vendor.name }} CLI" }} +{{ if eq ( .Get "framework" ) "Symfony" }} + {{ $cliCommand = "symfony cloud:" }} + {{ $cliName = "Symfony CLI" }} +{{ end }} + +You might find the following commands useful when using the {{ $cliName }}. + +- Open the web administration console: + + ```bash + {{ $cliCommand }} web + ``` + +- Open the URL of the current environment: + + ```bash + {{ $cliCommand }} url + ``` + +- Open an SSH connection to your environment: + + ```bash + {{ $cliCommand }} ssh + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/ddev.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/ddev.md new file mode 100644 index 0000000000..4d72c8845b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/ddev.md @@ -0,0 +1,35 @@ + +You may find the following commands useful when using DDEV. + +- List all available DDEV commands: + + ```bash + ddev + ``` + +- Open DDEV front office from the terminal: + + ```bash + ddev launch + ``` + +- List all existing DDEV services for current project: + + ```bash + ddev status + ``` + +- Start a shell session to your DDEV project’s web service: + + ```bash + ddev ssh + ``` + +- Start a shell session to a specific service. + Specify which DDEV service you want to connect to with the {{ `-s {{< variable "SERVICE_NAME" >}}` | .Page.RenderString }} option. + So if your database has the name `db`, connect to it with the following command: + + ```bash + ddev ssh -s db + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/redis.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/redis.md new file mode 100644 index 0000000000..6d2f1dd918 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/redis.md @@ -0,0 +1,19 @@ + +{{ $cliCommand := `{{< vendor/cli >}}` | .Page.RenderString }} +{{ if eq ( .Get "framework" ) "Symfony" }} + {{ $cliCommand = "symfony cloud:" }} +{{ end }} +You might find the following commands useful when using Redis with your Symfony app. + +- Connect to a remote Redis service: + + ```bash + {{ $cliCommand }} redis + ``` + +- Connect to a local Redis instance using the [Redis CLI](https://redis.io/docs/getting-started/): + + ```bash + redis-cli + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-common.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-common.md new file mode 100644 index 0000000000..35463dabbc --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-common.md @@ -0,0 +1,49 @@ + +- Initialize a new project using templates: + + ```bash + symfony project:init + ``` + +- Get a list of all the domains: + + ```bash + symfony cloud:domains + ``` + +- Create a new environment: + + ```bash + symfony cloud:branch new-branch + ``` + +- Get a list of all the environments: + + ```bash + symfony cloud:environments + ``` + +- Push code to the current environment: + + ```bash + symfony cloud:push + ``` + +- Get a list of all the active projects: + + ```bash + symfony cloud:projects + ``` + +- Add a user to the project: + + ```bash + symfony cloud:user:add + ``` + +- List variables: + + ```bash + symfony cloud:variables + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database-postgres.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database-postgres.md new file mode 100644 index 0000000000..4425e01fbc --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database-postgres.md @@ -0,0 +1,21 @@ + +You might find the following commands useful when using a PostgreSQL database with your Symfony app. + +- Create a dump of the local database: + + ```bash + symfony run pg_dump --data-only + ``` + +- Run an SQL query on the remote database: + + ```bash + symfony run psql 'SHOW TABLES' + ``` + +- Import a local SQL file into a remote database: + + ```bash + symfony run psql < dump.sql + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database.md new file mode 100644 index 0000000000..89c4024d57 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli-database.md @@ -0,0 +1,21 @@ + +You might find the following commands useful when using the Symfony CLI with a database. + +- Create a local dump of the remote database: + + ```bash + symfony db:dump --relationship database + ``` + +- Run an SQL query on the remote database: + + ```bash + symfony sql 'SHOW TABLES' + ``` + +- Import a local SQL file into a remote database: + + ```bash + symfony sql < my_database_backup.sql + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli.md b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli.md new file mode 100644 index 0000000000..8d1be902ce --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tips-and-tricks/symfony/cli.md @@ -0,0 +1,21 @@ + +You might find the following commands useful when using the Symfony CLI. + +- Open the web administration console: + + ```bash + symfony web + ``` + +- Open the URL of the current environment: + + ```bash + symfony url + ``` + +- Open an SSH connection to your environment: + + ```bash + symfony ssh + ``` + diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/all-reports.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/all-reports.html new file mode 100644 index 0000000000..76300e34d4 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/all-reports.html @@ -0,0 +1,10 @@ + + + {{ range .Page.Pages.ByTitle.Reverse }} + + + + + + {{ end }} +
        {{ .Name }}ViewDownload
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/download.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/download.html new file mode 100644 index 0000000000..69495effb9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/download.html @@ -0,0 +1,5 @@ + diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/info.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/info.html new file mode 100644 index 0000000000..dd738ed082 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/info.html @@ -0,0 +1 @@ +{{ index .Site.Data "transparency-reports" ( .Get 0 ) | .Page.RenderString }} diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/abuse.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/abuse.html new file mode 100644 index 0000000000..3bec51d16f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/abuse.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Type of requestTotal number of requestsNumber of unfounded requestsType of illegal contentBasis for action taken (Laws or Terms of Service)Average time needed for taking actions (days)
        Orders received from Government authorities00n/an/an/a
        Complaints received via support requests10Abuse of servicesTerms of Service1 day
        Notices submitted via abuse email105{{- partial "transparency-reports/listify.html" (slice "phishing attack" "crypto miner (2)" "trademark infringement (2)") -}}Terms of Service1 day
        Content moderation engaged at {{ .Site.Params.vendor.name }}'s own initiative10Abuse of servicesTerms of Service1 day
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/eu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/eu-requests.html new file mode 100644 index 0000000000..204be5fed2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/eu-requests.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement000000
        Other governmental authority000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/noneu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/noneu-requests.html new file mode 100644 index 0000000000..204be5fed2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/noneu-requests.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement000000
        Other governmental authority000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/usa-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/usa-requests.html new file mode 100644 index 0000000000..513a1bc192 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2020/usa-requests.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        National Security Letters000000
        FISA orders000000
        Cloud Act orders000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/abuse.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/abuse.html new file mode 100644 index 0000000000..dbefe57736 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/abuse.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Type of requestTotal number of requestsNumber of unfounded requestsType of illegal contentBasis for action taken (Laws or Terms of Service)Average time needed for taking actions (days)
        Orders received from Government authorities00n/an/an/a
        Complaints received via support requests00n/an/an/a
        Notices submitted via abuse email117{{- partial "transparency-reports/listify.html" (slice "phishing (6)" "malware (2)" "trademark/copyright infringement (2)" "defamation (1)") -}}Terms of Service2.8 days
        Content moderation engaged at {{ .Site.Params.vendor.name }}'s own initiative00n/an/an/a
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/eu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/eu-requests.html new file mode 100644 index 0000000000..db5f383f9f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/eu-requests.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement100000
        Other governmental authority000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/noneu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/noneu-requests.html new file mode 100644 index 0000000000..204be5fed2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/noneu-requests.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement000000
        Other governmental authority000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/usa-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/usa-requests.html new file mode 100644 index 0000000000..513a1bc192 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2021/usa-requests.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        National Security Letters000000
        FISA orders000000
        Cloud Act orders000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/abuse.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/abuse.html new file mode 100644 index 0000000000..75b759fcf3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/abuse.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Type of requestTotal number of requestsNumber of unfounded requestsType of illegal contentBasis for action taken (Laws or Terms of Service)Average time needed for taking actions (days)
        Orders received from Government authorities00n/an/an/a
        Complaints received via support requests21Trademark/copyright infrigement (2)Terms of Service1 Day
        Notices submitted via abuse email1813{{- partial "transparency-reports/listify.html" (slice "trademark/copyright infringement (13)" "violation of intellectual property and fraud (5)") -}}Terms of Service1.8 days
        Content moderation engaged at {{ .Site.Params.vendor.name }}'s own initiative00n/an/an/a
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/eu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/eu-requests.html new file mode 100644 index 0000000000..aa67e34e75 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/eu-requests.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement000000
        Other governmental authority000000
        + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/noneu-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/noneu-requests.html new file mode 100644 index 0000000000..204be5fed2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/noneu-requests.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        Law enforcement000000
        Other governmental authority000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/usa-requests.html b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/usa-requests.html new file mode 100644 index 0000000000..513a1bc192 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/tranparency-reports/tables/2022/usa-requests.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Requesting authorityNumber of requestsContent Data DisclosedMetadata DisclosedNumber of affected clients
        ControllerProcessorControllerProcessor
        National Security Letters000000
        FISA orders000000
        Cloud Act orders000000
        diff --git a/themes/hextra-upsun/layouts/shortcodes/var.html b/themes/hextra-upsun/layouts/shortcodes/var.html new file mode 100644 index 0000000000..f68647278e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/var.html @@ -0,0 +1,2 @@ +{{- $var := .Get 0 -}} +{{- $var -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/variable.html b/themes/hextra-upsun/layouts/shortcodes/variable.html new file mode 100644 index 0000000000..c1727d8414 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/variable.html @@ -0,0 +1 @@ +{{ .Get 0 }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/alt-name.html b/themes/hextra-upsun/layouts/shortcodes/vendor/alt-name.html new file mode 100644 index 0000000000..3222d9b345 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/alt-name.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.altname }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/cli.html b/themes/hextra-upsun/layouts/shortcodes/vendor/cli.html new file mode 100644 index 0000000000..116fd131a5 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/cli.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.cli }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/configdir.html b/themes/hextra-upsun/layouts/shortcodes/vendor/configdir.html new file mode 100644 index 0000000000..98105a67b1 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/configdir.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.config.dir }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/configfile.html b/themes/hextra-upsun/layouts/shortcodes/vendor/configfile.html new file mode 100644 index 0000000000..3839ae80fe --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/configfile.html @@ -0,0 +1,8 @@ +{{- $fileType := .Get 0 -}} +{{- $strip := .Get 1 | default "" -}} +{{- $filename:= index .Site.Params.vendor.config.files $fileType -}} +{{- if eq $strip "strip" -}} + {{- $fileSlice := split $filename "/" -}} + {{- $filename = index $fileSlice 1 -}} +{{- end -}} +{{- $filename -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/name.html b/themes/hextra-upsun/layouts/shortcodes/vendor/name.html new file mode 100644 index 0000000000..ba52337f6b --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/name.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.name }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/prefix.html b/themes/hextra-upsun/layouts/shortcodes/vendor/prefix.html new file mode 100644 index 0000000000..9bd23ce2e3 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/prefix.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.env_prefix }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/prefix_cli.html b/themes/hextra-upsun/layouts/shortcodes/vendor/prefix_cli.html new file mode 100644 index 0000000000..6fc83021a9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/prefix_cli.html @@ -0,0 +1 @@ +{{- .Site.Params.vendor.cli_prefix -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/psh_ref.html b/themes/hextra-upsun/layouts/shortcodes/vendor/psh_ref.html new file mode 100644 index 0000000000..d0ba4e28e9 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/psh_ref.html @@ -0,0 +1 @@ +{{ .Site.Params.vendor.psh_ref }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/url.html b/themes/hextra-upsun/layouts/shortcodes/vendor/url.html new file mode 100644 index 0000000000..2d6af1e9f2 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/url.html @@ -0,0 +1 @@ +{{ .Get 1 }} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/url_doc.html b/themes/hextra-upsun/layouts/shortcodes/vendor/url_doc.html new file mode 100644 index 0000000000..4cbda62e46 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/url_doc.html @@ -0,0 +1 @@ +{{- .Site.Params.rooturl -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/vendor/urlraw.html b/themes/hextra-upsun/layouts/shortcodes/vendor/urlraw.html new file mode 100644 index 0000000000..52f8717235 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/vendor/urlraw.html @@ -0,0 +1,3 @@ +{{- $id := .Get 0 -}} +{{- $url:= index .Site.Params.vendor.urls $id -}} +{{- $url -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/version/ifelse.html b/themes/hextra-upsun/layouts/shortcodes/version/ifelse.html new file mode 100644 index 0000000000..09b72da846 --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/version/ifelse.html @@ -0,0 +1,6 @@ +{{- $version := .Site.Params.vendor.config.version -}} +{{- if eq $version 1 -}} +{{- .Get 0 -}} +{{- else if eq $version 2 -}} +{{- .Get 1 -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/version/only.html b/themes/hextra-upsun/layouts/shortcodes/version/only.html new file mode 100644 index 0000000000..8154e7226f --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/version/only.html @@ -0,0 +1,10 @@ + + + + + + +{{- $version := .Site.Params.vendor.config.version -}} +{{- if eq $version ( int (.Get 0)) -}} + {{- .Inner | .Page.RenderString -}} +{{- end -}} diff --git a/themes/hextra-upsun/layouts/shortcodes/version/specific.html b/themes/hextra-upsun/layouts/shortcodes/version/specific.html new file mode 100644 index 0000000000..96441acb4d --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/version/specific.html @@ -0,0 +1,19 @@ + + + + + + + + + +{{- $page := .Page -}} +{{- $version := .Site.Params.vendor.config.version -}} +{{- $splitVersionChar := "<--->" -}} +{{- range $k, $v := split .Inner $splitVersionChar -}} + {{- $current := add $k 1 -}} + {{- if eq $current $version -}} +{{- $v | $page.RenderString -}} + {{- end -}} +{{- end -}} + \ No newline at end of file diff --git a/themes/hextra-upsun/layouts/shortcodes/video.html b/themes/hextra-upsun/layouts/shortcodes/video.html new file mode 100644 index 0000000000..858a58d11e --- /dev/null +++ b/themes/hextra-upsun/layouts/shortcodes/video.html @@ -0,0 +1,9 @@ + + +
        + {{- with .Get "src" -}} + + {{end}} +
        diff --git a/themes/hextra-upsun/layouts/showcase/list.html b/themes/hextra-upsun/layouts/showcase/list.html new file mode 100644 index 0000000000..42cba025ab --- /dev/null +++ b/themes/hextra-upsun/layouts/showcase/list.html @@ -0,0 +1,17 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        +
        + + {{ .Content }} +
        +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} diff --git a/themes/hextra-upsun/layouts/tags/index.html b/themes/hextra-upsun/layouts/tags/index.html new file mode 100644 index 0000000000..3b39b20d17 --- /dev/null +++ b/themes/hextra-upsun/layouts/tags/index.html @@ -0,0 +1,22 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        +
        +

        {{ .Title }}

        + {{ .Content }} + +
        +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} diff --git a/themes/hextra-upsun/layouts/tags/term.html b/themes/hextra-upsun/layouts/tags/term.html new file mode 100644 index 0000000000..d79c29b410 --- /dev/null +++ b/themes/hextra-upsun/layouts/tags/term.html @@ -0,0 +1,22 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        +
        +

        {{ .Title }}

        + {{ .Content }} + +
        +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} diff --git a/themes/hextra-upsun/theme.toml b/themes/hextra-upsun/theme.toml new file mode 100644 index 0000000000..a54e043409 --- /dev/null +++ b/themes/hextra-upsun/theme.toml @@ -0,0 +1,11 @@ +name = "Hextra for the Upsun Dev Center" +license = "MIT" +licenselink = "https://github.com/upsun/devcenter" +description = "Design and additional updates for the Upsun Developer Center" +homepage = "https://github.com/upsun/devcenter" +demosite = "https://devcenter.upsun.com" +min_version = "0.124.0" + +[author] + name = "Chad Carlson" + homepage = "https://github.com/chadwcarlson" diff --git a/themes/hextra/.devcontainer/devcontainer.json b/themes/hextra/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..5401f2caf3 --- /dev/null +++ b/themes/hextra/.devcontainer/devcontainer.json @@ -0,0 +1,22 @@ +{ + "image": "mcr.microsoft.com/devcontainers/go:1", + "features": { + "ghcr.io/devcontainers/features/hugo:1": { + "extended": true, + "version": "0.131.0" + }, + "ghcr.io/devcontainers/features/node:1": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "mhutchie.git-graph", + "esbenp.prettier-vscode", + "tamasfe.even-better-toml", + "budparr.language-hugo-vscode" + ] + } + }, + "postCreateCommand": "npm install", + "forwardPorts": [1313] +} diff --git a/themes/hextra/.github/CONTRIBUTING.md b/themes/hextra/.github/CONTRIBUTING.md new file mode 100644 index 0000000000..edaa9532c0 --- /dev/null +++ b/themes/hextra/.github/CONTRIBUTING.md @@ -0,0 +1,110 @@ +# Contribute to Hextra + +👋 Thank you for being interested in contributing to Hextra! As an open source project, we welcome contributions of many forms including bug reports, feature requests, documentation improvements, and code contributions. + + +## Table of Contents + +- [Guidelines](#guidelines) + - [Contributing Code](#contributing-code) + - [Contributing Documentation](#contributing-documentation) + - [💬 GitHub Discussions](#-github-discussions) + - [GitHub Issues](#github-issues) +- [Development](#development) + - [Local development setup](#local-development-setup) + - [Project structure](#project-structure) + - [Start the development server](#start-the-development-server) + - [Compile the styles](#compile-the-styles) + + +## Guidelines + +### Contributing Code + +To contribute, please follow the ["Fork and Pull Request"][fork and pull] workflow: + +Fork the repository, make your changes, and then submit a pull request. +Please make sure to include a description of the changes you made and why you made them. +Use [Conventional Commits][conventional commits] message to make it easier to understand the changes you made. + +### Contributing Documentation + +Similar to contributing code, you can also contribute to the documentation by submitting a pull request. + +The documentation site is located in the [`exampleSite`](../exampleSite/) folder. +You can make changes to the documentation and create a pull request. A preview of the new documentation will be automatically generated and displayed in the pull request comment via [Netlify][netlify deploy preview]. + +### 💬 GitHub Discussions + +We’re using [Discussions][discussions] as a place to connect with other members using Hextra: + +- Ask questions you’re wondering about. +- Share ideas. +- Engage with other users. + +### GitHub Issues + +If you find a bug or have a feature request, please [open an issue][issues]. + +Please make sure to include a description of the bug or feature you are requesting. If you are reporting a bug, please include steps to reproduce the bug. + +We recommend that you search existing [issues][issues] or discussions before opening a new one to prevent duplicates. + +## Development + +> **Note** +> You can start developing on [GitHub Codespaces][open in codespaces] or use [devcontainer][devcontainer] locally without installing any dependencies. + +### Local development setup + +- [Hugo][hugo] >= v0.124.0 (extended version) +- [Node.js][nodejs] +- [Go][go] + +Install dependencies: + +```bash +npm i +``` + +### Project structure + +- [`assets`](../assets/): CSS styles and JavaScript files. +- [`data`](../data/): The theme data files. Now only contains the `icons.yaml` file. +- [`exampleSite`](../exampleSite/): The documentation site for the theme. +- [`i18n`](../i18n/): The theme translation files. +- [`layouts`](../layouts/): The theme layouts. +- [`static`](../static/): The static files for the theme. For example, the favicon and the site logo. + +Please refer to the [Hugo documentation][hugo] for more information. + +### Start the development server + +```bash +npm run dev:theme +``` + +It will start the Hugo server on `http://localhost:1313/` for the `exampleSite` content. + +### Compile the styles + +For development preview, we compile the Tailwind CSS styles on the fly. But for production, we need to compile the styles first. + +```bash +npm run build:css +``` + +It will compile the Tailwind CSS styles and generate the `assets/css/compiled/main.css` file. + + + +[fork and pull]: https://docs.github.com/en/get-started/quickstart/contributing-to-projects +[conventional commits]: https://www.conventionalcommits.org +[issues]: https://github.com/imfing/hextra/issues +[discussions]: https://github.com/imfing/hextra/discussions +[nodejs]: https://nodejs.org/en/ +[hugo]: https://gohugo.io/ +[go]: https://golang.org/doc/install +[devcontainer]: https://code.visualstudio.com/docs/devcontainers/containers +[open in codespaces]: https://codespaces.new/imfing/hextra +[netlify deploy preview]: https://docs.netlify.com/site-deploys/deploy-previews/ diff --git a/themes/hextra/.github/ISSUE_TEMPLATE/bug_report.md b/themes/hextra/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..41be0cf57d --- /dev/null +++ b/themes/hextra/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,42 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Description** + + + +**Steps To Reproduce** + +1. +2. +3. + + + +**Expected Behavior** + + + +**Actual Behavior** + + + +**Screenshots** + + + +**Environment** + +- Hugo Version: [e.g., 0.85.0] +- Browser/OS: [e.g., Chrome, MacOS] +- Theme Version: [e.g., v2.0] + +**Additional Context** + + diff --git a/themes/hextra/.github/ISSUE_TEMPLATE/feature_request.md b/themes/hextra/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..6937c0340f --- /dev/null +++ b/themes/hextra/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Feature Description** + + + +**Problem/Solution** + + + +**Alternatives Considered** + + + +**Additional Context** + + diff --git a/themes/hextra/.github/workflows/pages.yml b/themes/hextra/.github/workflows/pages.yml new file mode 100644 index 0000000000..4fcf007df1 --- /dev/null +++ b/themes/hextra/.github/workflows/pages.yml @@ -0,0 +1,78 @@ +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.136.5 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # fetch all history for .GitInfo and .Lastmod + submodules: recursive + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.23' + - name: Setup Pages + id: pages + uses: actions/configure-pages@v5 + - name: Setup Hugo + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + # Use the latest release of the theme to build exampleSite + run: | + cd exampleSite && rm go.mod + hugo mod init github.com/imfing/hextra/exampleSite + hugo mod get -u github.com/imfing/hextra + hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./exampleSite/public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/themes/hextra/.gitignore b/themes/hextra/.gitignore new file mode 100644 index 0000000000..35c3c4ec53 --- /dev/null +++ b/themes/hextra/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +public/ +resources/ + +.hugo_build.lock diff --git a/themes/hextra/.prettierrc b/themes/hextra/.prettierrc new file mode 100644 index 0000000000..e0956e415c --- /dev/null +++ b/themes/hextra/.prettierrc @@ -0,0 +1,18 @@ +{ + "goTemplateBracketSpacing": true, + "htmlWhitespaceSensitivity": "css", + "printWidth": 200, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "overrides": [ + { + "files": [ + "*.html" + ], + "options": { + "parser": "go-template" + } + } + ] +} diff --git a/themes/hextra/.vscode/settings.json b/themes/hextra/.vscode/settings.json new file mode 100644 index 0000000000..d23863909f --- /dev/null +++ b/themes/hextra/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "editor.tabSize": 2, + "css.customData": [".vscode/tailwind.json"], + "markdown.extension.toc.levels": "2..6" +} diff --git a/themes/hextra/.vscode/tailwind.json b/themes/hextra/.vscode/tailwind.json new file mode 100644 index 0000000000..96a1f57970 --- /dev/null +++ b/themes/hextra/.vscode/tailwind.json @@ -0,0 +1,55 @@ +{ + "version": 1.1, + "atDirectives": [ + { + "name": "@tailwind", + "description": "Use the `@tailwind` directive to insert Tailwind's `base`, `components`, `utilities` and `screens` styles into your CSS.", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#tailwind" + } + ] + }, + { + "name": "@apply", + "description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS. This is useful when you find a common utility pattern in your HTML that you’d like to extract to a new component.", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#apply" + } + ] + }, + { + "name": "@responsive", + "description": "You can generate responsive variants of your own classes by wrapping their definitions in the `@responsive` directive:\n```css\n@responsive {\n .alert {\n background-color: #E53E3E;\n }\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#responsive" + } + ] + }, + { + "name": "@screen", + "description": "The `@screen` directive allows you to create media queries that reference your breakpoints by **name** instead of duplicating their values in your own CSS:\n```css\n@screen sm {\n /* ... */\n}\n```\n…gets transformed into this:\n```css\n@media (min-width: 640px) {\n /* ... */\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#screen" + } + ] + }, + { + "name": "@variants", + "description": "Generate `hover`, `focus`, `active` and other **variants** of your own utilities by wrapping their definitions in the `@variants` directive:\n```css\n@variants hover, focus {\n .btn-brand {\n background-color: #3182CE;\n }\n}\n```\n", + "references": [ + { + "name": "Tailwind Documentation", + "url": "https://tailwindcss.com/docs/functions-and-directives#variants" + } + ] + } + ] +} diff --git a/themes/hextra/LICENSE b/themes/hextra/LICENSE new file mode 100644 index 0000000000..946f304466 --- /dev/null +++ b/themes/hextra/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Xin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/hextra/README.fa.md b/themes/hextra/README.fa.md new file mode 100644 index 0000000000..0ec4a8882f --- /dev/null +++ b/themes/hextra/README.fa.md @@ -0,0 +1,48 @@ +
        +

        هگزترا

        + English | 简体中文فارسی +

        تم هیوگو مدرن، پاسخگو و دارای امکانات کامل برای ایجاد وب‌سایت‌های استاتیک زیبا.

        + +نسخه‌ی نمایشی → [imfing.github.io/hextra](https://imfing.github.io/hextra/fa) +
        + + + + Hextra + + +
        +GitHub Actions Status Netlify Status +
        + +## ویژگی‌ها + +- **طراحی زیبا** - با الهام از Nextra، هگزترا از Tailwind CSS برای ارائه یک طراحی مدرن که سایت شما را برجسته می‌کند، استفاده می‌کند. +- **طراحی واکنش‌گرا و حالت تیره** - در تمام دستگاه‌ها، از تلفن همراه، تبلت تا دسکتاپ، عالی به نظر می‌رسد. حالت تیره نیز برای انطباق با شرایط مختلف روشنایی پشتیبانی می‌شود. +- **سریع و سبک** - طراحی شده توسط Hugo، یک ایجادکننده سایت استاتیک سریع مثل رعد و برق که در یک فایل باینری قرار گرفته است، هگزترا ردپای خود را به حداقل می‌رساند. برای استفاده از آن به جاوااسکریپت یا Node.js نیازی ندارید. +- **جستجوی متن کامل** - جستجوی متن کاملا آفلاین داخلی طراحی شده توسط FlexSearch، بدون نیاز به پیکربندی اضافی. +- **امکانات کامل** - برای بهتر کردن محتوای شما مارک‌داون، برجسته‌کردن سینتکس، فرمول‌های ریاضی LaTeX، نمودارها و عناصر Shortcodeها را شامل میشه. فهرست مطالب، بردکرامب، صفحه‌بندی، پیمایش نوار کناری و موارد دیگر همه به صورت خودکار تولید می‌شوند. +- **چند زبانه و سئو آماده** - سایت‌های چند زبانه با حالت چند زبانه Hugo راحت ساخته می‌شوند. پشتیبانی خارج از جعبه برای برچسب‌های سئو، Open Graph و کارت‌های توییتر گنجانده شده است. + +## شروع کنید + +### شروع سریع از طریق Template + +استفاده از [Hextra Starter Template](https://github.com/imfing/hextra-starter-template) ساده‌ترین روش برای راه‌اندازی سریع یک وب‌سایت جدید با تم هگزترا است. با کلیک بر روی دکمه "Use this template" در بالای صفحه مخزن شروع کنید. + +مخزن تم همچنین شامل یک [گردش کار گیت‌هاب Actions](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) رای به‌کاراندازی وب‌سایت شما در گیت‌هاب Pages است. + +Hextra Starter Template + +### استفاده + +برای اطلاعات بیشتر به بخش [مستندات](https://imfing.github.io/hextra/fa/docs) مراجعه کنید. + +## مشارکت کردن + +از مشارکت افراد جدید استقبال می‌کنیم. + برای شروع، [راهنمای مشارکت](.github/CONTRIBUTING.md) را بررسی کنید. + +## مجوز + +[مجوز MIT](./LICENSE) diff --git a/themes/hextra/README.md b/themes/hextra/README.md new file mode 100644 index 0000000000..2b2f98ce20 --- /dev/null +++ b/themes/hextra/README.md @@ -0,0 +1,48 @@ +
        +

        Hextra

        + English | 简体中文فارسی +

        Modern, responsive, batteries-included Hugo theme for creating beautiful static websites.

        + +Demo → [imfing.github.io/hextra](https://imfing.github.io/hextra/) +
        + + + + Hextra + + +
        +GitHub Actions Status Netlify Status +
        + +## Features + +- **Beautiful Design** - Inspired by Nextra, Hextra utilizes Tailwind CSS to offer a modern design that makes your site look outstanding. +- **Responsive Layout and Dark Mode** - It looks great on all devices, from mobile to desktop. Dark mode is also supported to accommodate various lighting conditions. +- **Fast and Lightweight** - Powered by Hugo, a lightning-fast static-site generator housed in a single binary file, Hextra keeps its footprint minimal. No JavaScript or Node.js are needed to use it. +- **Full-text Search** - Built-in offline full-text search powered by FlexSearch, no extra configuration required. +- **Battery-included** - Markdown, syntax highlighting, LaTeX math formulae, diagrams and Shortcodes elements to enhance your content. Table of contents, breadcrumbs, pagination, sidebar navigation and more are all automatically generated. +- **Multi-language and SEO Ready** - Multi-language sites made easy with Hugo's multilingual mode. Out-of-the-box support is included for SEO tags, Open Graph, and Twitter Cards. + +## Quick Start + +### Use the template + +Using the [Hextra Starter Template](https://github.com/imfing/hextra-starter-template) is the simplest method to bootstrap a new website with Hextra theme. Get started by clicking the "Use this template" button on the template repository page. + +The template repository also includes a [GitHub Actions workflow](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) for deploying your website to GitHub Pages. + +Hextra Starter Template + +### Usage + +Refer to the [documentation](https://imfing.github.io/hextra/docs) for more information. + +## Contributing + +Contributions are welcome. +Check out the [contributing guide](.github/CONTRIBUTING.md) to get started. + +## License + +[MIT License](./LICENSE) diff --git a/themes/hextra/README.zh-cn.md b/themes/hextra/README.zh-cn.md new file mode 100644 index 0000000000..82be7fa424 --- /dev/null +++ b/themes/hextra/README.zh-cn.md @@ -0,0 +1,45 @@ +
        +

        Hextra

        + English | 简体中文فارسی +

        用于创建美观的静态站点的现代化, 响应式, 功能强大的 Hugo 主题.

        + +演示 → [imfing.github.io/hextra](https://imfing.github.io/hextra/) +
        + + + + Hextra + + +
        +GitHub Actions Status Netlify Status +
        + +## 特性 + +- **美观的设计** - 受 Nextra 的启发,Hextra 利用 Tailwind CSS 提供现代化的设计,使您的网站看起来美观有加. +- **响应式布局和深色模式支持** - 在任何设备上看起来都足够美观, 无论是手机, 平板电脑或者电脑. 深色模式的支持使 Hextra 可以应对各种照明环境. +- **快速且轻量** - 由 Hugo 强力支持, Hugo 是一个快如闪电的静态站点生成器, 这一切都只需一个可执行文件, Hextra 始终保持最小化, 无需 Javascript 或者 Node.js. +- **全文搜索** - 集成了 Flexsearch 的全文搜索, 无需额外的配置. +- **功能齐全** - Markdown, 代码高亮, LaTex 数学公式, diagrams 图表和 Shortcodes 都可以用于丰富你的内容. 目录, 面包屑导航, 分页, 侧边栏等均由 Hextra 自动生成。 +- **多语言和 SEO Ready** - Hugo 的多语言模式使得构建多语言网站更简单. 具有 SEO tags, Open Graph, 和 Twitter Cards 等诸多开箱即用的功能. + +## 快速开始 + +### 使用模板 + +使用 [Hextra stater template](https://github.com/imfing/hextra-starter-template) 是使用 Hextra 主题的最简单方法. 点击仓库页面上的 `Use this template` 按钮开始使用. + +此仓库中包含一个 [GitHub Actions workflow](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) 来帮助你免费在 GitHub Pages 上自动构建和部署网站. + +### 使用 + +转至[文档](https://imfing.github.io/hextra/zh-cn/docs) + +## 贡献 + +该项目正在积极开发中. 欢迎贡献! + +## 许可证 + +[MIT License](./LICENSE) diff --git a/themes/hextra/assets/css/chroma/dark.css b/themes/hextra/assets/css/chroma/dark.css new file mode 100644 index 0000000000..c4261570a0 --- /dev/null +++ b/themes/hextra/assets/css/chroma/dark.css @@ -0,0 +1,89 @@ +.dark .highlight { + /* Background .bg { color: #c9d1d9; background-color: #0d1117; } + /* PreWrapper .chroma { color: #c9d1d9; background-color: #0d1117; } */ + /* Other */ .chroma .x { } + /* Error */ .chroma .err { color: #f85149 } + /* CodeLine */ .chroma .cl { } + /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } + /* LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */ + /* LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } */ + /* LineHighlight .chroma .hl { background-color: #ffffcc } */ + /* LineNumbersTable .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c } */ + /* LineNumbers .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 } */ + /* Line */ .chroma .line { display: flex; } + /* Keyword */ .chroma .k { color: #ff7b72 } + /* KeywordConstant */ .chroma .kc { color: #79c0ff } + /* KeywordDeclaration */ .chroma .kd { color: #ff7b72 } + /* KeywordNamespace */ .chroma .kn { color: #ff7b72 } + /* KeywordPseudo */ .chroma .kp { color: #79c0ff } + /* KeywordReserved */ .chroma .kr { color: #ff7b72 } + /* KeywordType */ .chroma .kt { color: #ff7b72 } + /* Name */ .chroma .n { } + /* NameAttribute */ .chroma .na { } + /* NameBuiltin */ .chroma .nb { } + /* NameBuiltinPseudo */ .chroma .bp { } + /* NameClass */ .chroma .nc { color: #f0883e; font-weight: bold } + /* NameConstant */ .chroma .no { color: #79c0ff; font-weight: bold } + /* NameDecorator */ .chroma .nd { color: #d2a8ff; font-weight: bold } + /* NameEntity */ .chroma .ni { color: #ffa657 } + /* NameException */ .chroma .ne { color: #f0883e; font-weight: bold } + /* NameFunction */ .chroma .nf { color: #d2a8ff; font-weight: bold } + /* NameFunctionMagic */ .chroma .fm { } + /* NameLabel */ .chroma .nl { color: #79c0ff; font-weight: bold } + /* NameNamespace */ .chroma .nn { color: #ff7b72 } + /* NameOther */ .chroma .nx { } + /* NameProperty */ .chroma .py { color: #79c0ff } + /* NameTag */ .chroma .nt { color: #7ee787 } + /* NameVariable */ .chroma .nv { color: #79c0ff } + /* NameVariableClass */ .chroma .vc { } + /* NameVariableGlobal */ .chroma .vg { } + /* NameVariableInstance */ .chroma .vi { } + /* NameVariableMagic */ .chroma .vm { } + /* Literal */ .chroma .l { color: #a5d6ff } + /* LiteralDate */ .chroma .ld { color: #79c0ff } + /* LiteralString */ .chroma .s { color: #a5d6ff } + /* LiteralStringAffix */ .chroma .sa { color: #79c0ff } + /* LiteralStringBacktick */ .chroma .sb { color: #a5d6ff } + /* LiteralStringChar */ .chroma .sc { color: #a5d6ff } + /* LiteralStringDelimiter */ .chroma .dl { color: #79c0ff } + /* LiteralStringDoc */ .chroma .sd { color: #a5d6ff } + /* LiteralStringDouble */ .chroma .s2 { color: #a5d6ff } + /* LiteralStringEscape */ .chroma .se { color: #79c0ff } + /* LiteralStringHeredoc */ .chroma .sh { color: #79c0ff } + /* LiteralStringInterpol */ .chroma .si { color: #a5d6ff } + /* LiteralStringOther */ .chroma .sx { color: #a5d6ff } + /* LiteralStringRegex */ .chroma .sr { color: #79c0ff } + /* LiteralStringSingle */ .chroma .s1 { color: #a5d6ff } + /* LiteralStringSymbol */ .chroma .ss { color: #a5d6ff } + /* LiteralNumber */ .chroma .m { color: #a5d6ff } + /* LiteralNumberBin */ .chroma .mb { color: #a5d6ff } + /* LiteralNumberFloat */ .chroma .mf { color: #a5d6ff } + /* LiteralNumberHex */ .chroma .mh { color: #a5d6ff } + /* LiteralNumberInteger */ .chroma .mi { color: #a5d6ff } + /* LiteralNumberIntegerLong */ .chroma .il { color: #a5d6ff } + /* LiteralNumberOct */ .chroma .mo { color: #a5d6ff } + /* Operator */ .chroma .o { color: #ff7b72; font-weight: bold } + /* OperatorWord */ .chroma .ow { color: #ff7b72; font-weight: bold } + /* Punctuation */ .chroma .p { } + /* Comment */ .chroma .c { color: #8b949e; font-style: italic } + /* CommentHashbang */ .chroma .ch { color: #8b949e; font-style: italic } + /* CommentMultiline */ .chroma .cm { color: #8b949e; font-style: italic } + /* CommentSingle */ .chroma .c1 { color: #8b949e; font-style: italic } + /* CommentSpecial */ .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic } + /* CommentPreproc */ .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic } + /* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic } + /* Generic */ .chroma .g { } + /* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 } + /* GenericEmph */ .chroma .ge { color: inherit; font-style: italic } + /* GenericError */ .chroma .gr { color: #ffa198 } + /* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold } + /* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 } + /* GenericOutput */ .chroma .go { color: #8b949e } + /* GenericPrompt */ .chroma .gp { color: #8b949e } + /* GenericStrong */ .chroma .gs { font-weight: bold } + /* GenericSubheading */ .chroma .gu { color: #79c0ff } + /* GenericTraceback */ .chroma .gt { color: #ff7b72 } + /* GenericUnderline */ .chroma .gl { text-decoration: underline } + /* TextWhitespace */ .chroma .w { color: #6e7681 } +} + diff --git a/themes/hextra/assets/css/chroma/light.css b/themes/hextra/assets/css/chroma/light.css new file mode 100644 index 0000000000..20990c7bb1 --- /dev/null +++ b/themes/hextra/assets/css/chroma/light.css @@ -0,0 +1,90 @@ +/* Light theme for syntax highlight */ +/* Generated using `hugo gen chromastyles --style=github` */ +.highlight { + /* Background .bg { background-color: #ffffff; } */ + /* PreWrapper .chroma { background-color: #ffffff; } */ + /* Other .chroma .x { } */ + /* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 } + /* CodeLine .chroma .cl { } */ + /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } + /* LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */ + /* LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } */ + /* LineHighlight .chroma .hl { background-color: #ffffcc } */ + /* LineNumbersTable .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } */ + /* LineNumbers .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } */ + /* Line */ .chroma .line { display: flex; } + /* Keyword */ .chroma .k { color: #000000; font-weight: bold } + /* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold } + /* KeywordDeclaration */ .chroma .kd { color: #000000; font-weight: bold } + /* KeywordNamespace */ .chroma .kn { color: #000000; font-weight: bold } + /* KeywordPseudo */ .chroma .kp { color: #000000; font-weight: bold } + /* KeywordReserved */ .chroma .kr { color: #000000; font-weight: bold } + /* KeywordType */ .chroma .kt { color: #445588; font-weight: bold } + /* Name .chroma .n { } */ + /* NameAttribute */ .chroma .na { color: #008080 } + /* NameBuiltin */ .chroma .nb { color: #0086b3 } + /* NameBuiltinPseudo */ .chroma .bp { color: #999999 } + /* NameClass */ .chroma .nc { color: #445588; font-weight: bold } + /* NameConstant */ .chroma .no { color: #008080 } + /* NameDecorator */ .chroma .nd { color: #3c5d5d; font-weight: bold } + /* NameEntity */ .chroma .ni { color: #800080 } + /* NameException */ .chroma .ne { color: #990000; font-weight: bold } + /* NameFunction */ .chroma .nf { color: #990000; font-weight: bold } + /* NameFunctionMagic .chroma .fm { } */ + /* NameLabel */ .chroma .nl { color: #990000; font-weight: bold } + /* NameNamespace */ .chroma .nn { color: #555555 } + /* NameOther .chroma .nx { } */ + /* NameProperty .chroma .py { } */ + /* NameTag */ .chroma .nt { color: #000080 } + /* NameVariable */ .chroma .nv { color: #008080 } + /* NameVariableClass */ .chroma .vc { color: #008080 } + /* NameVariableGlobal */ .chroma .vg { color: #008080 } + /* NameVariableInstance */ .chroma .vi { color: #008080 } + /* NameVariableMagic .chroma .vm { } */ + /* Literal .chroma .l { } */ + /* LiteralDate .chroma .ld { } */ + /* LiteralString */ .chroma .s { color: #dd1144 } + /* LiteralStringAffix */ .chroma .sa { color: #dd1144 } + /* LiteralStringBacktick */ .chroma .sb { color: #dd1144 } + /* LiteralStringChar */ .chroma .sc { color: #dd1144 } + /* LiteralStringDelimiter */ .chroma .dl { color: #dd1144 } + /* LiteralStringDoc */ .chroma .sd { color: #dd1144 } + /* LiteralStringDouble */ .chroma .s2 { color: #dd1144 } + /* LiteralStringEscape */ .chroma .se { color: #dd1144 } + /* LiteralStringHeredoc */ .chroma .sh { color: #dd1144 } + /* LiteralStringInterpol */ .chroma .si { color: #dd1144 } + /* LiteralStringOther */ .chroma .sx { color: #dd1144 } + /* LiteralStringRegex */ .chroma .sr { color: #009926 } + /* LiteralStringSingle */ .chroma .s1 { color: #dd1144 } + /* LiteralStringSymbol */ .chroma .ss { color: #990073 } + /* LiteralNumber */ .chroma .m { color: #009999 } + /* LiteralNumberBin */ .chroma .mb { color: #009999 } + /* LiteralNumberFloat */ .chroma .mf { color: #009999 } + /* LiteralNumberHex */ .chroma .mh { color: #009999 } + /* LiteralNumberInteger */ .chroma .mi { color: #009999 } + /* LiteralNumberIntegerLong */ .chroma .il { color: #009999 } + /* LiteralNumberOct */ .chroma .mo { color: #009999 } + /* Operator */ .chroma .o { color: #000000; font-weight: bold } + /* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold } + /* Punctuation .chroma .p { } */ + /* Comment */ .chroma .c { color: #999988; font-style: italic } + /* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic } + /* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic } + /* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic } + /* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic } + /* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold; font-style: italic } + /* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold; font-style: italic } + /* Generic .chroma .g { } */ + /* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd } + /* GenericEmph */ .chroma .ge { color: #000000; font-style: italic } + /* GenericError */ .chroma .gr { color: #aa0000 } + /* GenericHeading */ .chroma .gh { color: #999999 } + /* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd } + /* GenericOutput */ .chroma .go { color: #888888 } + /* GenericPrompt */ .chroma .gp { color: #555555 } + /* GenericStrong */ .chroma .gs { font-weight: bold } + /* GenericSubheading */ .chroma .gu { color: #aaaaaa } + /* GenericTraceback */ .chroma .gt { color: #aa0000 } + /* GenericUnderline */ .chroma .gl { text-decoration: underline } + /* TextWhitespace */ .chroma .w { color: #bbbbbb } +} diff --git a/themes/hextra/assets/css/compiled/main.css b/themes/hextra/assets/css/compiled/main.css new file mode 100644 index 0000000000..dc3c35dd5a --- /dev/null +++ b/themes/hextra/assets/css/compiled/main.css @@ -0,0 +1,3547 @@ +/* +! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com +*//* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS +*/ + +html, +:host { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; /* 3 */ + -o-tab-size: 4; + tab-size: 4; /* 3 */ + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ + font-feature-settings: normal; /* 5 */ + font-variation-settings: normal; /* 6 */ + -webkit-tap-highlight-color: transparent; /* 7 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; /* 1 */ + color: inherit; /* 2 */ + border-top-width: 1px; /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; /* 3 */ + font-size: 1em; /* 4 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; /* 1 */ + border-color: inherit; /* 2 */ + border-collapse: collapse; /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-feature-settings: inherit; /* 1 */ + font-variation-settings: inherit; /* 1 */ + font-size: 100%; /* 1 */ + font-weight: inherit; /* 1 */ + line-height: inherit; /* 1 */ + letter-spacing: inherit; /* 1 */ + color: inherit; /* 1 */ + margin: 0; /* 2 */ + padding: 0; /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { + -webkit-appearance: button; /* 1 */ + background-color: transparent; /* 2 */ + background-image: none; /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; /* 1 */ + color: #9ca3af; /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; /* 1 */ + color: #9ca3af; /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; /* 1 */ + vertical-align: middle; /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} +.hx-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} +.hx-pointer-events-none { + pointer-events: none; +} +.hx-fixed { + position: fixed; +} +.hx-absolute { + position: absolute; +} +.hx-relative { + position: relative; +} +.hx-sticky { + position: sticky; +} +.hx-inset-0 { + inset: 0px; +} +.hx-inset-x-0 { + left: 0px; + right: 0px; +} +.hx-inset-y-0 { + top: 0px; + bottom: 0px; +} +.hx-bottom-0 { + bottom: 0px; +} +.hx-left-\[24px\] { + left: 24px; +} +.hx-left-\[36px\] { + left: 36px; +} +.hx-right-0 { + right: 0px; +} +.hx-top-0 { + top: 0px; +} +.hx-top-16 { + top: 4rem; +} +.hx-top-8 { + top: 2rem; +} +.hx-top-\[40\%\] { + top: 40%; +} +.hx-top-full { + top: 100%; +} +.hx-z-10 { + z-index: 10; +} +.hx-z-20 { + z-index: 20; +} +.hx-z-\[-1\] { + z-index: -1; +} +.hx-order-last { + order: 9999; +} +.hx-m-\[11px\] { + margin: 11px; +} +.hx-mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} +.hx-mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} +.hx-mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} +.hx-mx-auto { + margin-left: auto; + margin-right: auto; +} +.hx-my-1\.5 { + margin-top: 0.375rem; + margin-bottom: 0.375rem; +} +.hx-my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.-hx-mb-0\.5 { + margin-bottom: -0.125rem; +} +.-hx-ml-2 { + margin-left: -0.5rem; +} +.-hx-mr-2 { + margin-right: -0.5rem; +} +.-hx-mt-20 { + margin-top: -5rem; +} +.hx-mb-10 { + margin-bottom: 2.5rem; +} +.hx-mb-12 { + margin-bottom: 3rem; +} +.hx-mb-16 { + margin-bottom: 4rem; +} +.hx-mb-2 { + margin-bottom: 0.5rem; +} +.hx-mb-4 { + margin-bottom: 1rem; +} +.hx-mb-6 { + margin-bottom: 1.5rem; +} +.hx-mb-8 { + margin-bottom: 2rem; +} +.hx-ml-4 { + margin-left: 1rem; +} +.hx-mr-1 { + margin-right: 0.25rem; +} +.hx-mr-2 { + margin-right: 0.5rem; +} +.hx-mt-1 { + margin-top: 0.25rem; +} +.hx-mt-1\.5 { + margin-top: 0.375rem; +} +.hx-mt-12 { + margin-top: 3rem; +} +.hx-mt-16 { + margin-top: 4rem; +} +.hx-mt-2 { + margin-top: 0.5rem; +} +.hx-mt-4 { + margin-top: 1rem; +} +.hx-mt-5 { + margin-top: 1.25rem; +} +.hx-mt-6 { + margin-top: 1.5rem; +} +.hx-mt-8 { + margin-top: 2rem; +} +.hx-line-clamp-3 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} +.hx-block { + display: block; +} +.hx-inline-block { + display: inline-block; +} +.hx-inline { + display: inline; +} +.hx-flex { + display: flex; +} +.hx-inline-flex { + display: inline-flex; +} +.hx-grid { + display: grid; +} +.hx-hidden { + display: none; +} +.hx-aspect-auto { + aspect-ratio: auto; +} +.hx-h-0 { + height: 0px; +} +.hx-h-16 { + height: 4rem; +} +.hx-h-2 { + height: 0.5rem; +} +.hx-h-3\.5 { + height: 0.875rem; +} +.hx-h-4 { + height: 1rem; +} +.hx-h-5 { + height: 1.25rem; +} +.hx-h-7 { + height: 1.75rem; +} +.hx-h-\[18px\] { + height: 18px; +} +.hx-h-full { + height: 100%; +} +.hx-max-h-64 { + max-height: 16rem; +} +.hx-max-h-\[calc\(100vh-var\(--navbar-height\)-env\(safe-area-inset-bottom\)\)\] { + max-height: calc(100vh - var(--navbar-height) - env(safe-area-inset-bottom)); +} +.hx-max-h-\[min\(calc\(50vh-11rem-env\(safe-area-inset-bottom\)\)\,400px\)\] { + max-height: min(calc(50vh - 11rem - env(safe-area-inset-bottom)),400px); +} +.hx-min-h-\[100px\] { + min-height: 100px; +} +.hx-min-h-\[calc\(100vh-var\(--navbar-height\)\)\] { + min-height: calc(100vh - var(--navbar-height)); +} +.hx-w-2 { + width: 0.5rem; +} +.hx-w-3\.5 { + width: 0.875rem; +} +.hx-w-4 { + width: 1rem; +} +.hx-w-64 { + width: 16rem; +} +.hx-w-\[110\%\] { + width: 110%; +} +.hx-w-\[180\%\] { + width: 180%; +} +.hx-w-full { + width: 100%; +} +.hx-w-max { + width: -moz-max-content; + width: max-content; +} +.hx-w-screen { + width: 100vw; +} +.hx-min-w-0 { + min-width: 0px; +} +.hx-min-w-\[18px\] { + min-width: 18px; +} +.hx-min-w-\[24px\] { + min-width: 24px; +} +.hx-min-w-full { + min-width: 100%; +} +.hx-max-w-6xl { + max-width: 72rem; +} +.hx-max-w-\[50\%\] { + max-width: 50%; +} +.hx-max-w-\[90rem\] { + max-width: 90rem; +} +.hx-max-w-\[min\(calc\(100vw-2rem\)\,calc\(100\%\+20rem\)\)\] { + max-width: min(calc(100vw - 2rem),calc(100% + 20rem)); +} +.hx-max-w-none { + max-width: none; +} +.hx-max-w-screen-xl { + max-width: 1280px; +} +.hx-shrink-0 { + flex-shrink: 0; +} +.hx-grow { + flex-grow: 1; +} +.hx-origin-center { + transform-origin: center; +} +.hx-cursor-default { + cursor: default; +} +.hx-cursor-pointer { + cursor: pointer; +} +.hx-select-none { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.hx-scroll-my-6 { + scroll-margin-top: 1.5rem; + scroll-margin-bottom: 1.5rem; +} +.hx-scroll-py-6 { + scroll-padding-top: 1.5rem; + scroll-padding-bottom: 1.5rem; +} +.hx-list-none { + list-style-type: none; +} +.hx-appearance-none { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.hx-flex-col { + flex-direction: column; +} +.hx-flex-wrap { + flex-wrap: wrap; +} +.hx-items-start { + align-items: flex-start; +} +.hx-items-center { + align-items: center; +} +.hx-justify-start { + justify-content: flex-start; +} +.hx-justify-end { + justify-content: flex-end; +} +.hx-justify-center { + justify-content: center; +} +.hx-justify-between { + justify-content: space-between; +} +.hx-justify-items-start { + justify-items: start; +} +.hx-gap-1 { + gap: 0.25rem; +} +.hx-gap-2 { + gap: 0.5rem; +} +.hx-gap-4 { + gap: 1rem; +} +.hx-gap-x-1\.5 { + -moz-column-gap: 0.375rem; + column-gap: 0.375rem; +} +.hx-gap-y-2 { + row-gap: 0.5rem; +} +.hx-overflow-auto { + overflow: auto; +} +.hx-overflow-hidden { + overflow: hidden; +} +.hx-overflow-x-auto { + overflow-x: auto; +} +.hx-overflow-y-auto { + overflow-y: auto; +} +.hx-overflow-x-hidden { + overflow-x: hidden; +} +.hx-overflow-y-hidden { + overflow-y: hidden; +} +.hx-overscroll-contain { + overscroll-behavior: contain; +} +.hx-overscroll-x-contain { + overscroll-behavior-x: contain; +} +.hx-text-ellipsis { + text-overflow: ellipsis; +} +.hx-whitespace-nowrap { + white-space: nowrap; +} +.hx-break-words { + overflow-wrap: break-word; +} +.hx-rounded { + border-radius: 0.25rem; +} +.hx-rounded-3xl { + border-radius: 1.5rem; +} +.hx-rounded-full { + border-radius: 9999px; +} +.hx-rounded-lg { + border-radius: 0.5rem; +} +.hx-rounded-md { + border-radius: 0.375rem; +} +.hx-rounded-sm { + border-radius: 0.125rem; +} +.hx-rounded-xl { + border-radius: 0.75rem; +} +.hx-rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.hx-border { + border-width: 1px; +} +.hx-border-b { + border-bottom-width: 1px; +} +.hx-border-b-2 { + border-bottom-width: 2px; +} +.hx-border-t { + border-top-width: 1px; +} +.hx-border-black\/5 { + border-color: rgb(0 0 0 / 0.05); +} +.hx-border-blue-200 { + --tw-border-opacity: 1; + border-color: rgb(191 219 254 / var(--tw-border-opacity)); +} +.hx-border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} +.hx-border-gray-500 { + --tw-border-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-border-opacity)); +} +.hx-border-orange-100 { + --tw-border-opacity: 1; + border-color: rgb(255 237 213 / var(--tw-border-opacity)); +} +.hx-border-red-200 { + --tw-border-opacity: 1; + border-color: rgb(254 202 202 / var(--tw-border-opacity)); +} +.hx-border-transparent { + border-color: transparent; +} +.hx-border-yellow-100 { + --tw-border-opacity: 1; + border-color: rgb(254 249 195 / var(--tw-border-opacity)); +} +.hx-bg-black\/80 { + background-color: rgb(0 0 0 / 0.8); +} +.hx-bg-black\/\[\.05\] { + background-color: rgb(0 0 0 / .05); +} +.hx-bg-blue-100 { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity)); +} +.hx-bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} +.hx-bg-neutral-50 { + --tw-bg-opacity: 1; + background-color: rgb(250 250 250 / var(--tw-bg-opacity)); +} +.hx-bg-orange-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 247 237 / var(--tw-bg-opacity)); +} +.hx-bg-primary-100 { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44) / var(--tw-bg-opacity)); +} +.hx-bg-primary-400 { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 16) / var(--tw-bg-opacity)); +} +.hx-bg-primary-600 { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-bg-opacity)); +} +.hx-bg-primary-700\/5 { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / 0.05); +} +.hx-bg-red-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 226 226 / var(--tw-bg-opacity)); +} +.hx-bg-transparent { + background-color: transparent; +} +.hx-bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.hx-bg-yellow-50 { + --tw-bg-opacity: 1; + background-color: rgb(254 252 232 / var(--tw-bg-opacity)); +} +.hx-bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} +.hx-from-gray-900 { + --tw-gradient-from: #111827 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.hx-to-gray-600 { + --tw-gradient-to: #4b5563 var(--tw-gradient-to-position); +} +.hx-bg-clip-text { + -webkit-background-clip: text; + background-clip: text; +} +.hx-p-0\.5 { + padding: 0.125rem; +} +.hx-p-1 { + padding: 0.25rem; +} +.hx-p-1\.5 { + padding: 0.375rem; +} +.hx-p-2 { + padding: 0.5rem; +} +.hx-p-4 { + padding: 1rem; +} +.hx-p-6 { + padding: 1.5rem; +} +.hx-px-1\.5 { + padding-left: 0.375rem; + padding-right: 0.375rem; +} +.hx-px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.hx-px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} +.hx-px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} +.hx-px-4 { + padding-left: 1rem; + padding-right: 1rem; +} +.hx-px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} +.hx-py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.hx-py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} +.hx-py-12 { + padding-top: 3rem; + padding-bottom: 3rem; +} +.hx-py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.hx-py-2\.5 { + padding-top: 0.625rem; + padding-bottom: 0.625rem; +} +.hx-py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} +.hx-py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} +.hx-pb-8 { + padding-bottom: 2rem; +} +.hx-pb-\[env\(safe-area-inset-bottom\)\] { + padding-bottom: env(safe-area-inset-bottom); +} +.hx-pb-px { + padding-bottom: 1px; +} +.hx-pl-\[max\(env\(safe-area-inset-left\)\,1\.5rem\)\] { + padding-left: max(env(safe-area-inset-left),1.5rem); +} +.hx-pr-2 { + padding-right: 0.5rem; +} +.hx-pr-4 { + padding-right: 1rem; +} +.hx-pr-\[calc\(env\(safe-area-inset-right\)-1\.5rem\)\] { + padding-right: calc(env(safe-area-inset-right) - 1.5rem); +} +.hx-pr-\[max\(env\(safe-area-inset-left\)\,1\.5rem\)\] { + padding-right: max(env(safe-area-inset-left),1.5rem); +} +.hx-pr-\[max\(env\(safe-area-inset-right\)\,1\.5rem\)\] { + padding-right: max(env(safe-area-inset-right),1.5rem); +} +.hx-pt-4 { + padding-top: 1rem; +} +.hx-pt-6 { + padding-top: 1.5rem; +} +.hx-pt-8 { + padding-top: 2rem; +} +.hx-text-left { + text-align: left; +} +.hx-text-center { + text-align: center; +} +.hx-align-text-bottom { + vertical-align: text-bottom; +} +.hx-align-\[-2\.5px\] { + vertical-align: -2.5px; +} +.hx-font-mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} +.hx-text-2xl { + font-size: 1.5rem; +} +.hx-text-4xl { + font-size: 2.25rem; +} +.hx-text-\[\.65rem\] { + font-size: .65rem; +} +.hx-text-\[10px\] { + font-size: 10px; +} +.hx-text-base { + font-size: 1rem; +} +.hx-text-lg { + font-size: 1.125rem; +} +.hx-text-sm { + font-size: .875rem; +} +.hx-text-xl { + font-size: 1.25rem; +} +.hx-text-xs { + font-size: .75rem; +} +.hx-font-bold { + font-weight: 700; +} +.hx-font-extrabold { + font-weight: 800; +} +.hx-font-medium { + font-weight: 500; +} +.hx-font-normal { + font-weight: 400; +} +.hx-font-semibold { + font-weight: 600; +} +.hx-capitalize { + text-transform: capitalize; +} +.hx-leading-5 { + line-height: 1.25rem; +} +.hx-leading-6 { + line-height: 1.5rem; +} +.hx-leading-7 { + line-height: 1.75rem; +} +.hx-leading-none { + line-height: 1; +} +.hx-leading-tight { + line-height: 1.25; +} +.hx-tracking-tight { + letter-spacing: -0.015em; +} +.hx-text-\[color\:hsl\(var\(--primary-hue\)\,100\%\,50\%\)\] { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) 100% 50% / var(--tw-text-opacity)); +} +.hx-text-blue-900 { + --tw-text-opacity: 1; + color: rgb(30 58 138 / var(--tw-text-opacity)); +} +.hx-text-current { + color: currentColor; +} +.hx-text-gray-100 { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} +.hx-text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.hx-text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} +.hx-text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} +.hx-text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} +.hx-text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} +.hx-text-orange-800 { + --tw-text-opacity: 1; + color: rgb(154 52 18 / var(--tw-text-opacity)); +} +.hx-text-primary-800 { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 32) / var(--tw-text-opacity)); +} +.hx-text-red-900 { + --tw-text-opacity: 1; + color: rgb(127 29 29 / var(--tw-text-opacity)); +} +.hx-text-slate-900 { + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.hx-text-transparent { + color: transparent; +} +.hx-text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.hx-text-yellow-900 { + --tw-text-opacity: 1; + color: rgb(113 63 18 / var(--tw-text-opacity)); +} +.hx-underline { + text-decoration-line: underline; +} +.hx-no-underline { + text-decoration-line: none; +} +.hx-decoration-from-font { + text-decoration-thickness: from-font; +} +.hx-underline-offset-2 { + text-underline-offset: 2px; +} +.hx-opacity-0 { + opacity: 0; +} +.hx-opacity-50 { + opacity: 0.5; +} +.hx-opacity-80 { + opacity: 0.8; +} +.hx-shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-\[0_-12px_16px_\#fff\] { + --tw-shadow: 0 -12px 16px #fff; + --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-\[0_-12px_16px_white\] { + --tw-shadow: 0 -12px 16px white; + --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-\[0_2px_4px_rgba\(0\,0\,0\,\.02\)\,0_1px_0_rgba\(0\,0\,0\,\.06\)\] { + --tw-shadow: 0 2px 4px rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.06); + --tw-shadow-colored: 0 2px 4px var(--tw-shadow-color), 0 1px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-xl { + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hx-shadow-gray-100 { + --tw-shadow-color: #f3f4f6; + --tw-shadow: var(--tw-shadow-colored); +} +.hx-ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} +.hx-ring-black\/5 { + --tw-ring-color: rgb(0 0 0 / 0.05); +} +.hx-transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.hx-transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.hx-transition-colors { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.hx-transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.hx-transition-transform { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.hx-duration-200 { + transition-duration: 200ms; +} +.hx-duration-75 { + transition-duration: 75ms; +} +.hx-ease-in { + transition-timing-function: cubic-bezier(0.4, 0, 1, 1); +} +.\[-webkit-tap-highlight-color\:transparent\] { + -webkit-tap-highlight-color: transparent; +} +.\[-webkit-touch-callout\:none\] { + -webkit-touch-callout: none; +} +.\[counter-reset\:step\] { + counter-reset: step; +} +.\[hyphens\:auto\] { + -webkit-hyphens: auto; + hyphens: auto; +} +.\[transition\:background-color_1\.5s_ease\] { + transition: background-color 1.5s ease; +} +.\[word-break\:break-word\] { + word-break: break-word; +} +.content :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 0.5rem; + font-size: 2.25rem; + font-weight: 700; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.content :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 2.5rem; + border-bottom-width: 1px; + border-color: rgb(229 229 229 / 0.7); + padding-bottom: 0.25rem; + font-size: 1.875rem; + font-weight: 600; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +@media (prefers-contrast: more) { + + .content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)) { + --tw-border-opacity: 1; + border-color: rgb(163 163 163 / var(--tw-border-opacity)); + } +} +.content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44) / 0.1); + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +@media (prefers-contrast: more) { + + .content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(163 163 163 / var(--tw-border-opacity)); + } +} +.content :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 2rem; + font-size: 1.5rem; + font-weight: 600; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.content :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.content :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 2rem; + font-size: 1.25rem; + font-weight: 600; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.content :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.content :where(h5):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 2rem; + font-size: 1.125rem; + font-weight: 600; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.content :where(h5):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.content :where(h6):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 2rem; + font-size: 1rem; + font-weight: 600; + letter-spacing: -0.015em; + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} +.content :where(h6):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 1.5rem; + line-height: 1.75rem; +} +.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)):first-child { + margin-top: 0px; +} +.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)) { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); + text-decoration-line: underline; + text-decoration-thickness: from-font; + text-underline-position: from-font; +} +.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 1.5rem; + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); + font-style: italic; + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} +.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)):first-child { + margin-top: 0px; +} +.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-border-opacity)); + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="ltr"], [dir="ltr"] *) { + border-left-width: 2px; + padding-left: 1.5rem; +} +.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="rtl"], [dir="rtl"] *) { + border-right-width: 2px; + padding-right: 1.5rem; +} +.content :where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) { + margin-bottom: 1rem; + overflow-x: auto; + border-radius: 0.75rem; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / 0.05); + padding-top: 1rem; + padding-bottom: 1rem; + font-size: .9em; + font-weight: 500; + -webkit-font-smoothing: auto; + -moz-osx-font-smoothing: auto; +} +@media (prefers-contrast: more) { + + .content :where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) { + border-width: 1px; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 24) / 0.2); + --tw-contrast: contrast(1.5); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); + } +} +.content :where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27) / 0.1); +} +@media (prefers-contrast: more) { + + .content :where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44) / 0.4); + } +} +.content :where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)) { + overflow-wrap: break-word; + border-radius: 0.375rem; + border-width: 1px; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); + --tw-border-opacity: 0.04; + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); + --tw-bg-opacity: 0.03; + padding-top: 0.125rem; + padding-bottom: 0.125rem; + padding-left: .25em; + padding-right: .25em; + font-size: .9em; +} +.content :where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + border-color: rgb(255 255 255 / 0.1); + background-color: rgb(255 255 255 / 0.1); +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) { + margin-top: 1.5rem; + display: block; + overflow-x: auto; + padding: 0px; +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)):first-child { + margin-top: 0px; +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) tr { + margin: 0px; + border-top-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); + padding: 0px; +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) tr:nth-child(even) { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) tr:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) tr:is(html[class~="dark"] *):nth-child(even) { + background-color: rgb(75 85 99 / 0.2); +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) th { + margin: 0px; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-weight: 600; +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) th:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) td { + margin: 0px; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.content :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) td:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} +.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 1.5rem; + list-style-type: decimal; +} +.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)):first-child { + margin-top: 0px; +} +.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="ltr"], [dir="ltr"] *) { + margin-left: 1.5rem; +} +.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="rtl"], [dir="rtl"] *) { + margin-right: 1.5rem; +} +.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)) li { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 1.5rem; + list-style-type: disc; +} +.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)):first-child { + margin-top: 0px; +} +.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="ltr"], [dir="ltr"] *) { + margin-left: 1.5rem; +} +.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)):where([dir="rtl"], [dir="rtl"] *) { + margin-right: 1.5rem; +} +.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) li { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +/* This CSS rule targets the first nested unordered (ul) or ordered (ol) list + inside the list item (li) of any parent ul or ol. + The rule sets the top margin of the selected list to zero. */ +.content :where(ul, ol) > li > :where(ul, ol):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-top: 0px; +} +.content :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)) { + overflow-wrap: break-word; + border-radius: 0.375rem; + border-width: 1px; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); + --tw-border-opacity: 0.04; + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); + --tw-bg-opacity: 0.03; + padding-top: 0.125rem; + padding-bottom: 0.125rem; + padding-left: .25em; + padding-right: .25em; + font-size: .9em; +} +.content :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + border-color: rgb(255 255 255 / 0.1); + background-color: rgb(255 255 255 / 0.1); +} +.content :where(pre.mermaid):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) { + border-radius: 0px; + background-color: transparent; +} +.content :where(pre.mermaid):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)):is(html[class~="dark"] *) { + background-color: transparent; +} +.content :where(img):not(:where([class~=not-prose],[class~=not-prose] *)) { + margin-left: auto; + margin-right: auto; + margin-top: 1rem; + margin-bottom: 1rem; + border-radius: 0.375rem; +} +.content :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) figcaption { + margin-top: 0.5rem; + display: block; + text-align: center; + font-size: .875rem; + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.content :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) figcaption:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +/* Definition list */ +.content :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)) dt { + margin-top: 1.5rem; + font-weight: 600; +} +.content :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)) dd { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + padding-inline-start: 1.5rem; +} +.content .footnotes { + margin-top: 3rem; + font-size: .875rem; +} +.subheading-anchor { + opacity: 0; + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.subheading-anchor:where([dir="ltr"], [dir="ltr"] *) { + margin-left: 0.25rem; +} +.subheading-anchor:where([dir="rtl"], [dir="rtl"] *) { + margin-right: 0.25rem; +} +span:target + .subheading-anchor, + :hover > .subheading-anchor, + .subheading-anchor:focus { + opacity: 1; +} +span + .subheading-anchor, + :hover > .subheading-anchor { + text-decoration-line: none !important; +} +.subheading-anchor:after { + padding-left: 0.25rem; + padding-right: 0.25rem; + --tw-content: '#'; + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.subheading-anchor:is(html[class~="dark"] *):after { + --tw-text-opacity: 1; + color: rgb(64 64 64 / var(--tw-text-opacity)); +} +span:target + .subheading-anchor:after { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +span:target + .subheading-anchor:is(html[class~="dark"] *):after { + --tw-text-opacity: 1; + color: rgb(115 115 115 / var(--tw-text-opacity)); +} +article details > summary::-webkit-details-marker { + display: none; +} +article details > summary::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='hx-h-5 hx-w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E"); + height: 1.2em; + width: 1.2em; + vertical-align: -4px; + padding: 0 0.6em; + } +:lang(fa) ol { + list-style-type: persian; +} +/* Code syntax highlight */ +/* Light theme for syntax highlight */ +/* Generated using `hugo gen chromastyles --style=github` */ +.highlight { + /* Background .bg { background-color: #ffffff; } */ + /* PreWrapper .chroma { background-color: #ffffff; } */ + /* Other .chroma .x { } */ + /* CodeLine .chroma .cl { } */ + /* LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */ + /* LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } */ + /* LineHighlight .chroma .hl { background-color: #ffffcc } */ + /* LineNumbersTable .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } */ + /* LineNumbers .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } */ + /* Name .chroma .n { } */ + /* NameFunctionMagic .chroma .fm { } */ + /* NameOther .chroma .nx { } */ + /* NameProperty .chroma .py { } */ + /* NameVariableMagic .chroma .vm { } */ + /* Literal .chroma .l { } */ + /* LiteralDate .chroma .ld { } */ + /* Punctuation .chroma .p { } */ + /* Generic .chroma .g { } */ +} +/* Error */ +.highlight .chroma .err { color: #a61717; background-color: #e3d2d2 } +/* LineLink */ +.highlight .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } +/* Line */ +.highlight .chroma .line { display: flex; } +/* Keyword */ +.highlight .chroma .k { color: #000000; font-weight: bold } +/* KeywordConstant */ +.highlight .chroma .kc { color: #000000; font-weight: bold } +/* KeywordDeclaration */ +.highlight .chroma .kd { color: #000000; font-weight: bold } +/* KeywordNamespace */ +.highlight .chroma .kn { color: #000000; font-weight: bold } +/* KeywordPseudo */ +.highlight .chroma .kp { color: #000000; font-weight: bold } +/* KeywordReserved */ +.highlight .chroma .kr { color: #000000; font-weight: bold } +/* KeywordType */ +.highlight .chroma .kt { color: #445588; font-weight: bold } +/* NameAttribute */ +.highlight .chroma .na { color: #008080 } +/* NameBuiltin */ +.highlight .chroma .nb { color: #0086b3 } +/* NameBuiltinPseudo */ +.highlight .chroma .bp { color: #999999 } +/* NameClass */ +.highlight .chroma .nc { color: #445588; font-weight: bold } +/* NameConstant */ +.highlight .chroma .no { color: #008080 } +/* NameDecorator */ +.highlight .chroma .nd { color: #3c5d5d; font-weight: bold } +/* NameEntity */ +.highlight .chroma .ni { color: #800080 } +/* NameException */ +.highlight .chroma .ne { color: #990000; font-weight: bold } +/* NameFunction */ +.highlight .chroma .nf { color: #990000; font-weight: bold } +/* NameLabel */ +.highlight .chroma .nl { color: #990000; font-weight: bold } +/* NameNamespace */ +.highlight .chroma .nn { color: #555555 } +/* NameTag */ +.highlight .chroma .nt { color: #000080 } +/* NameVariable */ +.highlight .chroma .nv { color: #008080 } +/* NameVariableClass */ +.highlight .chroma .vc { color: #008080 } +/* NameVariableGlobal */ +.highlight .chroma .vg { color: #008080 } +/* NameVariableInstance */ +.highlight .chroma .vi { color: #008080 } +/* LiteralString */ +.highlight .chroma .s { color: #dd1144 } +/* LiteralStringAffix */ +.highlight .chroma .sa { color: #dd1144 } +/* LiteralStringBacktick */ +.highlight .chroma .sb { color: #dd1144 } +/* LiteralStringChar */ +.highlight .chroma .sc { color: #dd1144 } +/* LiteralStringDelimiter */ +.highlight .chroma .dl { color: #dd1144 } +/* LiteralStringDoc */ +.highlight .chroma .sd { color: #dd1144 } +/* LiteralStringDouble */ +.highlight .chroma .s2 { color: #dd1144 } +/* LiteralStringEscape */ +.highlight .chroma .se { color: #dd1144 } +/* LiteralStringHeredoc */ +.highlight .chroma .sh { color: #dd1144 } +/* LiteralStringInterpol */ +.highlight .chroma .si { color: #dd1144 } +/* LiteralStringOther */ +.highlight .chroma .sx { color: #dd1144 } +/* LiteralStringRegex */ +.highlight .chroma .sr { color: #009926 } +/* LiteralStringSingle */ +.highlight .chroma .s1 { color: #dd1144 } +/* LiteralStringSymbol */ +.highlight .chroma .ss { color: #990073 } +/* LiteralNumber */ +.highlight .chroma .m { color: #009999 } +/* LiteralNumberBin */ +.highlight .chroma .mb { color: #009999 } +/* LiteralNumberFloat */ +.highlight .chroma .mf { color: #009999 } +/* LiteralNumberHex */ +.highlight .chroma .mh { color: #009999 } +/* LiteralNumberInteger */ +.highlight .chroma .mi { color: #009999 } +/* LiteralNumberIntegerLong */ +.highlight .chroma .il { color: #009999 } +/* LiteralNumberOct */ +.highlight .chroma .mo { color: #009999 } +/* Operator */ +.highlight .chroma .o { color: #000000; font-weight: bold } +/* OperatorWord */ +.highlight .chroma .ow { color: #000000; font-weight: bold } +/* Comment */ +.highlight .chroma .c { color: #999988; font-style: italic } +/* CommentHashbang */ +.highlight .chroma .ch { color: #999988; font-style: italic } +/* CommentMultiline */ +.highlight .chroma .cm { color: #999988; font-style: italic } +/* CommentSingle */ +.highlight .chroma .c1 { color: #999988; font-style: italic } +/* CommentSpecial */ +.highlight .chroma .cs { color: #999999; font-weight: bold; font-style: italic } +/* CommentPreproc */ +.highlight .chroma .cp { color: #999999; font-weight: bold; font-style: italic } +/* CommentPreprocFile */ +.highlight .chroma .cpf { color: #999999; font-weight: bold; font-style: italic } +/* GenericDeleted */ +.highlight .chroma .gd { color: #000000; background-color: #ffdddd } +/* GenericEmph */ +.highlight .chroma .ge { color: #000000; font-style: italic } +/* GenericError */ +.highlight .chroma .gr { color: #aa0000 } +/* GenericHeading */ +.highlight .chroma .gh { color: #999999 } +/* GenericInserted */ +.highlight .chroma .gi { color: #000000; background-color: #ddffdd } +/* GenericOutput */ +.highlight .chroma .go { color: #888888 } +/* GenericPrompt */ +.highlight .chroma .gp { color: #555555 } +/* GenericStrong */ +.highlight .chroma .gs { font-weight: bold } +/* GenericSubheading */ +.highlight .chroma .gu { color: #aaaaaa } +/* GenericTraceback */ +.highlight .chroma .gt { color: #aa0000 } +/* GenericUnderline */ +.highlight .chroma .gl { text-decoration: underline } +/* TextWhitespace */ +.highlight .chroma .w { color: #bbbbbb } +.dark .highlight { + /* Background .bg { color: #c9d1d9; background-color: #0d1117; } + /* PreWrapper .chroma { color: #c9d1d9; background-color: #0d1117; } */ + /* LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */ + /* LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } */ + /* LineHighlight .chroma .hl { background-color: #ffffcc } */ + /* LineNumbersTable .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c } */ + /* LineNumbers .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 } */ +} +/* Other */ +.dark .highlight .chroma .x { } +/* Error */ +.dark .highlight .chroma .err { color: #f85149 } +/* CodeLine */ +.dark .highlight .chroma .cl { } +/* LineLink */ +.dark .highlight .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } +/* Line */ +.dark .highlight .chroma .line { display: flex; } +/* Keyword */ +.dark .highlight .chroma .k { color: #ff7b72 } +/* KeywordConstant */ +.dark .highlight .chroma .kc { color: #79c0ff } +/* KeywordDeclaration */ +.dark .highlight .chroma .kd { color: #ff7b72 } +/* KeywordNamespace */ +.dark .highlight .chroma .kn { color: #ff7b72 } +/* KeywordPseudo */ +.dark .highlight .chroma .kp { color: #79c0ff } +/* KeywordReserved */ +.dark .highlight .chroma .kr { color: #ff7b72 } +/* KeywordType */ +.dark .highlight .chroma .kt { color: #ff7b72 } +/* Name */ +.dark .highlight .chroma .n { } +/* NameAttribute */ +.dark .highlight .chroma .na { } +/* NameBuiltin */ +.dark .highlight .chroma .nb { } +/* NameBuiltinPseudo */ +.dark .highlight .chroma .bp { } +/* NameClass */ +.dark .highlight .chroma .nc { color: #f0883e; font-weight: bold } +/* NameConstant */ +.dark .highlight .chroma .no { color: #79c0ff; font-weight: bold } +/* NameDecorator */ +.dark .highlight .chroma .nd { color: #d2a8ff; font-weight: bold } +/* NameEntity */ +.dark .highlight .chroma .ni { color: #ffa657 } +/* NameException */ +.dark .highlight .chroma .ne { color: #f0883e; font-weight: bold } +/* NameFunction */ +.dark .highlight .chroma .nf { color: #d2a8ff; font-weight: bold } +/* NameFunctionMagic */ +.dark .highlight .chroma .fm { } +/* NameLabel */ +.dark .highlight .chroma .nl { color: #79c0ff; font-weight: bold } +/* NameNamespace */ +.dark .highlight .chroma .nn { color: #ff7b72 } +/* NameOther */ +.dark .highlight .chroma .nx { } +/* NameProperty */ +.dark .highlight .chroma .py { color: #79c0ff } +/* NameTag */ +.dark .highlight .chroma .nt { color: #7ee787 } +/* NameVariable */ +.dark .highlight .chroma .nv { color: #79c0ff } +/* NameVariableClass */ +.dark .highlight .chroma .vc { } +/* NameVariableGlobal */ +.dark .highlight .chroma .vg { } +/* NameVariableInstance */ +.dark .highlight .chroma .vi { } +/* NameVariableMagic */ +.dark .highlight .chroma .vm { } +/* Literal */ +.dark .highlight .chroma .l { color: #a5d6ff } +/* LiteralDate */ +.dark .highlight .chroma .ld { color: #79c0ff } +/* LiteralString */ +.dark .highlight .chroma .s { color: #a5d6ff } +/* LiteralStringAffix */ +.dark .highlight .chroma .sa { color: #79c0ff } +/* LiteralStringBacktick */ +.dark .highlight .chroma .sb { color: #a5d6ff } +/* LiteralStringChar */ +.dark .highlight .chroma .sc { color: #a5d6ff } +/* LiteralStringDelimiter */ +.dark .highlight .chroma .dl { color: #79c0ff } +/* LiteralStringDoc */ +.dark .highlight .chroma .sd { color: #a5d6ff } +/* LiteralStringDouble */ +.dark .highlight .chroma .s2 { color: #a5d6ff } +/* LiteralStringEscape */ +.dark .highlight .chroma .se { color: #79c0ff } +/* LiteralStringHeredoc */ +.dark .highlight .chroma .sh { color: #79c0ff } +/* LiteralStringInterpol */ +.dark .highlight .chroma .si { color: #a5d6ff } +/* LiteralStringOther */ +.dark .highlight .chroma .sx { color: #a5d6ff } +/* LiteralStringRegex */ +.dark .highlight .chroma .sr { color: #79c0ff } +/* LiteralStringSingle */ +.dark .highlight .chroma .s1 { color: #a5d6ff } +/* LiteralStringSymbol */ +.dark .highlight .chroma .ss { color: #a5d6ff } +/* LiteralNumber */ +.dark .highlight .chroma .m { color: #a5d6ff } +/* LiteralNumberBin */ +.dark .highlight .chroma .mb { color: #a5d6ff } +/* LiteralNumberFloat */ +.dark .highlight .chroma .mf { color: #a5d6ff } +/* LiteralNumberHex */ +.dark .highlight .chroma .mh { color: #a5d6ff } +/* LiteralNumberInteger */ +.dark .highlight .chroma .mi { color: #a5d6ff } +/* LiteralNumberIntegerLong */ +.dark .highlight .chroma .il { color: #a5d6ff } +/* LiteralNumberOct */ +.dark .highlight .chroma .mo { color: #a5d6ff } +/* Operator */ +.dark .highlight .chroma .o { color: #ff7b72; font-weight: bold } +/* OperatorWord */ +.dark .highlight .chroma .ow { color: #ff7b72; font-weight: bold } +/* Punctuation */ +.dark .highlight .chroma .p { } +/* Comment */ +.dark .highlight .chroma .c { color: #8b949e; font-style: italic } +/* CommentHashbang */ +.dark .highlight .chroma .ch { color: #8b949e; font-style: italic } +/* CommentMultiline */ +.dark .highlight .chroma .cm { color: #8b949e; font-style: italic } +/* CommentSingle */ +.dark .highlight .chroma .c1 { color: #8b949e; font-style: italic } +/* CommentSpecial */ +.dark .highlight .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic } +/* CommentPreproc */ +.dark .highlight .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic } +/* CommentPreprocFile */ +.dark .highlight .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic } +/* Generic */ +.dark .highlight .chroma .g { } +/* GenericDeleted */ +.dark .highlight .chroma .gd { color: #ffa198; background-color: #490202 } +/* GenericEmph */ +.dark .highlight .chroma .ge { color: inherit; font-style: italic } +/* GenericError */ +.dark .highlight .chroma .gr { color: #ffa198 } +/* GenericHeading */ +.dark .highlight .chroma .gh { color: #79c0ff; font-weight: bold } +/* GenericInserted */ +.dark .highlight .chroma .gi { color: #56d364; background-color: #0f5323 } +/* GenericOutput */ +.dark .highlight .chroma .go { color: #8b949e } +/* GenericPrompt */ +.dark .highlight .chroma .gp { color: #8b949e } +/* GenericStrong */ +.dark .highlight .chroma .gs { font-weight: bold } +/* GenericSubheading */ +.dark .highlight .chroma .gu { color: #79c0ff } +/* GenericTraceback */ +.dark .highlight .chroma .gt { color: #ff7b72 } +/* GenericUnderline */ +.dark .highlight .chroma .gl { text-decoration: underline } +/* TextWhitespace */ +.dark .highlight .chroma .w { color: #6e7681 } +.hextra-code-block { + font-size: .9em; + line-height: 1.25rem; +} +.hextra-code-block pre { + overflow-x: auto; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / 0.05); + font-size: .9em; + font-weight: 500; + -webkit-font-smoothing: auto; + -moz-osx-font-smoothing: auto; +} +@media (prefers-contrast: more) { + + .hextra-code-block pre { + border-width: 1px; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 24) / 0.2); + --tw-contrast: contrast(1.5); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); + } +} +.hextra-code-block pre:is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27) / 0.1); +} +@media (prefers-contrast: more) { + + .hextra-code-block pre:is(html[class~="dark"] *) { + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44) / 0.4); + } +} +.hextra-code-block .filename { + position: absolute; + top: 0px; + z-index: 1; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border-top-left-radius: 0.75rem; + border-top-right-radius: 0.75rem; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / 0.05); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + padding-right: 1rem; + font-size: .75rem; + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} +.hextra-code-block .filename:is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27) / 0.1); + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} +.hextra-code-block .filename + pre:not(.lntable pre) { + /* Override padding for code blocks with filename but no highlight */ + padding-top: 3rem; + } +.hextra-code-block pre:not(.lntable pre) { + margin-bottom: 1rem; + border-radius: 0.75rem; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; +} +.hextra-code-block div:nth-of-type(2) pre { + padding-top: 3rem; + padding-bottom: 1rem; +} +.chroma .lntable { + margin: 0px; + display: block; + width: auto; + overflow: auto; + border-radius: 0.75rem; +} +.chroma .lntable pre { + padding-top: 1rem; + padding-bottom: 1rem; +} +.chroma .ln, + .chroma .lnt:not(.hl > .lnt), + .chroma .hl:not(.line) { + min-width: 2.6rem; + padding-left: 1rem; + padding-right: 1rem; + --tw-text-opacity: 1; + color: rgb(82 82 82 / var(--tw-text-opacity)); +} +.chroma .ln:is(html[class~="dark"] *), + .chroma .lnt:not(.hl > .lnt):is(html[class~="dark"] *), + .chroma .hl:not(.line):is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(212 212 212 / var(--tw-text-opacity)); +} +.chroma .lntd { + padding: 0px; + vertical-align: top; +} +.chroma .lntd:last-of-type { + width: 100%; +} +/* LineHighlight */ +.chroma .hl { + display: block; + width: 100%; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 32) / 0.1); +} +.hextra-cards { + grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 1rem * 2) / var(--hextra-cards-grid-cols))), 1fr)); +} +.hextra-card { + position: relative; +} +.hextra-card img { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.hextra-card:hover svg { + color: currentColor; +} +.hextra-card svg { + width: 1.5rem; + color: #00000033; + transition: color 0.3s ease; +} +.hextra-card p { + margin-top: 0.5rem; + position: relative; +} +.dark .hextra-card svg { + color: #ffffff66; +} +.dark .hextra-card:hover svg { + color: currentColor; +} +.hextra-card-tag { + position: absolute; + top: 5px; + right: 5px; + z-index: 10; +} +.steps h3 { + counter-increment: step; +} +.steps h3:before { + position: absolute; + height: 33px; + width: 33px; + border-width: 4px; + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} +.steps h3:is(html[class~="dark"] *):before { + --tw-border-opacity: 1; + border-color: rgb(17 17 17 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(38 38 38 / var(--tw-bg-opacity)); +} +.steps h3:before { + border-radius: 9999px; + text-align: center; + text-indent: -1px; + font-size: 1rem; + font-weight: 400; + --tw-text-opacity: 1; + color: rgb(163 163 163 / var(--tw-text-opacity)); + margin-top: 3px; +} +.steps h3:where([dir="ltr"], [dir="ltr"] *):before { + margin-left: -41px; +} +.steps h3:where([dir="rtl"], [dir="rtl"] *):before { + margin-right: -44px; +} +.steps h3:before { + content: counter(step); + } +:lang(fa) .steps h3:before { + content: counter(step, persian); + } +.search-wrapper li { + margin-left: 0.625rem; + margin-right: 0.625rem; + overflow-wrap: break-word; + border-radius: 0.375rem; + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} +@media (prefers-contrast: more) { + + .search-wrapper li { + border-width: 1px; + border-color: transparent; + } +} +.search-wrapper li:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.search-wrapper li a { + display: block; + scroll-margin: 3rem; + padding-left: 0.625rem; + padding-right: 0.625rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.search-wrapper li .title { + font-size: 1rem; + font-weight: 600; + line-height: 1.25rem; +} +.search-wrapper li .active { + border-radius: 0.375rem; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / 0.1); +} +@media (prefers-contrast: more) { + + .search-wrapper li .active { + --tw-border-opacity: 1; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / var(--tw-border-opacity)); + } +} +.search-wrapper .no-result { + display: block; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + padding: 2rem; + text-align: center; + font-size: .875rem; + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.search-wrapper .prefix { + margin-left: 0.625rem; + margin-right: 0.625rem; + margin-bottom: 0.5rem; + margin-top: 1.5rem; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border-bottom-width: 1px; + border-color: rgb(0 0 0 / 0.1); + padding-left: 0.625rem; + padding-right: 0.625rem; + padding-bottom: 0.375rem; + font-size: .75rem; + font-weight: 600; + text-transform: uppercase; + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.search-wrapper .prefix:first-child { + margin-top: 0px; +} +@media (prefers-contrast: more) { + + .search-wrapper .prefix { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); + } +} +.search-wrapper .prefix:is(html[class~="dark"] *) { + border-color: rgb(255 255 255 / 0.2); + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +@media (prefers-contrast: more) { + + .search-wrapper .prefix:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(249 250 251 / var(--tw-border-opacity)); + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); + } +} +.search-wrapper .excerpt { + margin-top: 0.25rem; + overflow: hidden; + text-overflow: ellipsis; + font-size: .875rem; + line-height: 1.35rem; + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} +.search-wrapper .excerpt:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +@media (prefers-contrast: more) { + + .search-wrapper .excerpt:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); + } +} +.search-wrapper .excerpt { + display: -webkit-box; + line-clamp: 1; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + } +.search-wrapper .match { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); +} +@media (max-width: 767px) { + .sidebar-container { + position: fixed; + top: 0px; + bottom: 0px; + z-index: 15; + width: 100%; + overscroll-behavior: contain; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding-top: calc(var(--navbar-height)); + } + .sidebar-container:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(17 17 17 / var(--tw-bg-opacity)); + } + .sidebar-container { + transition: transform 0.8s cubic-bezier(0.52, 0.16, 0.04, 1); + will-change: transform, opacity; + contain: layout style; + backface-visibility: hidden; + } +} +.sidebar-container li > div { + height: 0px; +} +.sidebar-container li.open > div { + height: auto; + padding-top: 0.25rem; +} +.sidebar-container li.open > a > span > svg > path { + --tw-rotate: 90deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +nav .search-wrapper { + display: none; +} +@media (min-width: 768px) { + + nav .search-wrapper { + display: inline-block; + } +} +@supports ( + ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) +) { + .nav-container-blur { + background-color: rgb(255 255 255 / .85); + --tw-backdrop-blur: blur(12px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + } + .nav-container-blur:is(html[class~="dark"] *) { + background-color: rgb(17 17 17 / 0.8) !important; + } +} +.hamburger-menu svg g { + transform-origin: center; + transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1); +} +.hamburger-menu svg path { + opacity: 1; + transition: + transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s, + opacity 0.2s ease 0.2s; + } +.hamburger-menu svg.open path { + transition: + transform 0.2s cubic-bezier(0.25, 1, 0.5, 1), + opacity 0s ease 0.2s; + } +.hamburger-menu svg.open g { + transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s; + } +.hamburger-menu svg.open > path { + opacity: 0; +} +.hamburger-menu svg.open > g:nth-of-type(1) { + --tw-rotate: 45deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.hamburger-menu svg.open > g:nth-of-type(1) path { + transform: translate3d(0, 4px, 0); + } +.hamburger-menu svg.open > g:nth-of-type(2) { + --tw-rotate: -45deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.hamburger-menu svg.open > g:nth-of-type(2) path { + transform: translate3d(0, -4px, 0); + } +.hextra-scrollbar, .hextra-scrollbar * { + scrollbar-width: thin; /* Firefox */ + scrollbar-color: oklch(55.55% 0 0 / 40%) transparent; /* Firefox */ + + scrollbar-gutter: stable; +} +.hextra-scrollbar::-webkit-scrollbar, .hextra-scrollbar *::-webkit-scrollbar { + height: 0.75rem; + width: 0.75rem; +} +.hextra-scrollbar::-webkit-scrollbar-track, .hextra-scrollbar *::-webkit-scrollbar-track { + background-color: transparent; +} +.hextra-scrollbar::-webkit-scrollbar-thumb, .hextra-scrollbar *::-webkit-scrollbar-thumb { + border-radius: 10px; +} +.hextra-scrollbar:hover::-webkit-scrollbar-thumb, .hextra-scrollbar *:hover::-webkit-scrollbar-thumb { + border: 3px solid transparent; + background-color: var(--tw-shadow-color); + background-clip: content-box; + --tw-shadow-color: rgb(115 115 115 / 0.2); + --tw-shadow: var(--tw-shadow-colored); + } +.hextra-scrollbar:hover::-webkit-scrollbar-thumb:hover, .hextra-scrollbar *:hover::-webkit-scrollbar-thumb:hover { + --tw-shadow-color: rgb(115 115 115 / 0.4); + --tw-shadow: var(--tw-shadow-colored); +} +@supports ( + ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) +) { + .hextra-code-copy-btn { + --tw-bg-opacity: .85; + --tw-backdrop-blur: blur(12px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + } + .hextra-code-copy-btn:is(html[class~="dark"] *) { + --tw-bg-opacity: 0.8; + } +} +@media (min-width: 1024px) { +.hextra-feature-grid { + grid-template-columns: repeat(var(--hextra-feature-grid-cols), minmax(0, 1fr)) +} + } +.hextra-jupyter-code-cell { + scrollbar-gutter: auto; + margin-top: 1.5rem; +} +.hextra-jupyter-code-cell .hextra-jupyter-code-cell-outputs-container { + overflow: hidden; + font-size: .75rem; +} +.hextra-jupyter-code-cell .hextra-jupyter-code-cell-outputs-container .hextra-jupyter-code-cell-outputs { + max-height: 50vh; + overflow: auto; +} +.hextra-jupyter-code-cell .hextra-jupyter-code-cell-outputs-container .hextra-jupyter-code-cell-outputs pre { + max-width: 100%; + overflow: auto; + font-size: .75rem; +} +.hextra-badge { + display: inline-flex; + align-items: center; +} +html { + font-size: 1rem; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "rlig" 1, "calt" 1, "ss01" 1; + -webkit-tap-highlight-color: transparent; +} +body { + width: 100%; + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +body:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(17 17 17 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} +:root { + --primary-hue: 212deg; + --primary-saturation: 100%; + --primary-lightness: 50%; + --navbar-height: 4rem; + --menu-height: 3.75rem; +} +.dark { + --primary-hue: 204deg; + --primary-saturation: 100%; + --primary-lightness: 50%; +} +.placeholder\:hx-text-gray-500::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.placeholder\:hx-text-gray-500::placeholder { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.before\:hx-pointer-events-none::before { + content: var(--tw-content); + pointer-events: none; +} +.before\:hx-absolute::before { + content: var(--tw-content); + position: absolute; +} +.before\:hx-inset-0::before { + content: var(--tw-content); + inset: 0px; +} +.before\:hx-inset-y-1::before { + content: var(--tw-content); + top: 0.25rem; + bottom: 0.25rem; +} +.before\:hx-mr-1::before { + content: var(--tw-content); + margin-right: 0.25rem; +} +.before\:hx-inline-block::before { + content: var(--tw-content); + display: inline-block; +} +.before\:hx-w-px::before { + content: var(--tw-content); + width: 1px; +} +.before\:hx-bg-gray-200::before { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} +.before\:hx-opacity-25::before { + content: var(--tw-content); + opacity: 0.25; +} +.before\:hx-transition-transform::before { + content: var(--tw-content); + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.before\:hx-content-\[\'\#\'\]::before { + --tw-content: '#'; + content: var(--tw-content); +} +.before\:hx-content-\[\'\'\]::before { + --tw-content: ''; + content: var(--tw-content); +} +.before\:hx-content-\[\\\"\\\"\]::before { + --tw-content: \"\"; + content: var(--tw-content); +} +.first\:hx-mt-0:first-child { + margin-top: 0px; +} +.last-of-type\:hx-mb-0:last-of-type { + margin-bottom: 0px; +} +.hover\:hx-border-gray-200:hover { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} +.hover\:hx-border-gray-300:hover { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} +.hover\:hx-border-gray-400:hover { + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); +} +.hover\:hx-border-gray-900:hover { + --tw-border-opacity: 1; + border-color: rgb(17 24 39 / var(--tw-border-opacity)); +} +.hover\:hx-bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} +.hover\:hx-bg-gray-800\/5:hover { + background-color: rgb(31 41 55 / 0.05); +} +.hover\:hx-bg-primary-50:hover { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 47) / var(--tw-bg-opacity)); +} +.hover\:hx-bg-primary-700:hover { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / var(--tw-bg-opacity)); +} +.hover\:hx-bg-slate-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); +} +.hover\:hx-text-black:hover { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} +.hover\:hx-text-gray-800:hover { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} +.hover\:hx-text-gray-900:hover { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} +.hover\:hx-text-primary-600:hover { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); +} +.hover\:hx-opacity-60:hover { + opacity: 0.6; +} +.hover\:hx-opacity-75:hover { + opacity: 0.75; +} +.hover\:hx-shadow-lg:hover { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hover\:hx-shadow-md:hover { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hover\:hx-shadow-gray-100:hover { + --tw-shadow-color: #f3f4f6; + --tw-shadow: var(--tw-shadow-colored); +} +.focus\:hx-bg-white:focus { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.focus\:hx-outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.focus\:hx-ring-4:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} +.focus\:hx-ring-primary-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27) / var(--tw-ring-opacity)); +} +.active\:hx-bg-gray-400\/20:active { + background-color: rgb(156 163 175 / 0.2); +} +.active\:hx-opacity-50:active { + opacity: 0.5; +} +.active\:hx-shadow-sm:active { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.active\:hx-shadow-gray-200:active { + --tw-shadow-color: #e5e7eb; + --tw-shadow: var(--tw-shadow-colored); +} +.hx-group[open] .group-open\:before\:hx-rotate-90::before { + content: var(--tw-content); + --tw-rotate: 90deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.hx-group:hover .group-hover\:hx-underline { + text-decoration-line: underline; +} +.hx-group\/code:hover .group-hover\/code\:hx-opacity-100 { + opacity: 1; +} +.hx-group\/copybtn.copied .group-\[\.copied\]\/copybtn\:hx-block { + display: block; +} +.hx-group\/copybtn.copied .group-\[\.copied\]\/copybtn\:hx-hidden { + display: none; +} +.data-\[state\=selected\]\:hx-block[data-state="selected"] { + display: block; +} +.data-\[state\=closed\]\:hx-hidden[data-state="closed"] { + display: none; +} +.data-\[state\=open\]\:hx-hidden[data-state="open"] { + display: none; +} +.data-\[state\=selected\]\:hx-border-primary-500[data-state="selected"] { + --tw-border-opacity: 1; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / var(--tw-border-opacity)); +} +.data-\[state\=selected\]\:hx-text-primary-600[data-state="selected"] { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); +} +.hx-group[data-theme="dark"] .group-data-\[theme\=dark\]\:hx-hidden { + display: none; +} +.hx-group[data-theme="light"] .group-data-\[theme\=light\]\:hx-hidden { + display: none; +} +@media (prefers-contrast: more) { + + .contrast-more\:hx-border { + border-width: 1px; + } + + .contrast-more\:hx-border-t { + border-top-width: 1px; + } + + .contrast-more\:hx-border-current { + border-color: currentColor; + } + + .contrast-more\:hx-border-gray-800 { + --tw-border-opacity: 1; + border-color: rgb(31 41 55 / var(--tw-border-opacity)); + } + + .contrast-more\:hx-border-gray-900 { + --tw-border-opacity: 1; + border-color: rgb(17 24 39 / var(--tw-border-opacity)); + } + + .contrast-more\:hx-border-neutral-400 { + --tw-border-opacity: 1; + border-color: rgb(163 163 163 / var(--tw-border-opacity)); + } + + .contrast-more\:hx-border-primary-500 { + --tw-border-opacity: 1; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / var(--tw-border-opacity)); + } + + .contrast-more\:hx-border-transparent { + border-color: transparent; + } + + .contrast-more\:hx-font-bold { + font-weight: 700; + } + + .contrast-more\:hx-text-current { + color: currentColor; + } + + .contrast-more\:hx-text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); + } + + .contrast-more\:hx-text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); + } + + .contrast-more\:hx-text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); + } + + .contrast-more\:hx-underline { + text-decoration-line: underline; + } + + .contrast-more\:hx-shadow-\[0_0_0_1px_\#000\] { + --tw-shadow: 0 0 0 1px #000; + --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .contrast-more\:hx-shadow-none { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .contrast-more\:hover\:hx-border-gray-900:hover { + --tw-border-opacity: 1; + border-color: rgb(17 24 39 / var(--tw-border-opacity)); + } +} +.dark\:hx-block:is(html[class~="dark"] *) { + display: block; +} +.dark\:hx-hidden:is(html[class~="dark"] *) { + display: none; +} +.dark\:hx-border-blue-200\/30:is(html[class~="dark"] *) { + border-color: rgb(191 219 254 / 0.3); +} +.dark\:hx-border-gray-100\/20:is(html[class~="dark"] *) { + border-color: rgb(243 244 246 / 0.2); +} +.dark\:hx-border-gray-400:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); +} +.dark\:hx-border-neutral-700:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(64 64 64 / var(--tw-border-opacity)); +} +.dark\:hx-border-neutral-800:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(38 38 38 / var(--tw-border-opacity)); +} +.dark\:hx-border-orange-400\/30:is(html[class~="dark"] *) { + border-color: rgb(251 146 60 / 0.3); +} +.dark\:hx-border-red-200\/30:is(html[class~="dark"] *) { + border-color: rgb(254 202 202 / 0.3); +} +.dark\:hx-border-white\/10:is(html[class~="dark"] *) { + border-color: rgb(255 255 255 / 0.1); +} +.dark\:hx-border-yellow-200\/30:is(html[class~="dark"] *) { + border-color: rgb(254 240 138 / 0.3); +} +.dark\:hx-bg-black\/60:is(html[class~="dark"] *) { + background-color: rgb(0 0 0 / 0.6); +} +.dark\:hx-bg-blue-900\/30:is(html[class~="dark"] *) { + background-color: rgb(30 58 138 / 0.3); +} +.dark\:hx-bg-dark:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(17 17 17 / var(--tw-bg-opacity)); +} +.dark\:hx-bg-dark\/50:is(html[class~="dark"] *) { + background-color: rgb(17 17 17 / 0.5); +} +.dark\:hx-bg-gray-50\/10:is(html[class~="dark"] *) { + background-color: rgb(249 250 251 / 0.1); +} +.dark\:hx-bg-neutral-800:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(38 38 38 / var(--tw-bg-opacity)); +} +.dark\:hx-bg-neutral-900:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(23 23 23 / var(--tw-bg-opacity)); +} +.dark\:hx-bg-orange-400\/20:is(html[class~="dark"] *) { + background-color: rgb(251 146 60 / 0.2); +} +.dark\:hx-bg-primary-300\/10:is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 27) / 0.1); +} +.dark\:hx-bg-primary-400\/10:is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 16) / 0.1); +} +.dark\:hx-bg-primary-600:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-bg-opacity)); +} +.dark\:hx-bg-red-900\/30:is(html[class~="dark"] *) { + background-color: rgb(127 29 29 / 0.3); +} +.dark\:hx-bg-yellow-700\/30:is(html[class~="dark"] *) { + background-color: rgb(161 98 7 / 0.3); +} +.dark\:hx-from-gray-100:is(html[class~="dark"] *) { + --tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.dark\:hx-to-gray-400:is(html[class~="dark"] *) { + --tw-gradient-to: #9ca3af var(--tw-gradient-to-position); +} +.dark\:hx-text-blue-200:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(191 219 254 / var(--tw-text-opacity)); +} +.dark\:hx-text-gray-100:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} +.dark\:hx-text-gray-200:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} +.dark\:hx-text-gray-300:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.dark\:hx-text-gray-400:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.dark\:hx-text-gray-50:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); +} +.dark\:hx-text-neutral-200:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(229 229 229 / var(--tw-text-opacity)); +} +.dark\:hx-text-neutral-400:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(163 163 163 / var(--tw-text-opacity)); +} +.dark\:hx-text-orange-300:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(253 186 116 / var(--tw-text-opacity)); +} +.dark\:hx-text-primary-600:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); +} +.dark\:hx-text-red-200:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(254 202 202 / var(--tw-text-opacity)); +} +.dark\:hx-text-slate-100:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); +} +.dark\:hx-text-yellow-200:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(254 240 138 / var(--tw-text-opacity)); +} +.dark\:hx-opacity-80:is(html[class~="dark"] *) { + opacity: 0.8; +} +.dark\:hx-shadow-\[0_-12px_16px_\#111\]:is(html[class~="dark"] *) { + --tw-shadow: 0 -12px 16px #111; + --tw-shadow-colored: 0 -12px 16px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.dark\:hx-shadow-\[0_-1px_0_rgba\(255\2c 255\2c 255\2c \.1\)_inset\]:is(html[class~="dark"] *) { + --tw-shadow: 0 -1px 0 rgba(255,255,255,.1) inset; + --tw-shadow-colored: inset 0 -1px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.dark\:hx-shadow-none:is(html[class~="dark"] *) { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.dark\:hx-ring-white\/20:is(html[class~="dark"] *) { + --tw-ring-color: rgb(255 255 255 / 0.2); +} +.dark\:placeholder\:hx-text-gray-400:is(html[class~="dark"] *)::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.dark\:placeholder\:hx-text-gray-400:is(html[class~="dark"] *)::placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.dark\:before\:hx-bg-neutral-800:is(html[class~="dark"] *)::before { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(38 38 38 / var(--tw-bg-opacity)); +} +.dark\:before\:hx-invert:is(html[class~="dark"] *)::before { + content: var(--tw-content); + --tw-invert: invert(100%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.dark\:hover\:hx-border-gray-100:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-border-opacity)); +} +.dark\:hover\:hx-border-gray-600:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(75 85 99 / var(--tw-border-opacity)); +} +.dark\:hover\:hx-border-neutral-500:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(115 115 115 / var(--tw-border-opacity)); +} +.dark\:hover\:hx-border-neutral-700:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(64 64 64 / var(--tw-border-opacity)); +} +.dark\:hover\:hx-border-neutral-800:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(38 38 38 / var(--tw-border-opacity)); +} +.dark\:hover\:hx-bg-gray-100\/5:hover:is(html[class~="dark"] *) { + background-color: rgb(243 244 246 / 0.05); +} +.dark\:hover\:hx-bg-neutral-700:hover:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(64 64 64 / var(--tw-bg-opacity)); +} +.dark\:hover\:hx-bg-neutral-800:hover:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(38 38 38 / var(--tw-bg-opacity)); +} +.dark\:hover\:hx-bg-neutral-900:hover:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(23 23 23 / var(--tw-bg-opacity)); +} +.dark\:hover\:hx-bg-primary-100\/5:hover:is(html[class~="dark"] *) { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * 44) / 0.05); +} +.dark\:hover\:hx-bg-primary-700:hover:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 39) / var(--tw-bg-opacity)); +} +.hover\:dark\:hx-bg-primary-500\/10:is(html[class~="dark"] *):hover { + background-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / 0.1); +} +.dark\:hover\:hx-text-gray-100:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); +} +.dark\:hover\:hx-text-gray-200:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} +.dark\:hover\:hx-text-gray-300:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.dark\:hover\:hx-text-gray-50:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); +} +.dark\:hover\:hx-text-neutral-50:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(250 250 250 / var(--tw-text-opacity)); +} +.dark\:hover\:hx-text-white:hover:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.hover\:dark\:hx-text-primary-600:is(html[class~="dark"] *):hover { + --tw-text-opacity: 1; + color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 45) / var(--tw-text-opacity)); +} +.dark\:hover\:hx-shadow-none:hover:is(html[class~="dark"] *) { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.dark\:focus\:hx-bg-dark:focus:is(html[class~="dark"] *) { + --tw-bg-opacity: 1; + background-color: rgb(17 17 17 / var(--tw-bg-opacity)); +} +.dark\:focus\:hx-ring-primary-800:focus:is(html[class~="dark"] *) { + --tw-ring-opacity: 1; + --tw-ring-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 32) / var(--tw-ring-opacity)); +} +@media (prefers-contrast: more) { + + .contrast-more\:dark\:hx-border-current:is(html[class~="dark"] *) { + border-color: currentColor; + } + + .contrast-more\:dark\:hx-border-gray-50:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(249 250 251 / var(--tw-border-opacity)); + } + + .contrast-more\:dark\:hx-border-neutral-400:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(163 163 163 / var(--tw-border-opacity)); + } + + .contrast-more\:dark\:hx-border-primary-500:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: hsl(var(--primary-hue) var(--primary-saturation) calc(calc(var(--primary-lightness) / 50) * 50) / var(--tw-border-opacity)); + } + + .dark\:contrast-more\:hx-border-neutral-400:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(163 163 163 / var(--tw-border-opacity)); + } + + .contrast-more\:dark\:hx-text-current:is(html[class~="dark"] *) { + color: currentColor; + } + + .contrast-more\:dark\:hx-text-gray-100:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); + } + + .contrast-more\:dark\:hx-text-gray-300:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); + } + + .contrast-more\:dark\:hx-text-gray-50:is(html[class~="dark"] *) { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); + } + + .contrast-more\:dark\:hx-shadow-\[0_0_0_1px_\#fff\]:is(html[class~="dark"] *) { + --tw-shadow: 0 0 0 1px #fff; + --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .contrast-more\:dark\:hx-shadow-none:is(html[class~="dark"] *) { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .contrast-more\:dark\:hover\:hx-border-gray-50:hover:is(html[class~="dark"] *) { + --tw-border-opacity: 1; + border-color: rgb(249 250 251 / var(--tw-border-opacity)); + } +} +@media not all and (min-width: 1280px) { + + .max-xl\:hx-hidden { + display: none; + } +} +@media not all and (min-width: 1024px) { + + .max-lg\:hx-min-h-\[340px\] { + min-height: 340px; + } +} +@media not all and (min-width: 768px) { + + .max-md\:hx-hidden { + display: none; + } + + .max-md\:hx-min-h-\[340px\] { + min-height: 340px; + } + + .max-md\:\[transform\:translate3d\(0\2c -100\%\2c 0\)\] { + transform: translate3d(0,-100%,0); + } +} +@media not all and (min-width: 640px) { + + .max-sm\:hx-grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } +} +@media (min-width: 640px) { + + .sm\:hx-block { + display: block; + } + + .sm\:hx-flex { + display: flex; + } + + .sm\:hx-w-\[110\%\] { + width: 110%; + } + + .sm\:hx-items-start { + align-items: flex-start; + } + + .sm\:hx-text-xl { + font-size: 1.25rem; + } + + @media not all and (min-width: 1024px) { + + .sm\:max-lg\:hx-grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } +} +@media (min-width: 768px) { + + .md\:hx-sticky { + position: sticky; + } + + .md\:hx-top-16 { + top: 4rem; + } + + .md\:hx-inline-block { + display: inline-block; + } + + .md\:hx-hidden { + display: none; + } + + .md\:hx-aspect-\[1\.1\/1\] { + aspect-ratio: 1.1/1; + } + + .md\:hx-h-\[calc\(100vh-var\(--navbar-height\)-var\(--menu-height\)\)\] { + height: calc(100vh - var(--navbar-height) - var(--menu-height)); + } + + .md\:hx-max-h-\[min\(calc\(100vh-5rem-env\(safe-area-inset-bottom\)\)\2c 400px\)\] { + max-height: min(calc(100vh - 5rem - env(safe-area-inset-bottom)),400px); + } + + .md\:hx-w-64 { + width: 16rem; + } + + .md\:hx-shrink-0 { + flex-shrink: 0; + } + + .md\:hx-justify-start { + justify-content: flex-start; + } + + .md\:hx-self-start { + align-self: flex-start; + } + + .md\:hx-px-12 { + padding-left: 3rem; + padding-right: 3rem; + } + + .md\:hx-pt-12 { + padding-top: 3rem; + } + + .md\:hx-text-5xl { + font-size: 3rem; + } + + .md\:hx-text-lg { + font-size: 1.125rem; + } + + .md\:hx-text-sm { + font-size: .875rem; + } +} +@media (min-width: 1280px) { + + .xl\:hx-block { + display: block; + } +} +.ltr\:hx-right-1\.5:where([dir="ltr"], [dir="ltr"] *) { + right: 0.375rem; +} +.ltr\:hx-right-3:where([dir="ltr"], [dir="ltr"] *) { + right: 0.75rem; +} +.ltr\:hx--mr-4:where([dir="ltr"], [dir="ltr"] *) { + margin-right: -1rem; +} +.ltr\:hx-ml-1:where([dir="ltr"], [dir="ltr"] *) { + margin-left: 0.25rem; +} +.ltr\:hx-ml-3:where([dir="ltr"], [dir="ltr"] *) { + margin-left: 0.75rem; +} +.ltr\:hx-ml-auto:where([dir="ltr"], [dir="ltr"] *) { + margin-left: auto; +} +.ltr\:hx-mr-auto:where([dir="ltr"], [dir="ltr"] *) { + margin-right: auto; +} +.ltr\:hx-rotate-180:where([dir="ltr"], [dir="ltr"] *) { + --tw-rotate: 180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.ltr\:hx-border-l:where([dir="ltr"], [dir="ltr"] *) { + border-left-width: 1px; +} +.ltr\:hx-pl-12:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 3rem; +} +.ltr\:hx-pl-16:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 4rem; +} +.ltr\:hx-pl-3:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 0.75rem; +} +.ltr\:hx-pl-4:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 1rem; +} +.ltr\:hx-pl-5:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 1.25rem; +} +.ltr\:hx-pl-6:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 1.5rem; +} +.ltr\:hx-pl-8:where([dir="ltr"], [dir="ltr"] *) { + padding-left: 2rem; +} +.ltr\:hx-pr-0:where([dir="ltr"], [dir="ltr"] *) { + padding-right: 0px; +} +.ltr\:hx-pr-2:where([dir="ltr"], [dir="ltr"] *) { + padding-right: 0.5rem; +} +.ltr\:hx-pr-4:where([dir="ltr"], [dir="ltr"] *) { + padding-right: 1rem; +} +.ltr\:hx-pr-9:where([dir="ltr"], [dir="ltr"] *) { + padding-right: 2.25rem; +} +.ltr\:hx-text-right:where([dir="ltr"], [dir="ltr"] *) { + text-align: right; +} +.ltr\:before\:hx-left-0:where([dir="ltr"], [dir="ltr"] *)::before { + content: var(--tw-content); + left: 0px; +} +@media (min-width: 768px) { + + .ltr\:md\:hx-left-auto:where([dir="ltr"], [dir="ltr"] *) { + left: auto; + } +} +.rtl\:hx-left-1\.5:where([dir="rtl"], [dir="rtl"] *) { + left: 0.375rem; +} +.rtl\:hx-left-3:where([dir="rtl"], [dir="rtl"] *) { + left: 0.75rem; +} +.rtl\:hx--ml-4:where([dir="rtl"], [dir="rtl"] *) { + margin-left: -1rem; +} +.rtl\:hx-ml-auto:where([dir="rtl"], [dir="rtl"] *) { + margin-left: auto; +} +.rtl\:hx-mr-1:where([dir="rtl"], [dir="rtl"] *) { + margin-right: 0.25rem; +} +.rtl\:hx-mr-3:where([dir="rtl"], [dir="rtl"] *) { + margin-right: 0.75rem; +} +.rtl\:hx-mr-auto:where([dir="rtl"], [dir="rtl"] *) { + margin-right: auto; +} +.rtl\:-hx-rotate-180:where([dir="rtl"], [dir="rtl"] *) { + --tw-rotate: -180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.rtl\:hx-border-r:where([dir="rtl"], [dir="rtl"] *) { + border-right-width: 1px; +} +.rtl\:hx-pl-2:where([dir="rtl"], [dir="rtl"] *) { + padding-left: 0.5rem; +} +.rtl\:hx-pl-4:where([dir="rtl"], [dir="rtl"] *) { + padding-left: 1rem; +} +.rtl\:hx-pl-9:where([dir="rtl"], [dir="rtl"] *) { + padding-left: 2.25rem; +} +.rtl\:hx-pr-12:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 3rem; +} +.rtl\:hx-pr-16:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 4rem; +} +.rtl\:hx-pr-3:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 0.75rem; +} +.rtl\:hx-pr-4:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 1rem; +} +.rtl\:hx-pr-5:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 1.25rem; +} +.rtl\:hx-pr-6:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 1.5rem; +} +.rtl\:hx-pr-8:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 2rem; +} +.rtl\:hx-text-left:where([dir="rtl"], [dir="rtl"] *) { + text-align: left; +} +.rtl\:before\:hx-right-0:where([dir="rtl"], [dir="rtl"] *)::before { + content: var(--tw-content); + right: 0px; +} +.rtl\:before\:hx-rotate-180:where([dir="rtl"], [dir="rtl"] *)::before { + content: var(--tw-content); + --tw-rotate: 180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +@media (min-width: 768px) { + + .rtl\:md\:hx-right-auto:where([dir="rtl"], [dir="rtl"] *) { + right: auto; + } +} +@media print { + + .print\:hx-hidden { + display: none; + } + + .print\:hx-bg-transparent { + background-color: transparent; + } +} diff --git a/themes/hextra/assets/css/components/badge.css b/themes/hextra/assets/css/components/badge.css new file mode 100644 index 0000000000..ae5d9c5f9e --- /dev/null +++ b/themes/hextra/assets/css/components/badge.css @@ -0,0 +1,3 @@ +.hextra-badge { + @apply hx-inline-flex hx-items-center; +} \ No newline at end of file diff --git a/themes/hextra/assets/css/components/cards.css b/themes/hextra/assets/css/components/cards.css new file mode 100644 index 0000000000..a7704218d7 --- /dev/null +++ b/themes/hextra/assets/css/components/cards.css @@ -0,0 +1,41 @@ +.hextra-cards { + grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - 1rem * 2) / var(--hextra-cards-grid-cols))), 1fr)); +} + +.hextra-card { + position: relative; +} + +.hextra-card img { + user-select: none; +} + +.hextra-card:hover svg { + color: currentColor; +} + +.hextra-card svg { + width: 1.5rem; + color: #00000033; + transition: color 0.3s ease; +} + +.hextra-card p { + margin-top: 0.5rem; + position: relative; +} + +.dark .hextra-card svg { + color: #ffffff66; +} + +.dark .hextra-card:hover svg { + color: currentColor; +} + +.hextra-card-tag { + position: absolute; + top: 5px; + right: 5px; + z-index: 10; +} diff --git a/themes/hextra/assets/css/components/code-copy.css b/themes/hextra/assets/css/components/code-copy.css new file mode 100644 index 0000000000..3bd39f0fea --- /dev/null +++ b/themes/hextra/assets/css/components/code-copy.css @@ -0,0 +1,7 @@ +@supports ( + (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) +) { + .hextra-code-copy-btn { + @apply hx-backdrop-blur-md hx-bg-opacity-[.85] dark:hx-bg-opacity-80; + } +} diff --git a/themes/hextra/assets/css/components/hextra/feature-grid.css b/themes/hextra/assets/css/components/hextra/feature-grid.css new file mode 100644 index 0000000000..a81c97b8c2 --- /dev/null +++ b/themes/hextra/assets/css/components/hextra/feature-grid.css @@ -0,0 +1,5 @@ +.hextra-feature-grid { + @media (min-width: 1024px) { + grid-template-columns: repeat(var(--hextra-feature-grid-cols), minmax(0, 1fr)); + } +} diff --git a/themes/hextra/assets/css/components/jupyter.css b/themes/hextra/assets/css/components/jupyter.css new file mode 100644 index 0000000000..839fd8b992 --- /dev/null +++ b/themes/hextra/assets/css/components/jupyter.css @@ -0,0 +1,17 @@ +.hextra-jupyter-code-cell { + scrollbar-gutter: auto; + + @apply hx-mt-6; + + .hextra-jupyter-code-cell-outputs-container { + @apply hx-text-xs hx-overflow-hidden; + + .hextra-jupyter-code-cell-outputs { + @apply hx-overflow-auto hx-max-h-[50vh]; + + pre { + @apply hx-text-xs hx-overflow-auto hx-max-w-full; + } + } + } +} diff --git a/themes/hextra/assets/css/components/navbar.css b/themes/hextra/assets/css/components/navbar.css new file mode 100644 index 0000000000..4e9e385595 --- /dev/null +++ b/themes/hextra/assets/css/components/navbar.css @@ -0,0 +1,55 @@ +nav { + .search-wrapper { + @apply hx-hidden md:hx-inline-block; + } +} + +@supports ( + (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) +) { + .nav-container-blur { + @apply hx-backdrop-blur-md hx-bg-white/[.85] dark:!hx-bg-dark/80; + } +} + +.hamburger-menu svg { + g { + @apply hx-origin-center; + transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1); + } + path { + opacity: 1; + transition: + transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s, + opacity 0.2s ease 0.2s; + } + + &.open { + path { + transition: + transform 0.2s cubic-bezier(0.25, 1, 0.5, 1), + opacity 0s ease 0.2s; + } + g { + transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s; + } + } + + &.open > { + path { + @apply hx-opacity-0; + } + g:nth-of-type(1) { + @apply hx-rotate-45; + path { + transform: translate3d(0, 4px, 0); + } + } + g:nth-of-type(2) { + @apply -hx-rotate-45; + path { + transform: translate3d(0, -4px, 0); + } + } + } +} diff --git a/themes/hextra/assets/css/components/scrollbar.css b/themes/hextra/assets/css/components/scrollbar.css new file mode 100644 index 0000000000..6699375eff --- /dev/null +++ b/themes/hextra/assets/css/components/scrollbar.css @@ -0,0 +1,21 @@ +.hextra-scrollbar, .hextra-scrollbar * { + scrollbar-width: thin; /* Firefox */ + scrollbar-color: oklch(55.55% 0 0 / 40%) transparent; /* Firefox */ + + scrollbar-gutter: stable; + &::-webkit-scrollbar { + @apply hx-w-3 hx-h-3; + } + &::-webkit-scrollbar-track { + @apply hx-bg-transparent; + } + &::-webkit-scrollbar-thumb { + @apply hx-rounded-[10px]; + } + &:hover::-webkit-scrollbar-thumb { + border: 3px solid transparent; + background-color: var(--tw-shadow-color); + background-clip: content-box; + @apply hx-shadow-neutral-500/20 hover:hx-shadow-neutral-500/40; + } +} diff --git a/themes/hextra/assets/css/components/search.css b/themes/hextra/assets/css/components/search.css new file mode 100644 index 0000000000..3d508bc31e --- /dev/null +++ b/themes/hextra/assets/css/components/search.css @@ -0,0 +1,38 @@ +.search-wrapper { + li { + @apply hx-mx-2.5 hx-break-words hx-rounded-md contrast-more:hx-border hx-text-gray-800 contrast-more:hx-border-transparent dark:hx-text-gray-300; + a { + @apply hx-block hx-scroll-m-12 hx-px-2.5 hx-py-2; + } + + .title { + @apply hx-text-base hx-font-semibold hx-leading-5; + } + + .active { + @apply hx-rounded-md hx-bg-primary-500/10 contrast-more:hx-border-primary-500; + } + } + + .no-result { + @apply hx-block hx-select-none hx-p-8 hx-text-center hx-text-sm hx-text-gray-400; + } + + .prefix { + @apply hx-mx-2.5 hx-mb-2 hx-mt-6 hx-select-none hx-border-b hx-border-black/10 hx-px-2.5 hx-pb-1.5 hx-text-xs hx-font-semibold + hx-uppercase hx-text-gray-500 first:hx-mt-0 dark:hx-border-white/20 dark:hx-text-gray-300 contrast-more:hx-border-gray-600 + contrast-more:hx-text-gray-900 contrast-more:dark:hx-border-gray-50 contrast-more:dark:hx-text-gray-50; + } + + .excerpt { + @apply hx-overflow-hidden hx-text-ellipsis hx-mt-1 hx-text-sm hx-leading-[1.35rem] hx-text-gray-600 dark:hx-text-gray-400 contrast-more:dark:hx-text-gray-50; + display: -webkit-box; + line-clamp: 1; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + } + + .match { + @apply hx-text-primary-600; + } +} diff --git a/themes/hextra/assets/css/components/sidebar.css b/themes/hextra/assets/css/components/sidebar.css new file mode 100644 index 0000000000..394c8d636b --- /dev/null +++ b/themes/hextra/assets/css/components/sidebar.css @@ -0,0 +1,21 @@ +@media (max-width: 767px) { + .sidebar-container { + @apply hx-fixed hx-pt-[calc(var(--navbar-height))] hx-top-0 hx-w-full hx-bottom-0 hx-z-[15] hx-overscroll-contain hx-bg-white dark:hx-bg-dark; + transition: transform 0.8s cubic-bezier(0.52, 0.16, 0.04, 1); + will-change: transform, opacity; + contain: layout style; + backface-visibility: hidden; + } +} + +.sidebar-container { + li > div { + @apply hx-h-0; + } + li.open > div { + @apply hx-h-auto hx-pt-1; + } + li.open > a > span > svg > path { + @apply hx-rotate-90; + } +} diff --git a/themes/hextra/assets/css/components/steps.css b/themes/hextra/assets/css/components/steps.css new file mode 100644 index 0000000000..ed3ad8db63 --- /dev/null +++ b/themes/hextra/assets/css/components/steps.css @@ -0,0 +1,17 @@ +.steps h3 { + counter-increment: step; + + &:before { + @apply hx-absolute hx-w-[33px] hx-h-[33px]; + @apply hx-border-4 hx-border-white hx-bg-gray-100 dark:hx-border-dark dark:hx-bg-neutral-800; + @apply hx-rounded-full hx-text-neutral-400 hx-text-base hx-font-normal hx-text-center -hx-indent-px; + @apply hx-mt-[3px] ltr:hx-ml-[-41px] rtl:hx-mr-[-44px]; + content: counter(step); + } +} + +:lang(fa) .steps h3 { + &:before { + content: counter(step, persian); + } +} diff --git a/themes/hextra/assets/css/custom.css b/themes/hextra/assets/css/custom.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/themes/hextra/assets/css/highlight.css b/themes/hextra/assets/css/highlight.css new file mode 100644 index 0000000000..0ffa52cb46 --- /dev/null +++ b/themes/hextra/assets/css/highlight.css @@ -0,0 +1,53 @@ +/* Code syntax highlight */ +@import "chroma/light.css"; +@import "chroma/dark.css"; + +.hextra-code-block { + @apply hx-text-[.9em] hx-leading-5; + + pre { + @apply hx-text-[.9em] hx-bg-primary-700/5 hx-overflow-x-auto hx-font-medium hx-subpixel-antialiased dark:hx-bg-primary-300/10 contrast-more:hx-border contrast-more:hx-border-primary-900/20 contrast-more:hx-contrast-150 contrast-more:dark:hx-border-primary-100/40; + } + + .filename { + @apply hx-absolute hx-top-0 hx-z-[1] hx-w-full hx-truncate hx-rounded-t-xl hx-bg-primary-700/5 hx-py-2 hx-px-4 hx-text-xs hx-text-gray-700 dark:hx-bg-primary-300/10 dark:hx-text-gray-200; + } + + .filename + pre:not(.lntable pre) { + /* Override padding for code blocks with filename but no highlight */ + @apply hx-pt-12; + } +} + +.hextra-code-block pre:not(.lntable pre) { + @apply hx-px-4 hx-mb-4 hx-py-4 hx-rounded-xl; +} + +.hextra-code-block div:nth-of-type(2) pre { + @apply hx-pt-12 hx-pb-4; +} + +.chroma { + .lntable { + @apply hx-m-0 hx-block hx-w-auto hx-overflow-auto hx-rounded-xl; + + pre { + @apply hx-pt-4 hx-pb-4; + } + } + .ln, + .lnt:not(.hl > .lnt), + .hl:not(.line) { + @apply hx-pl-4 hx-pr-4 hx-min-w-[2.6rem] hx-text-neutral-600 dark:hx-text-neutral-300; + } + .lntd { + @apply hx-p-0 hx-align-top; + } + .lntd:last-of-type { + @apply hx-w-full; + } + /* LineHighlight */ + .hl { + @apply hx-block hx-w-full hx-bg-primary-800/10; + } +} diff --git a/themes/hextra/assets/css/styles.css b/themes/hextra/assets/css/styles.css new file mode 100644 index 0000000000..3ca2fbea04 --- /dev/null +++ b/themes/hextra/assets/css/styles.css @@ -0,0 +1,38 @@ +@import "tailwind.css"; + +@import "typography.css"; +@import "highlight.css"; +@import "components/cards.css"; +@import "components/steps.css"; +@import "components/search.css"; +@import "components/sidebar.css"; +@import "components/navbar.css"; +@import "components/scrollbar.css"; +@import "components/code-copy.css"; +@import "components/hextra/feature-grid.css"; +@import "components/jupyter.css"; +@import "components/badge.css"; + +html { + @apply hx-text-base hx-antialiased; + font-feature-settings: "rlig" 1, "calt" 1, "ss01" 1; + -webkit-tap-highlight-color: transparent; +} + +body { + @apply hx-w-full hx-bg-white dark:hx-bg-dark dark:hx-text-gray-100; +} + +:root { + --primary-hue: 212deg; + --primary-saturation: 100%; + --primary-lightness: 50%; + --navbar-height: 4rem; + --menu-height: 3.75rem; +} + +.dark { + --primary-hue: 204deg; + --primary-saturation: 100%; + --primary-lightness: 50%; +} diff --git a/themes/hextra/assets/css/tailwind.css b/themes/hextra/assets/css/tailwind.css new file mode 100644 index 0000000000..b5c61c9567 --- /dev/null +++ b/themes/hextra/assets/css/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/themes/hextra/assets/css/typography.css b/themes/hextra/assets/css/typography.css new file mode 100644 index 0000000000..56072df399 --- /dev/null +++ b/themes/hextra/assets/css/typography.css @@ -0,0 +1,133 @@ +.content { + :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-2 hx-text-4xl hx-font-bold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100; + } + :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-10 hx-border-b hx-pb-1 hx-text-3xl hx-border-neutral-200/70 contrast-more:hx-border-neutral-400 dark:hx-border-primary-100/10 contrast-more:dark:hx-border-neutral-400; + } + :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-2xl; + } + :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-xl; + } + :where(h5):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-lg; + } + :where(h6):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-font-semibold hx-tracking-tight hx-text-slate-900 dark:hx-text-slate-100 hx-mt-8 hx-text-base; + } + :where(p):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-6 hx-leading-7 first:hx-mt-0; + } + :where(a):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-text-primary-600 hx-underline hx-decoration-from-font [text-underline-position:from-font]; + } + :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-6 hx-border-gray-300 hx-italic hx-text-gray-700 dark:hx-border-gray-700 dark:hx-text-gray-400 first:hx-mt-0 ltr:hx-border-l-2 ltr:hx-pl-6 rtl:hx-border-r-2 rtl:hx-pr-6; + } + :where(pre):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) { + @apply hx-bg-primary-700/5 hx-mb-4 hx-overflow-x-auto hx-rounded-xl hx-font-medium hx-subpixel-antialiased dark:hx-bg-primary-300/10 hx-text-[.9em] contrast-more:hx-border contrast-more:hx-border-primary-900/20 contrast-more:hx-contrast-150 contrast-more:dark:hx-border-primary-100/40 hx-py-4; + } + :where(code):not(:where(.hextra-code-block code, [class~=not-prose],[class~=not-prose] *)) { + @apply hx-border-black hx-border-opacity-[0.04] hx-bg-opacity-[0.03] hx-bg-black hx-break-words hx-rounded-md hx-border hx-py-0.5 hx-px-[.25em] hx-text-[.9em] dark:hx-border-white/10 dark:hx-bg-white/10; + } + :where(table):not(:where(.hextra-code-block table, [class~=not-prose],[class~=not-prose] *)) { + @apply hx-block hx-overflow-x-auto hx-mt-6 hx-p-0 first:hx-mt-0; + + tr { + @apply hx-m-0 hx-border-t hx-border-gray-300 hx-p-0 dark:hx-border-gray-600 even:hx-bg-gray-100 even:dark:hx-bg-gray-600/20; + } + th { + @apply hx-m-0 hx-border hx-border-gray-300 hx-px-4 hx-py-2 hx-font-semibold dark:hx-border-gray-600; + } + td { + @apply hx-m-0 hx-border hx-border-gray-300 hx-px-4 hx-py-2 dark:hx-border-gray-600; + } + } + :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-6 hx-list-decimal first:hx-mt-0 ltr:hx-ml-6 rtl:hx-mr-6; + li { + @apply hx-my-2; + } + } + :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-6 hx-list-disc first:hx-mt-0 ltr:hx-ml-6 rtl:hx-mr-6; + li { + @apply hx-my-2; + } + } + /* This CSS rule targets the first nested unordered (ul) or ordered (ol) list + inside the list item (li) of any parent ul or ol. + The rule sets the top margin of the selected list to zero. */ + :where(ul, ol) > li > :where(ul, ol):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mt-0; + } + :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-border-black hx-border-opacity-[0.04] hx-bg-opacity-[0.03] hx-bg-black hx-break-words hx-rounded-md hx-border hx-py-0.5 hx-px-[.25em] hx-text-[.9em] dark:hx-border-white/10 dark:hx-bg-white/10; + } + :where(pre.mermaid):not(:where(.hextra-code-block pre, [class~=not-prose],[class~=not-prose] *)) { + @apply hx-bg-transparent hx-rounded-none dark:hx-bg-transparent; + } + :where(img):not(:where([class~=not-prose],[class~=not-prose] *)) { + @apply hx-mx-auto hx-my-4 hx-rounded-md; + } + :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) { + figcaption { + @apply hx-text-sm hx-text-gray-500 dark:hx-text-gray-400 hx-mt-2 hx-block hx-text-center; + } + } + /* Definition list */ + :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)) { + dt { + @apply hx-mt-6 hx-font-semibold; + } + dd { + @apply hx-my-2 hx-ps-6; + } + } + .footnotes { + @apply hx-mt-12 hx-text-sm; + } +} + +.subheading-anchor { + @apply hx-opacity-0 hx-transition-opacity ltr:hx-ml-1 rtl:hx-mr-1; + + span:target + &, + :hover > &, + &:focus { + @apply hx-opacity-100; + } + + span + &, + :hover > & { + @apply !hx-no-underline; + } + + &:after { + @apply hx-content-['#'] hx-px-1; + @apply hx-text-gray-300 dark:hx-text-neutral-700; + span:target + & { + @apply hx-text-gray-400; + @apply dark:hx-text-neutral-500; + } + } +} + +article details > summary { + &::-webkit-details-marker { + @apply hx-hidden; + } + &::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='hx-h-5 hx-w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E"); + height: 1.2em; + width: 1.2em; + vertical-align: -4px; + padding: 0 0.6em; + } +} + +:lang(fa) ol { + list-style-type: persian; +} diff --git a/themes/hextra/assets/js/back-to-top.js b/themes/hextra/assets/js/back-to-top.js new file mode 100644 index 0000000000..8b7a64e7d4 --- /dev/null +++ b/themes/hextra/assets/js/back-to-top.js @@ -0,0 +1,22 @@ +// Back to top button + +document.addEventListener("DOMContentLoaded", function () { + const backToTop = document.querySelector("#backToTop"); + if (backToTop) { + document.addEventListener("scroll", (e) => { + if (window.scrollY > 300) { + backToTop.classList.remove("hx-opacity-0"); + } else { + backToTop.classList.add("hx-opacity-0"); + } + }); + } +}); + +function scrollUp() { + window.scroll({ + top: 0, + left: 0, + behavior: "smooth", + }); +} diff --git a/themes/hextra/assets/js/code-copy.js b/themes/hextra/assets/js/code-copy.js new file mode 100644 index 0000000000..df51659327 --- /dev/null +++ b/themes/hextra/assets/js/code-copy.js @@ -0,0 +1,66 @@ +// Copy button for code blocks + +document.addEventListener('DOMContentLoaded', function () { + const getCopyIcon = () => { + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.innerHTML = ` + + `; + svg.setAttribute('fill', 'none'); + svg.setAttribute('viewBox', '0 0 24 24'); + svg.setAttribute('stroke', 'currentColor'); + svg.setAttribute('stroke-width', '2'); + return svg; + } + + const getSuccessIcon = () => { + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.innerHTML = ` + + `; + svg.setAttribute('fill', 'none'); + svg.setAttribute('viewBox', '0 0 24 24'); + svg.setAttribute('stroke', 'currentColor'); + svg.setAttribute('stroke-width', '2'); + return svg; + } + + document.querySelectorAll('.hextra-code-copy-btn').forEach(function (button) { + // Add copy and success icons + button.querySelector('.copy-icon')?.appendChild(getCopyIcon()); + button.querySelector('.success-icon')?.appendChild(getSuccessIcon()); + + // Add click event listener for copy button + button.addEventListener('click', function (e) { + e.preventDefault(); + // Get the code target + const target = button.parentElement.previousElementSibling; + let codeElement; + if (target.tagName === 'CODE') { + codeElement = target; + } else { + // Select the last code element in case line numbers are present + const codeElements = target.querySelectorAll('code'); + codeElement = codeElements[codeElements.length - 1]; + } + if (codeElement) { + let code = codeElement.innerText; + // Replace double newlines with single newlines in the innerText + // as each line inside has trailing newline '\n' + if ("lang" in codeElement.dataset) { + code = code.replace(/\n\n/g, '\n'); + } + navigator.clipboard.writeText(code).then(function () { + button.classList.add('copied'); + setTimeout(function () { + button.classList.remove('copied'); + }, 1000); + }).catch(function (err) { + console.error('Failed to copy text: ', err); + }); + } else { + console.error('Target element not found'); + } + }); + }); +}); diff --git a/themes/hextra/assets/js/filetree.js b/themes/hextra/assets/js/filetree.js new file mode 100644 index 0000000000..598c95ea11 --- /dev/null +++ b/themes/hextra/assets/js/filetree.js @@ -0,0 +1,13 @@ +// Script for filetree shortcode collapsing/expanding folders used in the theme +// ====================================================================== +document.addEventListener("DOMContentLoaded", function () { + const folders = document.querySelectorAll(".hextra-filetree-folder"); + folders.forEach(function (folder) { + folder.addEventListener("click", function () { + Array.from(folder.children).forEach(function (el) { + el.dataset.state = el.dataset.state === "open" ? "closed" : "open"; + }); + folder.nextElementSibling.dataset.state = folder.nextElementSibling.dataset.state === "open" ? "closed" : "open"; + }); + }); +}); diff --git a/themes/hextra/assets/js/flexsearch.js b/themes/hextra/assets/js/flexsearch.js new file mode 100644 index 0000000000..80c77410d4 --- /dev/null +++ b/themes/hextra/assets/js/flexsearch.js @@ -0,0 +1,427 @@ +// Search functionality using FlexSearch. + +// Change shortcut key to cmd+k on Mac, iPad or iPhone. +document.addEventListener("DOMContentLoaded", function () { + if (/iPad|iPhone|Macintosh/.test(navigator.userAgent)) { + // select the kbd element under the .search-wrapper class + const keys = document.querySelectorAll(".search-wrapper kbd"); + keys.forEach(key => { + key.innerHTML = 'K'; + }); + } +}); + +// Render the search data as JSON. +// {{ $searchDataFile := printf "%s.search-data.json" .Language.Lang }} +// {{ $searchData := resources.Get "json/search-data.json" | resources.ExecuteAsTemplate $searchDataFile . }} +// {{ if hugo.IsProduction }} +// {{ $searchData := $searchData | minify | fingerprint }} +// {{ end }} +// {{ $noResultsFound := (T "noResultsFound") | default "No results found." }} + +(function () { + const searchDataURL = '{{ $searchData.RelPermalink }}'; + + const inputElements = document.querySelectorAll('.search-input'); + for (const el of inputElements) { + el.addEventListener('focus', init); + el.addEventListener('keyup', search); + el.addEventListener('keydown', handleKeyDown); + el.addEventListener('input', handleInputChange); + } + + const shortcutElements = document.querySelectorAll('.search-wrapper kbd'); + + function setShortcutElementsOpacity(opacity) { + shortcutElements.forEach(el => { + el.style.opacity = opacity; + }); + } + + function handleInputChange(e) { + const opacity = e.target.value.length > 0 ? 0 : 100; + setShortcutElementsOpacity(opacity); + } + + // Get the search wrapper, input, and results elements. + function getActiveSearchElement() { + const inputs = Array.from(document.querySelectorAll('.search-wrapper')).filter(el => el.clientHeight > 0); + if (inputs.length === 1) { + return { + wrapper: inputs[0], + inputElement: inputs[0].querySelector('.search-input'), + resultsElement: inputs[0].querySelector('.search-results') + }; + } + return undefined; + } + + const INPUTS = ['input', 'select', 'button', 'textarea'] + + // Focus the search input when pressing ctrl+k/cmd+k or /. + document.addEventListener('keydown', function (e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const activeElement = document.activeElement; + const tagName = activeElement && activeElement.tagName; + if ( + inputElement === activeElement || + !tagName || + INPUTS.includes(tagName) || + (activeElement && activeElement.isContentEditable)) + return; + + if ( + e.key === '/' || + (e.key === 'k' && + (e.metaKey /* for Mac */ || /* for non-Mac */ e.ctrlKey)) + ) { + e.preventDefault(); + inputElement.focus(); + } else if (e.key === 'Escape' && inputElement.value) { + inputElement.blur(); + } + }); + + // Dismiss the search results when clicking outside the search box. + document.addEventListener('mousedown', function (e) { + const { inputElement, resultsElement } = getActiveSearchElement(); + if (!inputElement || !resultsElement) return; + if ( + e.target !== inputElement && + e.target !== resultsElement && + !resultsElement.contains(e.target) + ) { + setShortcutElementsOpacity(100); + hideSearchResults(); + } + }); + + // Get the currently active result and its index. + function getActiveResult() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return { result: undefined, index: -1 }; + + const result = resultsElement.querySelector('.active'); + if (!result) return { result: undefined, index: -1 }; + + const index = parseInt(result.dataset.index, 10); + return { result, index }; + } + + // Set the active result by index. + function setActiveResult(index) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + const { result: activeResult } = getActiveResult(); + activeResult && activeResult.classList.remove('active'); + const result = resultsElement.querySelector(`[data-index="${index}"]`); + if (result) { + result.classList.add('active'); + result.focus(); + } + } + + // Get the number of search results from the DOM. + function getResultsLength() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return 0; + return resultsElement.dataset.count; + } + + // Finish the search by hiding the results and clearing the input. + function finishSearch() { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + hideSearchResults(); + inputElement.value = ''; + inputElement.blur(); + } + + function hideSearchResults() { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + resultsElement.classList.add('hx-hidden'); + } + + // Handle keyboard events. + function handleKeyDown(e) { + const { inputElement } = getActiveSearchElement(); + if (!inputElement) return; + + const resultsLength = getResultsLength(); + const { result: activeResult, index: activeIndex } = getActiveResult(); + + switch (e.key) { + case 'ArrowUp': + e.preventDefault(); + if (activeIndex > 0) setActiveResult(activeIndex - 1); + break; + case 'ArrowDown': + e.preventDefault(); + if (activeIndex + 1 < resultsLength) setActiveResult(activeIndex + 1); + break; + case 'Enter': + e.preventDefault(); + if (activeResult) { + activeResult.click(); + } + finishSearch(); + case 'Escape': + e.preventDefault(); + hideSearchResults(); + // Clear the input when pressing escape + inputElement.value = ''; + inputElement.dispatchEvent(new Event('input')); + // Remove focus from the input + inputElement.blur(); + break; + } + } + + // Initializes the search. + function init(e) { + e.target.removeEventListener('focus', init); + if (!(window.pageIndex && window.sectionIndex)) { + preloadIndex(); + } + } + + /** + * Preloads the search index by fetching data and adding it to the FlexSearch index. + * @returns {Promise} A promise that resolves when the index is preloaded. + */ + async function preloadIndex() { + const tokenize = '{{- site.Params.search.flexsearch.tokenize | default "forward" -}}'; + window.pageIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'crumb'], + index: "content" + } + }); + + window.sectionIndex = new FlexSearch.Document({ + tokenize, + cache: 100, + document: { + id: 'id', + store: ['title', 'content', 'url', 'display', 'crumb'], + index: "content", + tag: 'pageId' + } + }); + + const resp = await fetch(searchDataURL); + const data = await resp.json(); + let pageId = 0; + for (const route in data) { + let pageContent = ''; + ++pageId; + const urlParts = route.split('/').filter(x => x != "" && !x.startsWith('#')); + + let crumb = ''; + let searchUrl = '/' + for (let i = 0; i < urlParts.length; i++) { + const urlPart = urlParts[i]; + searchUrl += urlPart + '/' + + const crumbData = data[searchUrl]; + if (!crumbData) { + console.warn('Excluded page', searchUrl, '- will not be included for search result breadcrumb for', route); + continue; + } + + let title = data[searchUrl].title; + if (title == "_index") { + title = urlPart.split("-").map(x => x).join(" "); + } + crumb += title; + + if (i < urlParts.length - 1) { + crumb += ' > '; + } + } + + for (const heading in data[route].data) { + const [hash, text] = heading.split('#'); + const url = route.trimEnd('/') + (hash ? '#' + hash : ''); + const title = text || data[route].title; + + const content = data[route].data[heading] || ''; + const paragraphs = content.split('\n').filter(Boolean); + + sectionIndex.add({ + id: url, + url, + title, + crumb, + pageId: `page_${pageId}`, + content: title, + ...(paragraphs[0] && { display: paragraphs[0] }) + }); + + for (let i = 0; i < paragraphs.length; i++) { + sectionIndex.add({ + id: `${url}_${i}`, + url, + title, + crumb, + pageId: `page_${pageId}`, + content: paragraphs[i] + }); + } + + pageContent += ` ${title} ${content}`; + } + + window.pageIndex.add({ + id: pageId, + title: data[route].title, + crumb, + content: pageContent + }); + + } + } + + /** + * Performs a search based on the provided query and displays the results. + * @param {Event} e - The event object. + */ + function search(e) { + const query = e.target.value; + if (!e.target.value) { + hideSearchResults(); + return; + } + + const { resultsElement } = getActiveSearchElement(); + while (resultsElement.firstChild) { + resultsElement.removeChild(resultsElement.firstChild); + } + resultsElement.classList.remove('hx-hidden'); + + const pageResults = window.pageIndex.search(query, 5, { enrich: true, suggest: true })[0]?.result || []; + + const results = []; + const pageTitleMatches = {}; + + for (let i = 0; i < pageResults.length; i++) { + const result = pageResults[i]; + pageTitleMatches[i] = 0; + + // Show the top 5 results for each page + const sectionResults = window.sectionIndex.search(query, 5, { enrich: true, suggest: true, tag: `page_${result.id}` })[0]?.result || []; + let isFirstItemOfPage = true + const occurred = {} + + for (let j = 0; j < sectionResults.length; j++) { + const { doc } = sectionResults[j] + const isMatchingTitle = doc.display !== undefined + if (isMatchingTitle) { + pageTitleMatches[i]++ + } + const { url, title } = doc + const content = doc.display || doc.content + + if (occurred[url + '@' + content]) continue + occurred[url + '@' + content] = true + results.push({ + _page_rk: i, + _section_rk: j, + route: url, + prefix: isFirstItemOfPage ? result.doc.crumb : undefined, + children: { title, content } + }) + isFirstItemOfPage = false + } + } + const sortedResults = results + .sort((a, b) => { + // Sort by number of matches in the title. + if (a._page_rk === b._page_rk) { + return a._section_rk - b._section_rk + } + if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) { + return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk] + } + return a._page_rk - b._page_rk + }) + .map(res => ({ + id: `${res._page_rk}_${res._section_rk}`, + route: res.route, + prefix: res.prefix, + children: res.children + })); + displayResults(sortedResults, query); + } + + /** + * Displays the search results on the page. + * + * @param {Array} results - The array of search results. + * @param {string} query - The search query. + */ + function displayResults(results, query) { + const { resultsElement } = getActiveSearchElement(); + if (!resultsElement) return; + + if (!results.length) { + resultsElement.innerHTML = `{{ $noResultsFound | safeHTML }}`; + return; + } + + // Highlight the query in the result text. + function highlightMatches(text, query) { + const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + const regex = new RegExp(escapedQuery, 'gi'); + return text.replace(regex, (match) => `${match}`); + } + + // Create a DOM element from the HTML string. + function createElement(str) { + const div = document.createElement('div'); + div.innerHTML = str.trim(); + return div.firstChild; + } + + function handleMouseMove(e) { + const target = e.target.closest('a'); + if (target) { + const active = resultsElement.querySelector('a.active'); + if (active) { + active.classList.remove('active'); + } + target.classList.add('active'); + } + } + + const fragment = document.createDocumentFragment(); + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.prefix) { + fragment.appendChild(createElement(` +
        ${result.prefix}
        `)); + } + let li = createElement(` +
      • + +
        `+ highlightMatches(result.children.title, query) + `
        ` + + (result.children.content ? + `
        ` + highlightMatches(result.children.content, query) + `
        ` : '') + ` +
        +
      • `); + li.addEventListener('mousemove', handleMouseMove); + li.addEventListener('keydown', handleKeyDown); + li.querySelector('a').addEventListener('click', finishSearch); + fragment.appendChild(li); + } + resultsElement.appendChild(fragment); + resultsElement.dataset.count = results.length; + } +})(); diff --git a/themes/hextra/assets/js/lang.js b/themes/hextra/assets/js/lang.js new file mode 100644 index 0000000000..159de3d016 --- /dev/null +++ b/themes/hextra/assets/js/lang.js @@ -0,0 +1,28 @@ +(function () { + const languageSwitchers = document.querySelectorAll('.language-switcher'); + languageSwitchers.forEach((switcher) => { + switcher.addEventListener('click', (e) => { + e.preventDefault(); + switcher.dataset.state = switcher.dataset.state === 'open' ? 'closed' : 'open'; + const optionsElement = switcher.nextElementSibling; + optionsElement.classList.toggle('hx-hidden'); + + // Calculate position of language options element + const switcherRect = switcher.getBoundingClientRect(); + const translateY = switcherRect.top - window.innerHeight - 15; + optionsElement.style.transform = `translate3d(${switcherRect.left}px, ${translateY}px, 0)`; + optionsElement.style.minWidth = `${Math.max(switcherRect.width, 50)}px`; + }); + }); + + // Dismiss language switcher when clicking outside + document.addEventListener('click', (e) => { + if (e.target.closest('.language-switcher') === null) { + languageSwitchers.forEach((switcher) => { + switcher.dataset.state = 'closed'; + const optionsElement = switcher.nextElementSibling; + optionsElement.classList.add('hx-hidden'); + }); + } + }); +})(); diff --git a/themes/hextra/assets/js/menu.js b/themes/hextra/assets/js/menu.js new file mode 100644 index 0000000000..9191b057fa --- /dev/null +++ b/themes/hextra/assets/js/menu.js @@ -0,0 +1,49 @@ +// Hamburger menu for mobile navigation + +document.addEventListener('DOMContentLoaded', function () { + const menu = document.querySelector('.hamburger-menu'); + const overlay = document.querySelector('.mobile-menu-overlay'); + const sidebarContainer = document.querySelector('.sidebar-container'); + + // Initialize the overlay + const overlayClasses = ['hx-fixed', 'hx-inset-0', 'hx-z-10', 'hx-bg-black/80', 'dark:hx-bg-black/60']; + overlay.classList.add('hx-bg-transparent'); + overlay.classList.remove("hx-hidden", ...overlayClasses); + + function toggleMenu() { + // Toggle the hamburger menu + menu.querySelector('svg').classList.toggle('open'); + + // When the menu is open, we want to show the navigation sidebar + sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,-100%,0)]'); + sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,0,0)]'); + + // When the menu is open, we want to prevent the body from scrolling + document.body.classList.toggle('hx-overflow-hidden'); + document.body.classList.toggle('md:hx-overflow-auto'); + } + + menu.addEventListener('click', (e) => { + e.preventDefault(); + toggleMenu(); + + if (overlay.classList.contains('hx-bg-transparent')) { + // Show the overlay + overlay.classList.add(...overlayClasses); + overlay.classList.remove('hx-bg-transparent'); + } else { + // Hide the overlay + overlay.classList.remove(...overlayClasses); + overlay.classList.add('hx-bg-transparent'); + } + }); + + overlay.addEventListener('click', (e) => { + e.preventDefault(); + toggleMenu(); + + // Hide the overlay + overlay.classList.remove(...overlayClasses); + overlay.classList.add('hx-bg-transparent'); + }); +}); diff --git a/themes/hextra/assets/js/sidebar.js b/themes/hextra/assets/js/sidebar.js new file mode 100644 index 0000000000..65f7b15f0f --- /dev/null +++ b/themes/hextra/assets/js/sidebar.js @@ -0,0 +1,36 @@ +document.addEventListener("DOMContentLoaded", function () { + scrollToActiveItem(); + enableCollapsibles(); +}); + +function enableCollapsibles() { + const buttons = document.querySelectorAll(".hextra-sidebar-collapsible-button"); + buttons.forEach(function (button) { + button.addEventListener("click", function (e) { + e.preventDefault(); + const list = button.parentElement.parentElement; + if (list) { + list.classList.toggle("open") + } + }); + }); +} + +function scrollToActiveItem() { + const sidebarScrollbar = document.querySelector("aside.sidebar-container > .hextra-scrollbar"); + const activeItems = document.querySelectorAll(".sidebar-active-item"); + const visibleActiveItem = Array.from(activeItems).find(function (activeItem) { + return activeItem.getBoundingClientRect().height > 0; + }); + + if (!visibleActiveItem) { + return; + } + + const yOffset = visibleActiveItem.clientHeight; + const yDistance = visibleActiveItem.getBoundingClientRect().top - sidebarScrollbar.getBoundingClientRect().top; + sidebarScrollbar.scrollTo({ + behavior: "instant", + top: yDistance - yOffset + }); +} diff --git a/themes/hextra/assets/js/tabs.js b/themes/hextra/assets/js/tabs.js new file mode 100644 index 0000000000..b8d7937c44 --- /dev/null +++ b/themes/hextra/assets/js/tabs.js @@ -0,0 +1,20 @@ +document.querySelectorAll('.hextra-tabs-toggle').forEach(function (button) { + button.addEventListener('click', function (e) { + // set parent tabs to unselected + const tabs = Array.from(e.target.parentElement.querySelectorAll('.hextra-tabs-toggle')); + tabs.map(tab => tab.dataset.state = ''); + + // set current tab to selected + e.target.dataset.state = 'selected'; + + // set all panels to unselected + const panelsContainer = e.target.parentElement.parentElement.nextElementSibling; + Array.from(panelsContainer.children).forEach(function (panel) { + panel.dataset.state = ''; + }); + + const panelId = e.target.getAttribute('aria-controls'); + const panel = panelsContainer.querySelector(`#${panelId}`); + panel.dataset.state = 'selected'; + }); +}); diff --git a/themes/hextra/assets/js/theme.js b/themes/hextra/assets/js/theme.js new file mode 100644 index 0000000000..66653f28af --- /dev/null +++ b/themes/hextra/assets/js/theme.js @@ -0,0 +1,51 @@ +// Light / Dark theme toggle +(function () { + const defaultTheme = '{{ site.Params.theme.default | default `system`}}' + + const themeToggleButtons = document.querySelectorAll(".theme-toggle"); + + // Change the icons of the buttons based on previous settings or system theme + if ( + localStorage.getItem("color-theme") === "dark" || + (!("color-theme" in localStorage) && + ((window.matchMedia("(prefers-color-scheme: dark)").matches && defaultTheme === "system") || defaultTheme === "dark")) + ) { + themeToggleButtons.forEach((el) => el.dataset.theme = "dark"); + } else { + themeToggleButtons.forEach((el) => el.dataset.theme = "light"); + } + + // Add click event handler to the buttons + themeToggleButtons.forEach((el) => { + el.addEventListener("click", function () { + if (localStorage.getItem("color-theme")) { + if (localStorage.getItem("color-theme") === "light") { + setDarkTheme(); + localStorage.setItem("color-theme", "dark"); + } else { + setLightTheme(); + localStorage.setItem("color-theme", "light"); + } + } else { + if (document.documentElement.classList.contains("dark")) { + setLightTheme(); + localStorage.setItem("color-theme", "light"); + } else { + setDarkTheme(); + localStorage.setItem("color-theme", "dark"); + } + } + el.dataset.theme = document.documentElement.classList.contains("dark") ? "dark" : "light"; + }); + }); + + // Listen for system theme changes + window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (e) => { + if (defaultTheme === "system" && !("color-theme" in localStorage)) { + e.matches ? setDarkTheme() : setLightTheme(); + themeToggleButtons.forEach((el) => + el.dataset.theme = document.documentElement.classList.contains("dark") ? "dark" : "light" + ); + } + }); +})(); diff --git a/themes/hextra/assets/json/search-data.json b/themes/hextra/assets/json/search-data.json new file mode 100644 index 0000000000..23e94ac219 --- /dev/null +++ b/themes/hextra/assets/json/search-data.json @@ -0,0 +1,21 @@ +{{/* FlexSearch Index Data */}} +{{- $indexType := site.Params.search.flexsearch.index | default "content" -}} + +{{- if not (in (slice "content" "summary" "heading" "title" ) $indexType) -}} + {{- errorf "unknown flexsearch index type: %s" $indexType -}} +{{- end -}} + +{{- $pages := where .Site.Pages "Kind" "in" (slice "page" "section") -}} +{{- $pages = where $pages "Params.excludeSearch" "!=" true -}} +{{- $pages = where $pages "Content" "!=" "" -}} + +{{- $output := dict -}} + +{{- range $index, $page := $pages -}} + {{- $pageTitle := $page.LinkTitle | default $page.File.BaseFileName -}} + {{- $pageLink := $page.RelPermalink -}} + {{- $data := partial "utils/fragments" (dict "context" $page "type" $indexType) -}} + {{- $output = $output | merge (dict $pageLink (dict "title" $pageTitle "data" $data)) -}} +{{- end -}} + +{{- $output | jsonify -}} diff --git a/themes/hextra/assets/lib/flexsearch/flexsearch.bundle.min.js b/themes/hextra/assets/lib/flexsearch/flexsearch.bundle.min.js new file mode 100644 index 0000000000..4ebf76ed13 --- /dev/null +++ b/themes/hextra/assets/lib/flexsearch/flexsearch.bundle.min.js @@ -0,0 +1,39 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/flexsearch@0.7.31/dist/flexsearch.bundle.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +/**! + * FlexSearch.js v0.7.31 (Bundle) + * Copyright 2018-2022 Nextapps GmbH + * Author: Thomas Wilkerling + * Licence: Apache-2.0 + * https://github.com/nextapps-de/flexsearch + */ +(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var t;function u(a){return"undefined"!==typeof a?a:!0}function aa(a){const b=Array(a);for(let c=0;c=this.B&&(w||!n[l])){var f=L(q,d,r),g="";switch(this.G){case "full":if(2f;h--)if(h-f>=this.B){var k=L(q,d,r,e,f);g=l.substring(f,h);M(this,n,g,k,a,c)}break}case "reverse":if(1=this.B&&M(this,n, +g,L(q,d,r,e,h),a,c);g=""}case "forward":if(1=this.B&&M(this,n,g,f,a,c);break}default:if(this.C&&(f=Math.min(f/this.C(b,l,r)|0,q-1)),M(this,n,l,f,a,c),w&&1=this.B&&!e[l]){e[l]=1;const p=this.l&&l>f;M(this,m,p?f:l,L(g+(d/2>g?0:1),d,r,h-1,k-1),a,c,p?l:f)}}}}this.m||(this.register[a]=1)}}return this}; +function L(a,b,c,d,e){return c&&1=this.B&&!c[q])if(this.s||f||this.map[q])k[w++]=q,c[q]=1;else return d;a=k;e=a.length}if(!e)return d;b||(b=100);h=this.depth&&1=d)))break;if(n){if(f)return ta(k,d,0);b[b.length]=k;return}}return!c&&k}function ta(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a} +function ua(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}t.contain=function(a){return!!this.register[a]};t.update=function(a,b){return this.remove(a).add(a,b)}; +t.remove=function(a,b){const c=this.register[a];if(c){if(this.m)for(let d=0,e;db||c)e=e.slice(c,c+b);d&&(e=za.call(this,e));return{tag:a,result:e}}}function za(a){const b=Array(a.length);for(let c=0,d;ce.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;r=e.search(a),-1!==r;){r>0&&(o.push({type:"text",data:e.slice(0,r)}),e=e.slice(r));const a=t.findIndex((t=>e.startsWith(t.left)));if(r=n(t[a].right,e,t[a].left.length),-1===r)break;const l=e.slice(0,r+t[a].right.length),s=i.test(l)?l:e.slice(t[a].left.length,r);o.push({type:"math",data:s,rawData:l,display:t[a].display}),e=e.slice(r+t[a].right.length)}return""!==e&&o.push({type:"text",data:e}),o};const l=function(e,n){const r=a(e,n.delimiters);if(1===r.length&&"text"===r[0].type)return null;const o=document.createDocumentFragment();for(let e=0;e-1===e.indexOf(" "+t+" ")))&&s(r,t)}}};var d=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},s(e,n)}}(),o=o.default}()})); \ No newline at end of file diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.ttf new file mode 100644 index 0000000000..c6f9a5e7c0 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff new file mode 100644 index 0000000000..b804d7b33a Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000000..0acaaff03d Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_AMS-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf new file mode 100644 index 0000000000..9ff4a5e044 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff new file mode 100644 index 0000000000..9759710d1d Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000000..f390922ece Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf new file mode 100644 index 0000000000..f522294ff0 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff new file mode 100644 index 0000000000..9bdd534fd2 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000000..75344a1f98 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf new file mode 100644 index 0000000000..4e98259c3b Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff new file mode 100644 index 0000000000..e7730f6627 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000000..395f28beac Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf new file mode 100644 index 0000000000..b8461b275f Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff new file mode 100644 index 0000000000..acab069f90 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 0000000000..735f6948d6 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.ttf new file mode 100644 index 0000000000..4060e627dc Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff new file mode 100644 index 0000000000..f38136ac1c Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 0000000000..ab2ad21da6 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Bold.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf new file mode 100644 index 0000000000..dc007977ee Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff new file mode 100644 index 0000000000..67807b0bd4 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 0000000000..5931794de4 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.ttf new file mode 100644 index 0000000000..0e9b0f354a Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff new file mode 100644 index 0000000000..6f43b594b6 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000000..b50920e138 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Italic.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.ttf new file mode 100644 index 0000000000..dd45e1ed2e Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff new file mode 100644 index 0000000000..21f5812968 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000000..eb24a7ba28 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf new file mode 100644 index 0000000000..728ce7a1e2 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff new file mode 100644 index 0000000000..0ae390d74c Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000000..29657023ad Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.ttf new file mode 100644 index 0000000000..70d559b4e9 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff new file mode 100644 index 0000000000..eb5159d4c1 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000000..215c143fd7 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf new file mode 100644 index 0000000000..2f65a8a3a6 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff new file mode 100644 index 0000000000..8d47c02d94 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000000..cfaa3bda59 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf new file mode 100644 index 0000000000..d5850df98e Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff new file mode 100644 index 0000000000..7e02df9636 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000000..349c06dc60 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf new file mode 100644 index 0000000000..537279f6bd Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff new file mode 100644 index 0000000000..31b84829b4 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 0000000000..a90eea85f6 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.ttf new file mode 100644 index 0000000000..fd679bf374 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff new file mode 100644 index 0000000000..0e7da821ee Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000000..b3048fc115 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.ttf new file mode 100644 index 0000000000..871fd7d19d Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff new file mode 100644 index 0000000000..7f292d9118 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 0000000000..c5a8462fbf Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size1-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.ttf new file mode 100644 index 0000000000..7a212caf91 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff new file mode 100644 index 0000000000..d241d9be2d Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 0000000000..e1bccfe240 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size2-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.ttf new file mode 100644 index 0000000000..00bff3495f Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff new file mode 100644 index 0000000000..e6e9b658dc Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 0000000000..249a286622 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size3-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.ttf new file mode 100644 index 0000000000..74f08921f0 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff new file mode 100644 index 0000000000..e1ec545766 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 0000000000..680c130850 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Size4-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf new file mode 100644 index 0000000000..c83252c571 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff new file mode 100644 index 0000000000..2432419f28 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff differ diff --git a/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000000..771f1af705 Binary files /dev/null and b/themes/hextra/assets/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/themes/hextra/assets/lib/katex/katex.min.css b/themes/hextra/assets/lib/katex/katex.min.css new file mode 100644 index 0000000000..b5337aae64 --- /dev/null +++ b/themes/hextra/assets/lib/katex/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.10"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/themes/hextra/assets/lib/katex/katex.min.js b/themes/hextra/assets/lib/katex/katex.min.js new file mode 100644 index 0000000000..e701cfde7c --- /dev/null +++ b/themes/hextra/assets/lib/katex/katex.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Yn}});class r{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;let n,o,s="KaTeX parse error: "+e;const i=t&&t.loc;if(i&&i.start<=i.end){const e=i.lexer.input;n=i.start,o=i.end,n===e.length?s+=" at end of input: ":s+=" at position "+(n+1)+": ";const t=e.slice(n,o).replace(/[^]/g,"$&\u0332");let r,a;r=n>15?"\u2026"+e.slice(n-15,n):e.slice(0,n),a=o+15":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;const a=function(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?a(e.body[0]):e:"font"===e.type?a(e.body):e};var l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(i,(e=>s[e]))},hyphenate:function(e){return e.replace(o,"-$1").toLowerCase()},getBaseElem:a,isCharacterBox:function(e){const t=a(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){const t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?":"!==t[2]?null:/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}};const h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;const t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class m{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(const t in h)if(h.hasOwnProperty(t)){const r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:c(r)}}reportNonstrict(e,t,r){let o=this.strict;if("function"==typeof o&&(o=o(e,t,r)),o&&"ignore"!==o){if(!0===o||"error"===o)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===o?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+o+"': "+t+" ["+e+"]")}}useStrictBehavior(e,t,r){let n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))}isTrusted(e){if(e.url&&!e.protocol){const t=l.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}const t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)}}class p{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return u[d[this.id]]}sub(){return u[g[this.id]]}fracNum(){return u[f[this.id]]}fracDen(){return u[b[this.id]]}cramp(){return u[y[this.id]]}text(){return u[x[this.id]]}isTight(){return this.size>=2}}const u=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],d=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],f=[2,3,4,5,6,7,6,7],b=[3,3,5,5,7,7,7,7],y=[1,1,3,3,5,5,7,7],x=[0,1,2,3,2,3,2,3];var w={DISPLAY:u[0],TEXT:u[2],SCRIPT:u[4],SCRIPTSCRIPT:u[6]};const v=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];const k=[];function S(e){for(let t=0;t=k[t]&&e<=k[t+1])return!0;return!1}v.forEach((e=>e.blocks.forEach((e=>k.push(...e)))));const M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};class A{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createDocumentFragment();for(let t=0;te.toText())).join("")}}var T={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}};const B={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},C={"\xc5":"A","\xd0":"D","\xde":"o","\xe5":"a","\xf0":"d","\xfe":"o","\u0410":"A","\u0411":"B","\u0412":"B","\u0413":"F","\u0414":"A","\u0415":"E","\u0416":"K","\u0417":"3","\u0418":"N","\u0419":"N","\u041a":"K","\u041b":"N","\u041c":"M","\u041d":"H","\u041e":"O","\u041f":"N","\u0420":"P","\u0421":"C","\u0422":"T","\u0423":"y","\u0424":"O","\u0425":"X","\u0426":"U","\u0427":"h","\u0428":"W","\u0429":"W","\u042a":"B","\u042b":"X","\u042c":"B","\u042d":"3","\u042e":"X","\u042f":"R","\u0430":"a","\u0431":"b","\u0432":"a","\u0433":"r","\u0434":"y","\u0435":"e","\u0436":"m","\u0437":"e","\u0438":"n","\u0439":"n","\u043a":"n","\u043b":"n","\u043c":"m","\u043d":"n","\u043e":"o","\u043f":"n","\u0440":"p","\u0441":"c","\u0442":"o","\u0443":"y","\u0444":"b","\u0445":"x","\u0446":"n","\u0447":"n","\u0448":"w","\u0449":"w","\u044a":"a","\u044b":"m","\u044c":"a","\u044d":"e","\u044e":"m","\u044f":"r"};function N(e,t,r){if(!T[t])throw new Error("Font metrics not found for font: "+t+".");let n=e.charCodeAt(0),o=T[t][n];if(!o&&e[0]in C&&(n=C[e[0]].charCodeAt(0),o=T[t][n]),o||"text"!==r||S(n)&&(o=T[t][77]),o)return{depth:o[0],height:o[1],italic:o[2],skew:o[3],width:o[4]}}const q={};const I=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],R=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],H=function(e,t){return t.size<2?e:I[e-1][t.size-1]};class O{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||O.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=R[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){const t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(const r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new O(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:H(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:R[e-1]})}havingBaseStyle(e){e=e||this.style.text();const t=H(O.BASESIZE,e);return this.size===t&&this.textSize===O.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){let e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==O.BASESIZE?["sizing","reset-size"+this.size,"size"+O.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=function(e){let t;if(t=e>=5?0:e>=3?1:2,!q[t]){const e=q[t]={cssEmPerMu:B.quad[t]/18};for(const r in B)B.hasOwnProperty(r)&&(e[r]=B[r][t])}return q[t]}(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}O.BASESIZE=6;var E=O;const L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},V=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},P=function(e,t){let r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{let o;if(o=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=o.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=o.fontMetrics().quad}o!==t&&(r*=o.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},F=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((e=>e)).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");const e=t.getColor();e&&(this.style.color=e)}},Y=function(e){const t=document.createElement(e);t.className=G(this.classes);for(const e in this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);for(const e in this.attributes)this.attributes.hasOwnProperty(e)&&t.setAttribute(e,this.attributes[e]);for(let e=0;e",t};class W{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return Y.call(this,"span")}toMarkup(){return X.call(this,"span")}}class _{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return Y.call(this,"a")}toMarkup(){return X.call(this,"a")}}class j{constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(const t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){let e=''+l.escape(this.alt)+'=n[0]&&e<=n[1])return r.name}}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createTextNode(this.text);let t=null;this.italic>0&&(t=document.createElement("span"),t.style.marginRight=F(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=G(this.classes));for(const e in this.style)this.style.hasOwnProperty(e)&&(t=t||document.createElement("span"),t.style[e]=this.style[e]);return t?(t.appendChild(e),t):e}toMarkup(){let e=!1,t="0&&(r+="margin-right:"+this.italic+"em;");for(const e in this.style)this.style.hasOwnProperty(e)&&(r+=l.hyphenate(e)+":"+this.style[e]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');const n=l.escape(this.text);return e?(t+=">",t+=n,t+="
        ",t):n}}class K{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(let t=0;t':''}}class Q{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","line");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){let e="","\\gt",!0),se(ie,le,ye,"\u2208","\\in",!0),se(ie,le,ye,"\ue020","\\@not"),se(ie,le,ye,"\u2282","\\subset",!0),se(ie,le,ye,"\u2283","\\supset",!0),se(ie,le,ye,"\u2286","\\subseteq",!0),se(ie,le,ye,"\u2287","\\supseteq",!0),se(ie,he,ye,"\u2288","\\nsubseteq",!0),se(ie,he,ye,"\u2289","\\nsupseteq",!0),se(ie,le,ye,"\u22a8","\\models"),se(ie,le,ye,"\u2190","\\leftarrow",!0),se(ie,le,ye,"\u2264","\\le"),se(ie,le,ye,"\u2264","\\leq",!0),se(ie,le,ye,"<","\\lt",!0),se(ie,le,ye,"\u2192","\\rightarrow",!0),se(ie,le,ye,"\u2192","\\to"),se(ie,he,ye,"\u2271","\\ngeq",!0),se(ie,he,ye,"\u2270","\\nleq",!0),se(ie,le,xe,"\xa0","\\ "),se(ie,le,xe,"\xa0","\\space"),se(ie,le,xe,"\xa0","\\nobreakspace"),se(ae,le,xe,"\xa0","\\ "),se(ae,le,xe,"\xa0"," "),se(ae,le,xe,"\xa0","\\space"),se(ae,le,xe,"\xa0","\\nobreakspace"),se(ie,le,xe,null,"\\nobreak"),se(ie,le,xe,null,"\\allowbreak"),se(ie,le,be,",",","),se(ie,le,be,";",";"),se(ie,he,me,"\u22bc","\\barwedge",!0),se(ie,he,me,"\u22bb","\\veebar",!0),se(ie,le,me,"\u2299","\\odot",!0),se(ie,le,me,"\u2295","\\oplus",!0),se(ie,le,me,"\u2297","\\otimes",!0),se(ie,le,we,"\u2202","\\partial",!0),se(ie,le,me,"\u2298","\\oslash",!0),se(ie,he,me,"\u229a","\\circledcirc",!0),se(ie,he,me,"\u22a1","\\boxdot",!0),se(ie,le,me,"\u25b3","\\bigtriangleup"),se(ie,le,me,"\u25bd","\\bigtriangledown"),se(ie,le,me,"\u2020","\\dagger"),se(ie,le,me,"\u22c4","\\diamond"),se(ie,le,me,"\u22c6","\\star"),se(ie,le,me,"\u25c3","\\triangleleft"),se(ie,le,me,"\u25b9","\\triangleright"),se(ie,le,fe,"{","\\{"),se(ae,le,we,"{","\\{"),se(ae,le,we,"{","\\textbraceleft"),se(ie,le,pe,"}","\\}"),se(ae,le,we,"}","\\}"),se(ae,le,we,"}","\\textbraceright"),se(ie,le,fe,"{","\\lbrace"),se(ie,le,pe,"}","\\rbrace"),se(ie,le,fe,"[","\\lbrack",!0),se(ae,le,we,"[","\\lbrack",!0),se(ie,le,pe,"]","\\rbrack",!0),se(ae,le,we,"]","\\rbrack",!0),se(ie,le,fe,"(","\\lparen",!0),se(ie,le,pe,")","\\rparen",!0),se(ae,le,we,"<","\\textless",!0),se(ae,le,we,">","\\textgreater",!0),se(ie,le,fe,"\u230a","\\lfloor",!0),se(ie,le,pe,"\u230b","\\rfloor",!0),se(ie,le,fe,"\u2308","\\lceil",!0),se(ie,le,pe,"\u2309","\\rceil",!0),se(ie,le,we,"\\","\\backslash"),se(ie,le,we,"\u2223","|"),se(ie,le,we,"\u2223","\\vert"),se(ae,le,we,"|","\\textbar",!0),se(ie,le,we,"\u2225","\\|"),se(ie,le,we,"\u2225","\\Vert"),se(ae,le,we,"\u2225","\\textbardbl"),se(ae,le,we,"~","\\textasciitilde"),se(ae,le,we,"\\","\\textbackslash"),se(ae,le,we,"^","\\textasciicircum"),se(ie,le,ye,"\u2191","\\uparrow",!0),se(ie,le,ye,"\u21d1","\\Uparrow",!0),se(ie,le,ye,"\u2193","\\downarrow",!0),se(ie,le,ye,"\u21d3","\\Downarrow",!0),se(ie,le,ye,"\u2195","\\updownarrow",!0),se(ie,le,ye,"\u21d5","\\Updownarrow",!0),se(ie,le,ge,"\u2210","\\coprod"),se(ie,le,ge,"\u22c1","\\bigvee"),se(ie,le,ge,"\u22c0","\\bigwedge"),se(ie,le,ge,"\u2a04","\\biguplus"),se(ie,le,ge,"\u22c2","\\bigcap"),se(ie,le,ge,"\u22c3","\\bigcup"),se(ie,le,ge,"\u222b","\\int"),se(ie,le,ge,"\u222b","\\intop"),se(ie,le,ge,"\u222c","\\iint"),se(ie,le,ge,"\u222d","\\iiint"),se(ie,le,ge,"\u220f","\\prod"),se(ie,le,ge,"\u2211","\\sum"),se(ie,le,ge,"\u2a02","\\bigotimes"),se(ie,le,ge,"\u2a01","\\bigoplus"),se(ie,le,ge,"\u2a00","\\bigodot"),se(ie,le,ge,"\u222e","\\oint"),se(ie,le,ge,"\u222f","\\oiint"),se(ie,le,ge,"\u2230","\\oiiint"),se(ie,le,ge,"\u2a06","\\bigsqcup"),se(ie,le,ge,"\u222b","\\smallint"),se(ae,le,ue,"\u2026","\\textellipsis"),se(ie,le,ue,"\u2026","\\mathellipsis"),se(ae,le,ue,"\u2026","\\ldots",!0),se(ie,le,ue,"\u2026","\\ldots",!0),se(ie,le,ue,"\u22ef","\\@cdots",!0),se(ie,le,ue,"\u22f1","\\ddots",!0),se(ie,le,we,"\u22ee","\\varvdots"),se(ie,le,ce,"\u02ca","\\acute"),se(ie,le,ce,"\u02cb","\\grave"),se(ie,le,ce,"\xa8","\\ddot"),se(ie,le,ce,"~","\\tilde"),se(ie,le,ce,"\u02c9","\\bar"),se(ie,le,ce,"\u02d8","\\breve"),se(ie,le,ce,"\u02c7","\\check"),se(ie,le,ce,"^","\\hat"),se(ie,le,ce,"\u20d7","\\vec"),se(ie,le,ce,"\u02d9","\\dot"),se(ie,le,ce,"\u02da","\\mathring"),se(ie,le,de,"\ue131","\\@imath"),se(ie,le,de,"\ue237","\\@jmath"),se(ie,le,we,"\u0131","\u0131"),se(ie,le,we,"\u0237","\u0237"),se(ae,le,we,"\u0131","\\i",!0),se(ae,le,we,"\u0237","\\j",!0),se(ae,le,we,"\xdf","\\ss",!0),se(ae,le,we,"\xe6","\\ae",!0),se(ae,le,we,"\u0153","\\oe",!0),se(ae,le,we,"\xf8","\\o",!0),se(ae,le,we,"\xc6","\\AE",!0),se(ae,le,we,"\u0152","\\OE",!0),se(ae,le,we,"\xd8","\\O",!0),se(ae,le,ce,"\u02ca","\\'"),se(ae,le,ce,"\u02cb","\\`"),se(ae,le,ce,"\u02c6","\\^"),se(ae,le,ce,"\u02dc","\\~"),se(ae,le,ce,"\u02c9","\\="),se(ae,le,ce,"\u02d8","\\u"),se(ae,le,ce,"\u02d9","\\."),se(ae,le,ce,"\xb8","\\c"),se(ae,le,ce,"\u02da","\\r"),se(ae,le,ce,"\u02c7","\\v"),se(ae,le,ce,"\xa8",'\\"'),se(ae,le,ce,"\u02dd","\\H"),se(ae,le,ce,"\u25ef","\\textcircled");const ve={"--":!0,"---":!0,"``":!0,"''":!0};se(ae,le,we,"\u2013","--",!0),se(ae,le,we,"\u2013","\\textendash"),se(ae,le,we,"\u2014","---",!0),se(ae,le,we,"\u2014","\\textemdash"),se(ae,le,we,"\u2018","`",!0),se(ae,le,we,"\u2018","\\textquoteleft"),se(ae,le,we,"\u2019","'",!0),se(ae,le,we,"\u2019","\\textquoteright"),se(ae,le,we,"\u201c","``",!0),se(ae,le,we,"\u201c","\\textquotedblleft"),se(ae,le,we,"\u201d","''",!0),se(ae,le,we,"\u201d","\\textquotedblright"),se(ie,le,we,"\xb0","\\degree",!0),se(ae,le,we,"\xb0","\\degree"),se(ae,le,we,"\xb0","\\textdegree",!0),se(ie,le,we,"\xa3","\\pounds"),se(ie,le,we,"\xa3","\\mathsterling",!0),se(ae,le,we,"\xa3","\\pounds"),se(ae,le,we,"\xa3","\\textsterling",!0),se(ie,he,we,"\u2720","\\maltese"),se(ae,he,we,"\u2720","\\maltese");const ke='0123456789/@."';for(let e=0;e{if(G(e.classes)!==G(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){const t=e.classes[0];if("mbin"===t||"mord"===t)return!1}for(const r in e.style)if(e.style.hasOwnProperty(r)&&e.style[r]!==t.style[r])return!1;for(const r in t.style)if(t.style.hasOwnProperty(r)&&e.style[r]!==t.style[r])return!1;return!0},Ie=function(e){let t=0,r=0,n=0;for(let o=0;ot&&(t=s.height),s.depth>r&&(r=s.depth),s.maxFontSize>n&&(n=s.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Re=function(e,t,r,n){const o=new W(e,t,r,n);return Ie(o),o},He=(e,t,r,n)=>new W(e,t,r,n),Oe=function(e){const t=new A(e);return Ie(t),t},Ee=function(e,t,r){let n,o="";switch(e){case"amsrm":o="AMS";break;case"textrm":o="Main";break;case"textsf":o="SansSerif";break;case"texttt":o="Typewriter";break;default:o=e}return n="textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular",o+"-"+n},Le={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},De={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]};var Ve={fontMap:Le,makeSymbol:Ne,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Ce(e,"Main-Bold",t).metrics?Ne(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===oe[t][e].font?Ne(e,"Main-Regular",t,r,n):Ne(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Re,makeSvgSpan:He,makeLineSpan:function(e,t,r){const n=Re([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=F(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){const o=new _(e,t,r,n);return Ie(o),o},makeFragment:Oe,wrapFragment:function(e,t){return e instanceof A?Re([],[e],t):e},makeVList:function(e,t){const{children:r,depth:n}=function(e){if("individualShift"===e.positionType){const t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth;let o=n;for(let e=1;e0)return Ne(s,h,o,t,i.concat(c));if(l){let e,n;if("boldsymbol"===l){const t=function(e,t,r,n,o){return"textord"!==o&&Ce(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}}(s,o,0,0,r);e=t.fontName,n=[t.fontClass]}else a?(e=Le[l].fontName,n=[l]):(e=Ee(l,t.fontWeight,t.fontShape),n=[l,t.fontWeight,t.fontShape]);if(Ce(s,e,o).metrics)return Ne(s,e,o,t,i.concat(n));if(ve.hasOwnProperty(s)&&"Typewriter"===e.slice(0,10)){const r=[];for(let a=0;a{const r=Re(["mspace"],[],t),n=P(e,t);return r.style.marginRight=F(n),r},staticSvg:function(e,t){const[r,n,o]=De[e],s=new J(r),i=new K([s],{width:F(n),height:F(o),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+1e3*o,preserveAspectRatio:"xMinYMin"}),a=He(["overlay"],[i],t);return a.height=o,a.style.height=F(o),a.style.width=F(n),a},svgData:De,tryCombineChars:e=>{for(let t=0;t{const r=t.classes[0],n=e.classes[0];"mbin"===r&&l.contains(et,n)?t.classes[0]="mord":"mbin"===n&&l.contains(Qe,r)&&(e.classes[0]="mord")}),{node:i},a,h),ot(o,((e,t)=>{const r=at(t),n=at(e),o=r&&n?e.hasClass("mtight")?Ye[r][n]:Ue[r][n]:null;if(o)return Ve.makeGlue(o,s)}),{node:i},a,h),o},ot=function(e,t,r,n,o){n&&e.push(n);let s=0;for(;sr=>{e.splice(t+1,0,r),s++})(s)}n&&e.pop()},st=function(e){return e instanceof A||e instanceof _||e instanceof W&&e.hasClass("enclosing")?e:null},it=function(e,t){const r=st(e);if(r){const e=r.children;if(e.length){if("right"===t)return it(e[e.length-1],"right");if("left"===t)return it(e[0],"left")}}return e},at=function(e,t){return e?(t&&(e=it(e,t)),rt[e.classes[0]]||null):null},lt=function(e,t){const r=["nulldelimiter"].concat(e.baseSizingClasses());return Je(t.concat(r))},ht=function(e,t,r){if(!e)return Je();if(We[e.type]){let n=We[e.type](e,t);if(r&&t.size!==r.size){n=Je(t.sizingClasses(r),[n],t);const e=t.sizeMultiplier/r.sizeMultiplier;n.height*=e,n.depth*=e}return n}throw new n("Got group of unknown type: '"+e.type+"'")};function ct(e,t){const r=Je(["base"],e,t),n=Je(["strut"]);return n.style.height=F(r.height+r.depth),r.depth&&(n.style.verticalAlign=F(-r.depth)),r.children.unshift(n),r}function mt(e,t){let r=null;1===e.length&&"tag"===e[0].type&&(r=e[0].tag,e=e[0].body);const n=nt(e,t,"root");let o;2===n.length&&n[1].hasClass("tag")&&(o=n.pop());const s=[];let i,a=[];for(let e=0;e0&&(s.push(ct(a,t)),a=[]),s.push(n[e]));a.length>0&&s.push(ct(a,t)),r?(i=ct(nt(r,t,!0)),i.classes=["tag"],s.push(i)):o&&s.push(o);const l=Je(["katex-html"],s);if(l.setAttribute("aria-hidden","true"),i){const e=i.children[0];e.style.height=F(l.height+l.depth),l.depth&&(e.style.verticalAlign=F(-l.depth))}return l}function pt(e){return new A(e)}class ut{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){const e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(let t=0;t0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(let t=0;t",e}toText(){return this.children.map((e=>e.toText())).join("")}}class dt{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return l.escape(this.toText())}toText(){return this.text}}var gt={MathNode:ut,TextNode:dt,SpaceNode:class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}toNode(){if(this.character)return document.createTextNode(this.character);{const e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",F(this.width)),e}}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},newDocumentFragment:pt};const ft=function(e,t,r){return!oe[t][e]||!oe[t][e].replace||55349===e.charCodeAt(0)||ve.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=oe[t][e].replace),new gt.TextNode(e)},bt=function(e){return 1===e.length?e[0]:new gt.MathNode("mrow",e)},yt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";const r=t.font;if(!r||"mathnormal"===r)return null;const n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";let o=e.text;if(l.contains(["\\imath","\\jmath"],o))return null;oe[n][o]&&oe[n][o].replace&&(o=oe[n][o].replace);return N(o,Ve.fontMap[r].fontName,n)?Ve.fontMap[r].variant:null},xt=function(e,t,r){if(1===e.length){const n=vt(e[0],t);return r&&n instanceof ut&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}const n=[];let o;for(let r=0;r0&&(e.text=e.text.slice(0,1)+"\u0338"+e.text.slice(1),n.pop())}}}n.push(s),o=s}return n},wt=function(e,t,r){return bt(xt(e,t,r))},vt=function(e,t){if(!e)return new gt.MathNode("mrow");if(_e[e.type]){return _e[e.type](e,t)}throw new n("Got group of unknown type: '"+e.type+"'")};function kt(e,t,r,n,o){const s=xt(e,r);let i;i=1===s.length&&s[0]instanceof ut&&l.contains(["mrow","mtable"],s[0].type)?s[0]:new gt.MathNode("mrow",s);const a=new gt.MathNode("annotation",[new gt.TextNode(t)]);a.setAttribute("encoding","application/x-tex");const h=new gt.MathNode("semantics",[i,a]),c=new gt.MathNode("math",[h]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");const m=o?"katex":"katex-mathml";return Ve.makeSpan([m],[c])}const St=function(e){return new E({style:e.displayMode?w.DISPLAY:w.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Mt=function(e,t){if(t.displayMode){const r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ve.makeSpan(r,[e])}return e},zt=function(e,t,r){const n=St(r);let o;if("mathml"===r.output)return kt(e,t,n,r.displayMode,!0);if("html"===r.output){const t=mt(e,n);o=Ve.makeSpan(["katex"],[t])}else{const s=kt(e,t,n,r.displayMode,!1),i=mt(e,n);o=Ve.makeSpan(["katex"],[s,i])}return Mt(o,r)};const At={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Tt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]};var Bt=function(e,t,r,n,o){let s;const i=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(s=Ve.makeSpan(["stretchy",t],[],o),"fbox"===t){const e=o.color&&o.getColor();e&&(s.style.borderColor=e)}}else{const e=[];/^[bx]cancel$/.test(t)&&e.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&e.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));const r=new K(e,{width:"100%",height:F(i)});s=Ve.makeSvgSpan([],[r],o)}return s.height=i,s.style.height=F(i),s},Ct=function(e){const t=new gt.MathNode("mo",[new gt.TextNode(At[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Nt=function(e,t){const{span:r,minWidth:n,height:o}=function(){let r=4e5;const n=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){const s="ordgroup"===(o=e.base).type?o.body.length:1;let i,a,l;if(s>5)"widehat"===n||"widecheck"===n?(i=420,r=2364,l=.42,a=n+"4"):(i=312,r=2340,l=.34,a="tilde4");else{const e=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][e],i=[0,239,300,360,420][e],l=[0,.24,.3,.3,.36,.42][e],a=n+e):(r=[0,600,1033,2339,2340][e],i=[0,260,286,306,312][e],l=[0,.26,.286,.3,.306,.34][e],a="tilde"+e)}const h=new J(a),c=new K([h],{width:"100%",height:F(l),viewBox:"0 0 "+r+" "+i,preserveAspectRatio:"none"});return{span:Ve.makeSvgSpan([],[c],t),minWidth:0,height:l}}{const e=[],o=Tt[n],[s,i,a]=o,l=a/1e3,h=s.length;let c,m;if(1===h){c=["hide-tail"],m=[o[3]]}else if(2===h)c=["halfarrow-left","halfarrow-right"],m=["xMinYMin","xMaxYMin"];else{if(3!==h)throw new Error("Correct katexImagesData or update code here to support\n "+h+" children.");c=["brace-left","brace-center","brace-right"],m=["xMinYMin","xMidYMin","xMaxYMin"]}for(let n=0;n0&&(r.style.minWidth=F(n)),r};function qt(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function It(e){const t=Rt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Rt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}const Ht=(e,t)=>{let r,n,o;e&&"supsub"===e.type?(n=qt(e.base,"accent"),r=n.base,e.base=r,o=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(ht(e,t)),e.base=n):(n=qt(e,"accent"),r=n.base);const s=ht(r,t.havingCrampedStyle());let i=0;if(n.isShifty&&l.isCharacterBox(r)){const e=l.getBaseElem(r);i=ee(ht(e,t.havingCrampedStyle())).skew}const a="\\c"===n.label;let h,c=a?s.height+s.depth:Math.min(s.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Nt(n,t),h=Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:i>0?{width:"calc(100% - "+F(2*i)+")",marginLeft:F(2*i)}:void 0}]},t);else{let e,r;"\\vec"===n.label?(e=Ve.staticSvg("vec",t),r=Ve.svgData.vec[1]):(e=Ve.makeOrd({mode:n.mode,text:n.label},t,"textord"),e=ee(e),e.italic=0,r=e.width,a&&(c+=e.depth)),h=Ve.makeSpan(["accent-body"],[e]);const o="\\textcircled"===n.label;o&&(h.classes.push("accent-full"),c=s.height);let l=i;o||(l-=r/2),h.style.left=F(l),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-c},{type:"elem",elem:h}]},t)}const m=Ve.makeSpan(["mord","accent"],[h],t);return o?(o.children[0]=m,o.height=Math.max(m.height,o.height),o.classes[0]="mord",o):m},Ot=(e,t)=>{const r=e.isStretchy?Ct(e.label):new gt.MathNode("mo",[ft(e.label,e.mode)]),n=new gt.MathNode("mover",[vt(e.base,t),r]);return n.setAttribute("accent","true"),n},Et=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((e=>"\\"+e)).join("|"));je({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{const r=Ze(t[0]),n=!Et.test(e.funcName),o=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:o,base:r}},htmlBuilder:Ht,mathmlBuilder:Ot}),je({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{const r=t[0];let n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ht,mathmlBuilder:Ot}),je({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:o}},htmlBuilder:(e,t)=>{const r=ht(e.base,t),n=Nt(e,t),o="\\utilde"===e.label?.12:0,s=Ve.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:o},{type:"elem",elem:r}]},t);return Ve.makeSpan(["mord","accentunder"],[s],t)},mathmlBuilder:(e,t)=>{const r=Ct(e.label),n=new gt.MathNode("munder",[vt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});const Lt=e=>{const t=new gt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};je({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){let{parser:n,funcName:o}=e;return{type:"xArrow",mode:n.mode,label:o,body:t[0],below:r[0]}},htmlBuilder(e,t){const r=t.style;let n=t.havingStyle(r.sup());const o=Ve.wrapFragment(ht(e.body,n,t),t),s="\\x"===e.label.slice(0,2)?"x":"cd";let i;o.classes.push(s+"-arrow-pad"),e.below&&(n=t.havingStyle(r.sub()),i=Ve.wrapFragment(ht(e.below,n,t),t),i.classes.push(s+"-arrow-pad"));const a=Nt(e,t),l=-t.fontMetrics().axisHeight+.5*a.height;let h,c=-t.fontMetrics().axisHeight-.5*a.height-.111;if((o.depth>.25||"\\xleftequilibrium"===e.label)&&(c-=o.depth),i){const e=-t.fontMetrics().axisHeight+i.height+.5*a.height+.111;h=Ve.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:c},{type:"elem",elem:a,shift:l},{type:"elem",elem:i,shift:e}]},t)}else h=Ve.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:c},{type:"elem",elem:a,shift:l}]},t);return h.children[0].children[0].children[1].classes.push("svg-align"),Ve.makeSpan(["mrel","x-arrow"],[h],t)},mathmlBuilder(e,t){const r=Ct(e.label);let n;if(r.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){const o=Lt(vt(e.body,t));if(e.below){const s=Lt(vt(e.below,t));n=new gt.MathNode("munderover",[r,s,o])}else n=new gt.MathNode("mover",[r,o])}else if(e.below){const o=Lt(vt(e.below,t));n=new gt.MathNode("munder",[r,o])}else n=Lt(),n=new gt.MathNode("mover",[r,n]);return n}});const Dt=Ve.makeSpan;function Vt(e,t){const r=nt(e.body,t,!0);return Dt([e.mclass],r,t)}function Pt(e,t){let r;const n=xt(e.body,t);return"minner"===e.mclass?r=new gt.MathNode("mpadded",n):"mord"===e.mclass?e.isCharacterBox?(r=n[0],r.type="mi"):r=new gt.MathNode("mi",n):(e.isCharacterBox?(r=n[0],r.type="mo"):r=new gt.MathNode("mo",n),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}je({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:Ke(o),isCharacterBox:l.isCharacterBox(o)}},htmlBuilder:Vt,mathmlBuilder:Pt});const Ft=e=>{const t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};je({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){let{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:Ft(t[0]),body:Ke(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),je({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){let{parser:r,funcName:n}=e;const o=t[1],s=t[0];let i;i="\\stackrel"!==n?Ft(o):"mrel";const a={type:"op",mode:o.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==n,body:Ke(o)},h={type:"supsub",mode:s.mode,base:a,sup:"\\underset"===n?null:s,sub:"\\underset"===n?s:null};return{type:"mclass",mode:r.mode,mclass:i,body:[h],isCharacterBox:l.isCharacterBox(h)}},htmlBuilder:Vt,mathmlBuilder:Pt}),je({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:Ft(t[0]),body:Ke(t[0])}},htmlBuilder(e,t){const r=nt(e.body,t,!0),n=Ve.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(e,t){const r=xt(e.body,t),n=new gt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});const Gt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Ut=e=>"textord"===e.type&&"@"===e.text;function Yt(e,t,r){const n=Gt[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{const e={type:"atom",text:n,mode:"math",family:"rel"},o={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[e],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[o],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{const e={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[e],[])}default:return{type:"textord",text:" ",mode:"math"}}}je({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder(e,t){const r=t.havingStyle(t.style.sup()),n=Ve.wrapFragment(ht(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=F(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(e,t){let r=new gt.MathNode("mrow",[vt(e.label,t)]);return r=new gt.MathNode("mpadded",[r]),r.setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new gt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),je({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){let{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){const r=Ve.wrapFragment(ht(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(e,t){return new gt.MathNode("mrow",[vt(e.fragment,t)])}}),je({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;const o=qt(t[0],"ordgroup").body;let s="";for(let e=0;e=1114111)throw new n("\\@char with invalid code point "+s);return a<=65535?i=String.fromCharCode(a):(a-=65536,i=String.fromCharCode(55296+(a>>10),56320+(1023&a))),{type:"textord",mode:r.mode,text:i}}});const Xt=(e,t)=>{const r=nt(e.body,t.withColor(e.color),!1);return Ve.makeFragment(r)},Wt=(e,t)=>{const r=xt(e.body,t.withColor(e.color)),n=new gt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};je({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){let{parser:r}=e;const n=qt(t[0],"color-token").color,o=t[1];return{type:"color",mode:r.mode,color:n,body:Ke(o)}},htmlBuilder:Xt,mathmlBuilder:Wt}),je({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){let{parser:r,breakOnTokenText:n}=e;const o=qt(t[0],"color-token").color;r.gullet.macros.set("\\current@color",o);const s=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:o,body:s}},htmlBuilder:Xt,mathmlBuilder:Wt}),je({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){let{parser:n}=e;const o="["===n.gullet.future().text?n.parseSizeGroup(!0):null,s=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:s,size:o&&qt(o,"size").value}},htmlBuilder(e,t){const r=Ve.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=F(P(e.size,t)))),r},mathmlBuilder(e,t){const r=new gt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",F(P(e.size,t)))),r}});const _t={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},jt=e=>{const t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},$t=(e,t,r,n)=>{let o=e.gullet.macros.get(r.text);null==o&&(r.noexpand=!0,o={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,o,n)};je({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){let{parser:t,funcName:r}=e;t.consumeSpaces();const o=t.fetch();if(_t[o.text])return"\\global"!==r&&"\\\\globallong"!==r||(o.text=_t[o.text]),qt(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",o)}}),je({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e,o=t.gullet.popToken();const s=o.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new n("Expected a control sequence",o);let i,a=0;const l=[[]];for(;"{"!==t.gullet.future().text;)if(o=t.gullet.popToken(),"#"===o.text){if("{"===t.gullet.future().text){i=t.gullet.future(),l[a].push("{");break}if(o=t.gullet.popToken(),!/^[1-9]$/.test(o.text))throw new n('Invalid argument number "'+o.text+'"');if(parseInt(o.text)!==a+1)throw new n('Argument number "'+o.text+'" out of order');a++,l.push([])}else{if("EOF"===o.text)throw new n("Expected a macro definition");l[a].push(o.text)}let{tokens:h}=t.gullet.consumeArg();return i&&h.unshift(i),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h),h.reverse()),t.gullet.macros.set(s,{tokens:h,numArgs:a,delimiters:l},r===_t[r]),{type:"internal",mode:t.mode}}}),je({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e;const n=jt(t.gullet.popToken());t.gullet.consumeSpaces();const o=(e=>{let t=e.gullet.popToken();return"="===t.text&&(t=e.gullet.popToken()," "===t.text&&(t=e.gullet.popToken())),t})(t);return $t(t,n,o,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),je({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e;const n=jt(t.gullet.popToken()),o=t.gullet.popToken(),s=t.gullet.popToken();return $t(t,n,s,"\\\\globalfuture"===r),t.gullet.pushToken(s),t.gullet.pushToken(o),{type:"internal",mode:t.mode}}});const Zt=function(e,t,r){const n=N(oe.math[e]&&oe.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},Kt=function(e,t,r,n){const o=r.havingBaseStyle(t),s=Ve.makeSpan(n.concat(o.sizingClasses(r)),[e],r),i=o.sizeMultiplier/r.sizeMultiplier;return s.height*=i,s.depth*=i,s.maxFontSize=o.sizeMultiplier,s},Jt=function(e,t,r){const n=t.havingBaseStyle(r),o=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=F(o),e.height-=o,e.depth+=o},Qt=function(e,t,r,n,o,s){const i=function(e,t,r,n){return Ve.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,o,n),a=Kt(Ve.makeSpan(["delimsizing","size"+t],[i],n),w.TEXT,n,s);return r&&Jt(a,n,w.TEXT),a},er=function(e,t,r){let n;n="Size1-Regular"===t?"delim-size1":"delim-size4";return{type:"elem",elem:Ve.makeSpan(["delimsizinginner",n],[Ve.makeSpan([],[Ve.makeSymbol(e,t,r)])])}},tr=function(e,t,r){const n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],o=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),s=new K([o],{width:F(n),height:F(t),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),i=Ve.makeSvgSpan([],[s],r);return i.height=t,i.style.height=F(t),i.style.width=F(n),{type:"elem",elem:i}},rr={type:"kern",size:-.008},nr=["|","\\lvert","\\rvert","\\vert"],or=["\\|","\\lVert","\\rVert","\\Vert"],sr=function(e,t,r,n,o,s){let i,a,h,c,m="",p=0;i=h=c=e,a=null;let u="Size1-Regular";"\\uparrow"===e?h=c="\u23d0":"\\Uparrow"===e?h=c="\u2016":"\\downarrow"===e?i=h="\u23d0":"\\Downarrow"===e?i=h="\u2016":"\\updownarrow"===e?(i="\\uparrow",h="\u23d0",c="\\downarrow"):"\\Updownarrow"===e?(i="\\Uparrow",h="\u2016",c="\\Downarrow"):l.contains(nr,e)?(h="\u2223",m="vert",p=333):l.contains(or,e)?(h="\u2225",m="doublevert",p=556):"["===e||"\\lbrack"===e?(i="\u23a1",h="\u23a2",c="\u23a3",u="Size4-Regular",m="lbrack",p=667):"]"===e||"\\rbrack"===e?(i="\u23a4",h="\u23a5",c="\u23a6",u="Size4-Regular",m="rbrack",p=667):"\\lfloor"===e||"\u230a"===e?(h=i="\u23a2",c="\u23a3",u="Size4-Regular",m="lfloor",p=667):"\\lceil"===e||"\u2308"===e?(i="\u23a1",h=c="\u23a2",u="Size4-Regular",m="lceil",p=667):"\\rfloor"===e||"\u230b"===e?(h=i="\u23a5",c="\u23a6",u="Size4-Regular",m="rfloor",p=667):"\\rceil"===e||"\u2309"===e?(i="\u23a4",h=c="\u23a5",u="Size4-Regular",m="rceil",p=667):"("===e||"\\lparen"===e?(i="\u239b",h="\u239c",c="\u239d",u="Size4-Regular",m="lparen",p=875):")"===e||"\\rparen"===e?(i="\u239e",h="\u239f",c="\u23a0",u="Size4-Regular",m="rparen",p=875):"\\{"===e||"\\lbrace"===e?(i="\u23a7",a="\u23a8",c="\u23a9",h="\u23aa",u="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(i="\u23ab",a="\u23ac",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(i="\u23a7",c="\u23a9",h="\u23aa",u="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(i="\u23ab",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(i="\u23a7",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(i="\u23ab",c="\u23a9",h="\u23aa",u="Size4-Regular");const d=Zt(i,u,o),g=d.height+d.depth,f=Zt(h,u,o),b=f.height+f.depth,y=Zt(c,u,o),x=y.height+y.depth;let v=0,k=1;if(null!==a){const e=Zt(a,u,o);v=e.height+e.depth,k=2}const S=g+x+v,M=S+Math.max(0,Math.ceil((t-S)/(k*b)))*k*b;let z=n.fontMetrics().axisHeight;r&&(z*=n.sizeMultiplier);const A=M/2-z,T=[];if(m.length>0){const e=M-g-x,t=Math.round(1e3*M),r=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(m,Math.round(1e3*e)),o=new J(m,r),s=(p/1e3).toFixed(3)+"em",i=(t/1e3).toFixed(3)+"em",a=new K([o],{width:s,height:i,viewBox:"0 0 "+p+" "+t}),l=Ve.makeSvgSpan([],[a],n);l.height=t/1e3,l.style.width=s,l.style.height=i,T.push({type:"elem",elem:l})}else{if(T.push(er(c,u,o)),T.push(rr),null===a){const e=M-g-x+.016;T.push(tr(h,e,n))}else{const e=(M-g-x-v)/2+.016;T.push(tr(h,e,n)),T.push(rr),T.push(er(a,u,o)),T.push(rr),T.push(tr(h,e,n))}T.push(rr),T.push(er(i,u,o))}const B=n.havingBaseStyle(w.TEXT),C=Ve.makeVList({positionType:"bottom",positionData:A,children:T},B);return Kt(Ve.makeSpan(["delimsizing","mult"],[C],B),w.TEXT,n,s)},ir=.08,ar=function(e,t,r,n,o){const s=function(e,t,r){t*=1e3;let n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),i=new J(e,s),a=new K([i],{width:"400em",height:F(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ve.makeSvgSpan(["hide-tail"],[a],o)},lr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],hr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],cr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],mr=[0,1.2,1.8,2.4,3],pr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],ur=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"stack"}],dr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],gr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},fr=function(e,t,r,n){for(let o=Math.min(2,3-n.style.size);ot)return r[o]}return r[r.length-1]},br=function(e,t,r,n,o,s){let i;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),i=l.contains(cr,e)?pr:l.contains(lr,e)?dr:ur;const a=fr(e,t,i,n);return"small"===a.type?function(e,t,r,n,o,s){const i=Ve.makeSymbol(e,"Main-Regular",o,n),a=Kt(i,t,n,s);return r&&Jt(a,n,t),a}(e,a.style,r,n,o,s):"large"===a.type?Qt(e,a.size,r,n,o,s):sr(e,t,r,n,o,s)};var yr={sqrtImage:function(e,t){const r=t.havingBaseSizing(),n=fr("\\surd",e*r.sizeMultiplier,dr,r);let o=r.sizeMultiplier;const s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness);let i,a,l=0,h=0,c=0;return"small"===n.type?(c=1e3+1e3*s+80,e<1?o=1:e<1.4&&(o=.7),l=(1+s+ir)/o,h=(1+s)/o,i=ar("sqrtMain",l,c,s,t),i.style.minWidth="0.853em",a=.833/o):"large"===n.type?(c=1080*mr[n.size],h=(mr[n.size]+s)/o,l=(mr[n.size]+s+ir)/o,i=ar("sqrtSize"+n.size,l,c,s,t),i.style.minWidth="1.02em",a=1/o):(l=e+s+ir,h=e+s,c=Math.floor(1e3*e+s)+80,i=ar("sqrtTall",l,c,s,t),i.style.minWidth="0.742em",a=1.056),i.height=h,i.style.height=F(l),{span:i,advanceWidth:a,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,o,s){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(lr,e)||l.contains(cr,e))return Qt(e,t,!1,r,o,s);if(l.contains(hr,e))return sr(e,mr[t],!1,r,o,s);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:mr,customSizedDelim:br,leftRightDelim:function(e,t,r,n,o,s){const i=n.fontMetrics().axisHeight*n.sizeMultiplier,a=5/n.fontMetrics().ptPerEm,l=Math.max(t-i,r+i),h=Math.max(l/500*901,2*l-a);return br(e,h,!0,n,o,s)}};const xr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},wr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function vr(e,t){const r=Rt(e);if(r&&l.contains(wr,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function kr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}je({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{const r=vr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:xr[e.funcName].size,mclass:xr[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>"."===e.delim?Ve.makeSpan([e.mclass]):yr.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{const t=[];"."!==e.delim&&t.push(ft(e.delim,e.mode));const r=new gt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");const n=F(yr.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),je({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:vr(t[0],e).text,color:r}}}),je({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=vr(t[0],e),n=e.parser;++n.leftrightDepth;const o=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);const s=qt(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:o,left:r.text,right:s.delim,rightColor:s.color}},htmlBuilder:(e,t)=>{kr(e);const r=nt(e.body,t,!0,["mopen","mclose"]);let n,o,s=0,i=0,a=!1;for(let e=0;e{kr(e);const r=xt(e.body,t);if("."!==e.left){const t=new gt.MathNode("mo",[ft(e.left,e.mode)]);t.setAttribute("fence","true"),r.unshift(t)}if("."!==e.right){const t=new gt.MathNode("mo",[ft(e.right,e.mode)]);t.setAttribute("fence","true"),e.rightColor&&t.setAttribute("mathcolor",e.rightColor),r.push(t)}return bt(r)}}),je({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=vr(t[0],e);if(!e.parser.leftrightDepth)throw new n("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{let r;if("."===e.delim)r=lt(t,[]);else{r=yr.sizedDelim(e.delim,1,t,e.mode,[]);const n={delim:e.delim,options:t};r.isMiddle=n}return r},mathmlBuilder:(e,t)=>{const r="\\vert"===e.delim||"|"===e.delim?ft("|","text"):ft(e.delim,e.mode),n=new gt.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n}});const Sr=(e,t)=>{const r=Ve.wrapFragment(ht(e.body,t),t),n=e.label.slice(1);let o,s=t.sizeMultiplier,i=0;const a=l.isCharacterBox(e.body);if("sout"===n)o=Ve.makeSpan(["stretchy","sout"]),o.height=t.fontMetrics().defaultRuleThickness/s,i=-.5*t.fontMetrics().xHeight;else if("phase"===n){const e=P({number:.6,unit:"pt"},t),n=P({number:.35,unit:"ex"},t);s/=t.havingBaseSizing().sizeMultiplier;const a=r.height+r.depth+e+n;r.style.paddingLeft=F(a/2+e);const l=Math.floor(1e3*a*s),c="M400000 "+(h=l)+" H0 L"+h/2+" 0 l65 45 L145 "+(h-80)+" H400000z",m=new K([new J("phase",c)],{width:"400em",height:F(l/1e3),viewBox:"0 0 400000 "+l,preserveAspectRatio:"xMinYMin slice"});o=Ve.makeSvgSpan(["hide-tail"],[m],t),o.style.height=F(a),i=r.depth+e+n}else{/cancel/.test(n)?a||r.classes.push("cancel-pad"):"angl"===n?r.classes.push("anglpad"):r.classes.push("boxpad");let s=0,l=0,h=0;/box/.test(n)?(h=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),s=t.fontMetrics().fboxsep+("colorbox"===n?0:h),l=s):"angl"===n?(h=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),s=4*h,l=Math.max(0,.25-r.depth)):(s=a?.2:0,l=s),o=Bt(r,n,s,l,t),/fbox|boxed|fcolorbox/.test(n)?(o.style.borderStyle="solid",o.style.borderWidth=F(h)):"angl"===n&&.049!==h&&(o.style.borderTopWidth=F(h),o.style.borderRightWidth=F(h)),i=r.depth+l,e.backgroundColor&&(o.style.backgroundColor=e.backgroundColor,e.borderColor&&(o.style.borderColor=e.borderColor))}var h;let c;if(e.backgroundColor)c=Ve.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:i},{type:"elem",elem:r,shift:0}]},t);else{const e=/cancel|phase/.test(n)?["svg-align"]:[];c=Ve.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:o,shift:i,wrapperClasses:e}]},t)}return/cancel/.test(n)&&(c.height=r.height,c.depth=r.depth),/cancel/.test(n)&&!a?Ve.makeSpan(["mord","cancel-lap"],[c],t):Ve.makeSpan(["mord"],[c],t)},Mr=(e,t)=>{let r=0;const n=new gt.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[vt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){const r=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+r+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};je({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){let{parser:n,funcName:o}=e;const s=qt(t[0],"color-token").color,i=t[1];return{type:"enclose",mode:n.mode,label:o,backgroundColor:s,body:i}},htmlBuilder:Sr,mathmlBuilder:Mr}),je({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){let{parser:n,funcName:o}=e;const s=qt(t[0],"color-token").color,i=qt(t[1],"color-token").color,a=t[2];return{type:"enclose",mode:n.mode,label:o,backgroundColor:i,borderColor:s,body:a}},htmlBuilder:Sr,mathmlBuilder:Mr}),je({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}}),je({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"enclose",mode:r.mode,label:n,body:o}},htmlBuilder:Sr,mathmlBuilder:Mr}),je({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){let{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});const zr={};function Ar(e){let{type:t,names:r,props:n,handler:o,htmlBuilder:s,mathmlBuilder:i}=e;const a={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:o};for(let e=0;e{if(!e.parser.settings.displayMode)throw new n("{"+e.envName+"} can be used only in display mode.")};function Rr(e){if(-1===e.indexOf("ed"))return-1===e.indexOf("*")}function Hr(e,t,r){let{hskipBeforeAndAfter:o,addJot:s,cols:i,arraystretch:a,colSeparationType:l,autoTag:h,singleRow:c,emptySingleRow:m,maxNumCols:p,leqno:u}=t;if(e.gullet.beginGroup(),c||e.gullet.macros.set("\\cr","\\\\\\relax"),!a){const t=e.gullet.expandMacroAsText("\\arraystretch");if(null==t)a=1;else if(a=parseFloat(t),!a||a<0)throw new n("Invalid \\arraystretch: "+t)}e.gullet.beginGroup();let d=[];const g=[d],f=[],b=[],y=null!=h?[]:void 0;function x(){h&&e.gullet.macros.set("\\@eqnsw","1",!0)}function w(){y&&(e.gullet.macros.get("\\df@tag")?(y.push(e.subparse([new Nr("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):y.push(Boolean(h)&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(x(),b.push(qr(e));;){let t=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),t={type:"ordgroup",mode:e.mode,body:t},r&&(t={type:"styling",mode:e.mode,style:r,body:[t]}),d.push(t);const o=e.fetch().text;if("&"===o){if(p&&d.length===p){if(c||l)throw new n("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else{if("\\end"===o){w(),1===d.length&&"styling"===t.type&&0===t.body[0].body.length&&(g.length>1||!m)&&g.pop(),b.length0&&(x+=.25),c.push({pos:x,isDashed:e[t]})}for(v(i[0]),r=0;r0&&(p+=y,le)))for(r=0;r=a)continue;(o>0||e.hskipBeforeAndAfter)&&(i=l.deflt(c.pregap,u),0!==i&&(z=Ve.makeSpan(["arraycolsep"],[]),z.style.width=F(i),M.push(z)));let d=[];for(r=0;r0){const e=Ve.makeLineSpan("hline",t,m),r=Ve.makeLineSpan("hdashline",t,m),n=[{type:"elem",elem:h,shift:0}];for(;c.length>0;){const t=c.pop(),o=t.pos-k;t.isDashed?n.push({type:"elem",elem:r,shift:o}):n.push({type:"elem",elem:e,shift:o})}h=Ve.makeVList({positionType:"individualShift",children:n},t)}if(0===T.length)return Ve.makeSpan(["mord"],[h],t);{let e=Ve.makeVList({positionType:"individualShift",children:T},t);return e=Ve.makeSpan(["tag"],[e],t),Ve.makeFragment([h,e])}},Lr={c:"center ",l:"left ",r:"right "},Dr=function(e,t){const r=[],n=new gt.MathNode("mtd",[],["mtr-glue"]),o=new gt.MathNode("mtd",[],["mml-eqn-num"]);for(let s=0;s0){const t=e.cols;let r="",n=!1,o=0,i=t.length;"separator"===t[0].type&&(a+="top ",o=1),"separator"===t[t.length-1].type&&(a+="bottom ",i-=1);for(let e=o;e0?"left ":"",a+=c[c.length-1].length>0?"right ":"";for(let e=1;e-1?"alignat":"align",s="split"===e.envName,i=Hr(e.parser,{cols:r,addJot:!0,autoTag:s?void 0:Rr(e.envName),emptySingleRow:!0,colSeparationType:o,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display");let a,l=0;const h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){let e="";for(let r=0;r0&&c&&(n=1),r[e]={type:"align",align:t,pregap:n,postgap:0}}return i.colSeparationType=c?"align":"alignat",i};Ar({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){const r=(Rt(t[0])?[t[0]]:qt(t[0],"ordgroup").body).map((function(e){const t=It(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),o={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Hr(e.parser,o,Or(e.envName))},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){const t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")];let r="c";const o={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){const t=e.parser;if(t.consumeSpaces(),"["===t.fetch().text){if(t.consume(),t.consumeSpaces(),r=t.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",t.nextToken);t.consume(),t.consumeSpaces(),t.expect("]"),t.consume(),o.cols=[{type:"align",align:r}]}}const s=Hr(e.parser,o,Or(e.envName)),i=Math.max(0,...s.body.map((e=>e.length)));return s.cols=new Array(i).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0}:s},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){const t=Hr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){const r=(Rt(t[0])?[t[0]]:qt(t[0],"ordgroup").body).map((function(e){const t=It(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");let o={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if(o=Hr(e.parser,o,"script"),o.body.length>0&&o.body[0].length>1)throw new n("{subarray} can contain only one column");return o},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){const t=Hr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},Or(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Vr,htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){l.contains(["gather","gather*"],e.envName)&&Ir(e);const t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Rr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Hr(e.parser,t,"display")},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Vr,htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){Ir(e);const t={autoTag:Rr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Hr(e.parser,t,"display")},htmlBuilder:Er,mathmlBuilder:Dr}),Ar({type:"array",names:["CD"],props:{numArgs:0},handler(e){return Ir(e),function(e){const t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();const r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}let r=[];const o=[r];for(let a=0;a-1);else{if(!("<>AV".indexOf(o)>-1))throw new n('Expected one of "<>AV=|." after @',l[t]);for(let e=0;e<2;e++){let r=!0;for(let h=t+1;h{const r=e.font,n=t.withFont(r);return ht(e.body,n)},Gr=(e,t)=>{const r=e.font,n=t.withFont(r);return vt(e.body,n)},Ur={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};je({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=Ze(t[0]);let s=n;return s in Ur&&(s=Ur[s]),{type:"font",mode:r.mode,font:s.slice(1),body:o}},htmlBuilder:Fr,mathmlBuilder:Gr}),je({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{let{parser:r}=e;const n=t[0],o=l.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:Ft(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:o}}}),je({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{parser:r,funcName:n,breakOnTokenText:o}=e;const{mode:s}=r,i=r.parseExpression(!0,o);return{type:"font",mode:s,font:"math"+n.slice(1),body:{type:"ordgroup",mode:r.mode,body:i}}},htmlBuilder:Fr,mathmlBuilder:Gr});const Yr=(e,t)=>{let r=t;return"display"===e?r=r.id>=w.SCRIPT.id?r.text():w.DISPLAY:"text"===e&&r.size===w.DISPLAY.size?r=w.TEXT:"script"===e?r=w.SCRIPT:"scriptscript"===e&&(r=w.SCRIPTSCRIPT),r},Xr=(e,t)=>{const r=Yr(e.size,t.style),n=r.fracNum(),o=r.fracDen();let s;s=t.havingStyle(n);const i=ht(e.numer,s,t);if(e.continued){const e=8.5/t.fontMetrics().ptPerEm,r=3.5/t.fontMetrics().ptPerEm;i.height=i.height0?3*c:7*c,u=t.fontMetrics().denom1):(h>0?(m=t.fontMetrics().num2,p=c):(m=t.fontMetrics().num3,p=3*c),u=t.fontMetrics().denom2),l){const e=t.fontMetrics().axisHeight;m-i.depth-(e+.5*h){let r=new gt.MathNode("mfrac",[vt(e.numer,t),vt(e.denom,t)]);if(e.hasBarLine){if(e.barSize){const n=P(e.barSize,t);r.setAttribute("linethickness",F(n))}}else r.setAttribute("linethickness","0px");const n=Yr(e.size,t.style);if(n.size!==t.style.size){r=new gt.MathNode("mstyle",[r]);const e=n.size===w.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",e),r.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){const t=[];if(null!=e.leftDelim){const r=new gt.MathNode("mo",[new gt.TextNode(e.leftDelim.replace("\\",""))]);r.setAttribute("fence","true"),t.push(r)}if(t.push(r),null!=e.rightDelim){const r=new gt.MathNode("mo",[new gt.TextNode(e.rightDelim.replace("\\",""))]);r.setAttribute("fence","true"),t.push(r)}return bt(t)}return r};je({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=t[1];let i,a=null,l=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":i=!0;break;case"\\\\atopfrac":i=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":i=!1,a="(",l=")";break;case"\\\\bracefrac":i=!1,a="\\{",l="\\}";break;case"\\\\brackfrac":i=!1,a="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text"}return{type:"genfrac",mode:r.mode,continued:!1,numer:o,denom:s,hasBarLine:i,leftDelim:a,rightDelim:l,size:h,barSize:null}},htmlBuilder:Xr,mathmlBuilder:Wr}),je({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:o,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),je({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){let t,{parser:r,funcName:n,token:o}=e;switch(n){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:o}}});const _r=["display","text","script","scriptscript"],jr=function(e){let t=null;return e.length>0&&(t=e,t="."===t?null:t),t};je({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){let{parser:r}=e;const n=t[4],o=t[5],s=Ze(t[0]),i="atom"===s.type&&"open"===s.family?jr(s.text):null,a=Ze(t[1]),l="atom"===a.type&&"close"===a.family?jr(a.text):null,h=qt(t[2],"size");let c,m=null;h.isBlank?c=!0:(m=h.value,c=m.number>0);let p="auto",u=t[3];if("ordgroup"===u.type){if(u.body.length>0){const e=qt(u.body[0],"textord");p=_r[Number(e.text)]}}else u=qt(u,"textord"),p=_r[Number(u.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:o,continued:!1,hasBarLine:c,barSize:m,leftDelim:i,rightDelim:l,size:p}},htmlBuilder:Xr,mathmlBuilder:Wr}),je({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){let{parser:r,funcName:n,token:o}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:qt(t[0],"size").value,token:o}}}),je({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(qt(t[1],"infix").size),i=t[2],a=s.number>0;return{type:"genfrac",mode:r.mode,numer:o,denom:i,continued:!1,hasBarLine:a,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Xr,mathmlBuilder:Wr});const $r=(e,t)=>{const r=t.style;let n,o;"supsub"===e.type?(n=e.sup?ht(e.sup,t.havingStyle(r.sup()),t):ht(e.sub,t.havingStyle(r.sub()),t),o=qt(e.base,"horizBrace")):o=qt(e,"horizBrace");const s=ht(o.base,t.havingBaseStyle(w.DISPLAY)),i=Nt(o,t);let a;if(o.isOver?(a=Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:i}]},t),a.children[0].children[0].children[1].classes.push("svg-align")):(a=Ve.makeVList({positionType:"bottom",positionData:s.depth+.1+i.height,children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:s}]},t),a.children[0].children[0].children[0].classes.push("svg-align")),n){const e=Ve.makeSpan(["mord",o.isOver?"mover":"munder"],[a],t);a=o.isOver?Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"kern",size:.2},{type:"elem",elem:n}]},t):Ve.makeVList({positionType:"bottom",positionData:e.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:e}]},t)}return Ve.makeSpan(["mord",o.isOver?"mover":"munder"],[a],t)};je({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:$r,mathmlBuilder:(e,t)=>{const r=Ct(e.label);return new gt.MathNode(e.isOver?"mover":"munder",[vt(e.base,t),r])}}),je({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[1],o=qt(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:o})?{type:"href",mode:r.mode,href:o,body:Ke(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{const r=nt(e.body,t,!1);return Ve.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{let r=wt(e.body,t);return r instanceof ut||(r=new ut("mrow",[r])),r.setAttribute("href",e.href),r}}),je({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=qt(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");const o=[];for(let e=0;e{let{parser:r,funcName:o,token:s}=e;const i=qt(t[0],"raw").string,a=t[1];let l;r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");const h={};switch(o){case"\\htmlClass":h.class=i,l={command:"\\htmlClass",class:i};break;case"\\htmlId":h.id=i,l={command:"\\htmlId",id:i};break;case"\\htmlStyle":h.style=i,l={command:"\\htmlStyle",style:i};break;case"\\htmlData":{const e=i.split(",");for(let t=0;t{const r=nt(e.body,t,!1),n=["enclosing"];e.attributes.class&&n.push(...e.attributes.class.trim().split(/\s+/));const o=Ve.makeSpan(n,r,t);for(const t in e.attributes)"class"!==t&&e.attributes.hasOwnProperty(t)&&o.setAttribute(t,e.attributes[t]);return o},mathmlBuilder:(e,t)=>wt(e.body,t)}),je({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:Ke(t[0]),mathml:Ke(t[1])}},htmlBuilder:(e,t)=>{const r=nt(e.html,t,!1);return Ve.makeFragment(r)},mathmlBuilder:(e,t)=>wt(e.mathml,t)});const Zr=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};{const t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new n("Invalid size: '"+e+"' in \\includegraphics");const r={number:+(t[1]+t[2]),unit:t[3]};if(!V(r))throw new n("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r}};je({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{let{parser:o}=e,s={number:0,unit:"em"},i={number:.9,unit:"em"},a={number:0,unit:"em"},l="";if(r[0]){const e=qt(r[0],"raw").string.split(",");for(let t=0;t{const r=P(e.height,t);let n=0;e.totalheight.number>0&&(n=P(e.totalheight,t)-r);let o=0;e.width.number>0&&(o=P(e.width,t));const s={height:F(r+n)};o>0&&(s.width=F(o)),n>0&&(s.verticalAlign=F(-n));const i=new j(e.src,e.alt,s);return i.height=r,i.depth=n,i},mathmlBuilder:(e,t)=>{const r=new gt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);const n=P(e.height,t);let o=0;if(e.totalheight.number>0&&(o=P(e.totalheight,t)-n,r.setAttribute("valign",F(-o))),r.setAttribute("height",F(n+o)),e.width.number>0){const n=P(e.width,t);r.setAttribute("width",F(n))}return r.setAttribute("src",e.src),r}}),je({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=qt(t[0],"size");if(r.settings.strict){const e="m"===n[1],t="mu"===o.value.unit;e?(t||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+o.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):t&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:o.value}},htmlBuilder(e,t){return Ve.makeGlue(e.dimension,t)},mathmlBuilder(e,t){const r=P(e.dimension,t);return new gt.SpaceNode(r)}}),je({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:o}},htmlBuilder:(e,t)=>{let r;"clap"===e.alignment?(r=Ve.makeSpan([],[ht(e.body,t)]),r=Ve.makeSpan(["inner"],[r],t)):r=Ve.makeSpan(["inner"],[ht(e.body,t)]);const n=Ve.makeSpan(["fix"],[]);let o=Ve.makeSpan([e.alignment],[r,n],t);const s=Ve.makeSpan(["strut"]);return s.style.height=F(o.height+o.depth),o.depth&&(s.style.verticalAlign=F(-o.depth)),o.children.unshift(s),o=Ve.makeSpan(["thinbox"],[o],t),Ve.makeSpan(["mord","vbox"],[o],t)},mathmlBuilder:(e,t)=>{const r=new gt.MathNode("mpadded",[vt(e.body,t)]);if("rlap"!==e.alignment){const t="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",t+"width")}return r.setAttribute("width","0px"),r}}),je({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){let{funcName:r,parser:n}=e;const o=n.mode;n.switchMode("math");const s="\\("===r?"\\)":"$",i=n.parseExpression(!1,s);return n.expect(s),n.switchMode(o),{type:"styling",mode:n.mode,style:"text",body:i}}}),je({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new n("Mismatched "+e.funcName)}});const Kr=(e,t)=>{switch(t.style.size){case w.DISPLAY.size:return e.display;case w.TEXT.size:return e.text;case w.SCRIPT.size:return e.script;case w.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};je({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{let{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:Ke(t[0]),text:Ke(t[1]),script:Ke(t[2]),scriptscript:Ke(t[3])}},htmlBuilder:(e,t)=>{const r=Kr(e,t),n=nt(r,t,!1);return Ve.makeFragment(n)},mathmlBuilder:(e,t)=>{const r=Kr(e,t);return wt(r,t)}});const Jr=(e,t,r,n,o,s,i)=>{e=Ve.makeSpan([],[e]);const a=r&&l.isCharacterBox(r);let h,c,m;if(t){const e=ht(t,n.havingStyle(o.sup()),n);c={elem:e,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-e.depth)}}if(r){const e=ht(r,n.havingStyle(o.sub()),n);h={elem:e,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-e.height)}}if(c&&h){const t=n.fontMetrics().bigOpSpacing5+h.elem.height+h.elem.depth+h.kern+e.depth+i;m=Ve.makeVList({positionType:"bottom",positionData:t,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:h.elem,marginLeft:F(-s)},{type:"kern",size:h.kern},{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:F(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(h){const t=e.height-i;m=Ve.makeVList({positionType:"top",positionData:t,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:h.elem,marginLeft:F(-s)},{type:"kern",size:h.kern},{type:"elem",elem:e}]},n)}else{if(!c)return e;{const t=e.depth+i;m=Ve.makeVList({positionType:"bottom",positionData:t,children:[{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:F(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}}const p=[m];if(h&&0!==s&&!a){const e=Ve.makeSpan(["mspace"],[],n);e.style.marginRight=F(s),p.unshift(e)}return Ve.makeSpan(["mop","op-limits"],p,n)},Qr=["\\smallint"],en=(e,t)=>{let r,n,o,s=!1;"supsub"===e.type?(r=e.sup,n=e.sub,o=qt(e.base,"op"),s=!0):o=qt(e,"op");const i=t.style;let a,h=!1;if(i.size===w.DISPLAY.size&&o.symbol&&!l.contains(Qr,o.name)&&(h=!0),o.symbol){const e=h?"Size2-Regular":"Size1-Regular";let r="";if("\\oiint"!==o.name&&"\\oiiint"!==o.name||(r=o.name.slice(1),o.name="oiint"===r?"\\iint":"\\iiint"),a=Ve.makeSymbol(o.name,e,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),r.length>0){const e=a.italic,n=Ve.staticSvg(r+"Size"+(h?"2":"1"),t);a=Ve.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:0},{type:"elem",elem:n,shift:h?.08:0}]},t),o.name="\\"+r,a.classes.unshift("mop"),a.italic=e}}else if(o.body){const e=nt(o.body,t,!0);1===e.length&&e[0]instanceof Z?(a=e[0],a.classes[0]="mop"):a=Ve.makeSpan(["mop"],e,t)}else{const e=[];for(let r=1;r{let r;if(e.symbol)r=new ut("mo",[ft(e.name,e.mode)]),l.contains(Qr,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new ut("mo",xt(e.body,t));else{r=new ut("mi",[new dt(e.name.slice(1))]);const t=new ut("mo",[ft("\u2061","text")]);r=e.parentIsSupSub?new ut("mrow",[r,t]):pt([r,t])}return r},rn={"\u220f":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22c0":"\\bigwedge","\u22c1":"\\bigvee","\u22c2":"\\bigcap","\u22c3":"\\bigcup","\u2a00":"\\bigodot","\u2a01":"\\bigoplus","\u2a02":"\\bigotimes","\u2a04":"\\biguplus","\u2a06":"\\bigsqcup"};je({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220f","\u2210","\u2211","\u22c0","\u22c1","\u22c2","\u22c3","\u2a00","\u2a01","\u2a02","\u2a04","\u2a06"],props:{numArgs:0},handler:(e,t)=>{let{parser:r,funcName:n}=e,o=n;return 1===o.length&&(o=rn[o]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:o}},htmlBuilder:en,mathmlBuilder:tn}),je({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Ke(n)}},htmlBuilder:en,mathmlBuilder:tn});const nn={"\u222b":"\\int","\u222c":"\\iint","\u222d":"\\iiint","\u222e":"\\oint","\u222f":"\\oiint","\u2230":"\\oiiint"};je({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:en,mathmlBuilder:tn}),je({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:en,mathmlBuilder:tn}),je({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222b","\u222c","\u222d","\u222e","\u222f","\u2230"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e,n=r;return 1===n.length&&(n=nn[n]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:en,mathmlBuilder:tn});const on=(e,t)=>{let r,n,o,s,i=!1;if("supsub"===e.type?(r=e.sup,n=e.sub,o=qt(e.base,"operatorname"),i=!0):o=qt(e,"operatorname"),o.body.length>0){const e=o.body.map((e=>{const t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),r=nt(e,t.withFont("mathrm"),!0);for(let e=0;e{let{parser:r,funcName:n}=e;const o=t[0];return{type:"operatorname",mode:r.mode,body:Ke(o),alwaysHandleSupSub:"\\operatornamewithlimits"===n,limits:!1,parentIsSupSub:!1}},htmlBuilder:on,mathmlBuilder:(e,t)=>{let r=xt(e.body,t.withFont("mathrm")),n=!0;for(let e=0;ee.toText())).join("");r=[new gt.TextNode(e)]}const o=new gt.MathNode("mi",r);o.setAttribute("mathvariant","normal");const s=new gt.MathNode("mo",[ft("\u2061","text")]);return e.parentIsSupSub?new gt.MathNode("mrow",[o,s]):gt.newDocumentFragment([o,s])}}),Br("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),$e({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Ve.makeFragment(nt(e.body,t,!1)):Ve.makeSpan(["mord"],nt(e.body,t,!0),t)},mathmlBuilder(e,t){return wt(e.body,t,!0)}}),je({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){let{parser:r}=e;const n=t[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(e,t){const r=ht(e.body,t.havingCrampedStyle()),n=Ve.makeLineSpan("overline-line",t),o=t.fontMetrics().defaultRuleThickness,s=Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*o},{type:"elem",elem:n},{type:"kern",size:o}]},t);return Ve.makeSpan(["mord","overline"],[s],t)},mathmlBuilder(e,t){const r=new gt.MathNode("mo",[new gt.TextNode("\u203e")]);r.setAttribute("stretchy","true");const n=new gt.MathNode("mover",[vt(e.body,t),r]);return n.setAttribute("accent","true"),n}}),je({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"phantom",mode:r.mode,body:Ke(n)}},htmlBuilder:(e,t)=>{const r=nt(e.body,t.withPhantom(),!1);return Ve.makeFragment(r)},mathmlBuilder:(e,t)=>{const r=xt(e.body,t);return new gt.MathNode("mphantom",r)}}),je({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"hphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{let r=Ve.makeSpan([],[ht(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(let e=0;e{const r=xt(Ke(e.body),t),n=new gt.MathNode("mphantom",r),o=new gt.MathNode("mpadded",[n]);return o.setAttribute("height","0px"),o.setAttribute("depth","0px"),o}}),je({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"vphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{const r=Ve.makeSpan(["inner"],[ht(e.body,t.withPhantom())]),n=Ve.makeSpan(["fix"],[]);return Ve.makeSpan(["mord","rlap"],[r,n],t)},mathmlBuilder:(e,t)=>{const r=xt(Ke(e.body),t),n=new gt.MathNode("mphantom",r),o=new gt.MathNode("mpadded",[n]);return o.setAttribute("width","0px"),o}}),je({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){let{parser:r}=e;const n=qt(t[0],"size").value,o=t[1];return{type:"raisebox",mode:r.mode,dy:n,body:o}},htmlBuilder(e,t){const r=ht(e.body,t),n=P(e.dy,t);return Ve.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){const r=new gt.MathNode("mpadded",[vt(e.body,t)]),n=e.dy.number+e.dy.unit;return r.setAttribute("voffset",n),r}}),je({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){let{parser:t}=e;return{type:"internal",mode:t.mode}}}),je({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(e,t,r){let{parser:n}=e;const o=r[0],s=qt(t[0],"size"),i=qt(t[1],"size");return{type:"rule",mode:n.mode,shift:o&&qt(o,"size").value,width:s.value,height:i.value}},htmlBuilder(e,t){const r=Ve.makeSpan(["mord","rule"],[],t),n=P(e.width,t),o=P(e.height,t),s=e.shift?P(e.shift,t):0;return r.style.borderRightWidth=F(n),r.style.borderTopWidth=F(o),r.style.bottom=F(s),r.width=n,r.height=o+s,r.depth=-s,r.maxFontSize=1.125*o*t.sizeMultiplier,r},mathmlBuilder(e,t){const r=P(e.width,t),n=P(e.height,t),o=e.shift?P(e.shift,t):0,s=t.color&&t.getColor()||"black",i=new gt.MathNode("mspace");i.setAttribute("mathbackground",s),i.setAttribute("width",F(r)),i.setAttribute("height",F(n));const a=new gt.MathNode("mpadded",[i]);return o>=0?a.setAttribute("height",F(o)):(a.setAttribute("height",F(o)),a.setAttribute("depth",F(-o))),a.setAttribute("voffset",F(o)),a}});const an=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];je({type:"sizing",names:an,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{breakOnTokenText:r,funcName:n,parser:o}=e;const s=o.parseExpression(!1,r);return{type:"sizing",mode:o.mode,size:an.indexOf(n)+1,body:s}},htmlBuilder:(e,t)=>{const r=t.havingSize(e.size);return sn(e.body,r,t)},mathmlBuilder:(e,t)=>{const r=t.havingSize(e.size),n=xt(e.body,r),o=new gt.MathNode("mstyle",n);return o.setAttribute("mathsize",F(r.sizeMultiplier)),o}}),je({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{let{parser:n}=e,o=!1,s=!1;const i=r[0]&&qt(r[0],"ordgroup");if(i){let e="";for(let t=0;t{const r=Ve.makeSpan([],[ht(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(let e=0;e{const r=new gt.MathNode("mpadded",[vt(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}}),je({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){let{parser:n}=e;const o=r[0],s=t[0];return{type:"sqrt",mode:n.mode,body:s,index:o}},htmlBuilder(e,t){let r=ht(e.body,t.havingCrampedStyle());0===r.height&&(r.height=t.fontMetrics().xHeight),r=Ve.wrapFragment(r,t);const n=t.fontMetrics().defaultRuleThickness;let o=n;t.style.idr.height+r.depth+s&&(s=(s+c-r.height-r.depth)/2);const m=a.height-r.height-s-l;r.style.paddingLeft=F(h);const p=Ve.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+m)},{type:"elem",elem:a},{type:"kern",size:l}]},t);if(e.index){const r=t.havingStyle(w.SCRIPTSCRIPT),n=ht(e.index,r,t),o=.6*(p.height-p.depth),s=Ve.makeVList({positionType:"shift",positionData:-o,children:[{type:"elem",elem:n}]},t),i=Ve.makeSpan(["root"],[s]);return Ve.makeSpan(["mord","sqrt"],[i,p],t)}return Ve.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder(e,t){const{body:r,index:n}=e;return n?new gt.MathNode("mroot",[vt(r,t),vt(n,t)]):new gt.MathNode("msqrt",[vt(r,t)])}});const ln={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};je({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){let{breakOnTokenText:r,funcName:n,parser:o}=e;const s=o.parseExpression(!0,r),i=n.slice(1,n.length-5);return{type:"styling",mode:o.mode,style:i,body:s}},htmlBuilder(e,t){const r=ln[e.style],n=t.havingStyle(r).withFont("");return sn(e.body,n,t)},mathmlBuilder(e,t){const r=ln[e.style],n=t.havingStyle(r),o=xt(e.body,n),s=new gt.MathNode("mstyle",o),i={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return s.setAttribute("scriptlevel",i[0]),s.setAttribute("displaystyle",i[1]),s}});$e({type:"supsub",htmlBuilder(e,t){const r=function(e,t){const r=e.base;if(r)return"op"===r.type?r.limits&&(t.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?en:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===w.DISPLAY.size||r.limits)?on:null:"accent"===r.type?l.isCharacterBox(r.base)?Ht:null:"horizBrace"===r.type&&!e.sub===r.isOver?$r:null;return null}(e,t);if(r)return r(e,t);const{base:n,sup:o,sub:s}=e,i=ht(n,t);let a,h;const c=t.fontMetrics();let m=0,p=0;const u=n&&l.isCharacterBox(n);if(o){const e=t.havingStyle(t.style.sup());a=ht(o,e,t),u||(m=i.height-e.fontMetrics().supDrop*e.sizeMultiplier/t.sizeMultiplier)}if(s){const e=t.havingStyle(t.style.sub());h=ht(s,e,t),u||(p=i.depth+e.fontMetrics().subDrop*e.sizeMultiplier/t.sizeMultiplier)}let d;d=t.style===w.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;const g=t.sizeMultiplier,f=F(.5/c.ptPerEm/g);let b,y=null;if(h){const t=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(i instanceof Z||t)&&(y=F(-i.italic))}if(a&&h){m=Math.max(m,d,a.depth+.25*c.xHeight),p=Math.max(p,c.sub2);const e=4*c.defaultRuleThickness;if(m-a.depth-(h.height-p)0&&(m+=t,p-=t)}const r=[{type:"elem",elem:h,shift:p,marginRight:f,marginLeft:y},{type:"elem",elem:a,shift:-m,marginRight:f}];b=Ve.makeVList({positionType:"individualShift",children:r},t)}else if(h){p=Math.max(p,c.sub1,h.height-.8*c.xHeight);const e=[{type:"elem",elem:h,marginLeft:y,marginRight:f}];b=Ve.makeVList({positionType:"shift",positionData:p,children:e},t)}else{if(!a)throw new Error("supsub must have either sup or sub.");m=Math.max(m,d,a.depth+.25*c.xHeight),b=Ve.makeVList({positionType:"shift",positionData:-m,children:[{type:"elem",elem:a,marginRight:f}]},t)}const x=at(i,"right")||"mord";return Ve.makeSpan([x],[i,Ve.makeSpan(["msupsub"],[b])],t)},mathmlBuilder(e,t){let r,n,o=!1;e.base&&"horizBrace"===e.base.type&&(n=!!e.sup,n===e.base.isOver&&(o=!0,r=e.base.isOver)),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);const s=[vt(e.base,t)];let i;if(e.sub&&s.push(vt(e.sub,t)),e.sup&&s.push(vt(e.sup,t)),o)i=r?"mover":"munder";else if(e.sub)if(e.sup){const r=e.base;i=r&&"op"===r.type&&r.limits&&t.style===w.DISPLAY||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(t.style===w.DISPLAY||r.limits)?"munderover":"msubsup"}else{const r=e.base;i=r&&"op"===r.type&&r.limits&&(t.style===w.DISPLAY||r.alwaysHandleSupSub)||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(r.limits||t.style===w.DISPLAY)?"munder":"msub"}else{const r=e.base;i=r&&"op"===r.type&&r.limits&&(t.style===w.DISPLAY||r.alwaysHandleSupSub)||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(r.limits||t.style===w.DISPLAY)?"mover":"msup"}return new gt.MathNode(i,s)}}),$e({type:"atom",htmlBuilder(e,t){return Ve.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){const r=new gt.MathNode("mo",[ft(e.text,e.mode)]);if("bin"===e.family){const n=yt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});const hn={mi:"italic",mn:"normal",mtext:"normal"};$e({type:"mathord",htmlBuilder(e,t){return Ve.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){const r=new gt.MathNode("mi",[ft(e.text,e.mode,t)]),n=yt(e,t)||"italic";return n!==hn[r.type]&&r.setAttribute("mathvariant",n),r}}),$e({type:"textord",htmlBuilder(e,t){return Ve.makeOrd(e,t,"textord")},mathmlBuilder(e,t){const r=ft(e.text,e.mode,t),n=yt(e,t)||"normal";let o;return o="text"===e.mode?new gt.MathNode("mtext",[r]):/[0-9]/.test(e.text)?new gt.MathNode("mn",[r]):"\\prime"===e.text?new gt.MathNode("mo",[r]):new gt.MathNode("mi",[r]),n!==hn[o.type]&&o.setAttribute("mathvariant",n),o}});const cn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};$e({type:"spacing",htmlBuilder(e,t){if(mn.hasOwnProperty(e.text)){const r=mn[e.text].className||"";if("text"===e.mode){const n=Ve.makeOrd(e,t,"textord");return n.classes.push(r),n}return Ve.makeSpan(["mspace",r],[Ve.mathsym(e.text,e.mode,t)],t)}if(cn.hasOwnProperty(e.text))return Ve.makeSpan(["mspace",cn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){let r;if(!mn.hasOwnProperty(e.text)){if(cn.hasOwnProperty(e.text))return new gt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return r=new gt.MathNode("mtext",[new gt.TextNode("\xa0")]),r}});const pn=()=>{const e=new gt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};$e({type:"tag",mathmlBuilder(e,t){const r=new gt.MathNode("mtable",[new gt.MathNode("mtr",[pn(),new gt.MathNode("mtd",[wt(e.body,t)]),pn(),new gt.MathNode("mtd",[wt(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});const un={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},dn={"\\textbf":"textbf","\\textmd":"textmd"},gn={"\\textit":"textit","\\textup":"textup"},fn=(e,t)=>{const r=e.font;return r?un[r]?t.withTextFontFamily(un[r]):dn[r]?t.withTextFontWeight(dn[r]):t.withTextFontShape(gn[r]):t};je({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"text",mode:r.mode,body:Ke(o),font:n}},htmlBuilder(e,t){const r=fn(e,t),n=nt(e.body,r,!0);return Ve.makeSpan(["mord","text"],n,r)},mathmlBuilder(e,t){const r=fn(e,t);return wt(e.body,r)}}),je({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){const r=ht(e.body,t),n=Ve.makeLineSpan("underline-line",t),o=t.fontMetrics().defaultRuleThickness,s=Ve.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:o},{type:"elem",elem:n},{type:"kern",size:3*o},{type:"elem",elem:r}]},t);return Ve.makeSpan(["mord","underline"],[s],t)},mathmlBuilder(e,t){const r=new gt.MathNode("mo",[new gt.TextNode("\u203e")]);r.setAttribute("stretchy","true");const n=new gt.MathNode("munder",[vt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),je({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){let{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){const r=ht(e.body,t),n=t.fontMetrics().axisHeight,o=.5*(r.height-n-(r.depth+n));return Ve.makeVList({positionType:"shift",positionData:o,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new gt.MathNode("mpadded",[vt(e.body,t)],["vcenter"])}}),je({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){const r=bn(e),n=[],o=t.havingStyle(t.style.text());for(let t=0;te.body.replace(/ /g,e.star?"\u2423":"\xa0");var yn=Xe;const xn="[ \r\n\t]",wn="(\\\\[a-zA-Z@]+)"+xn+"*",vn="[\u0300-\u036f]",kn=new RegExp(vn+"+$"),Sn="("+xn+"+)|\\\\(\n|[ \r\t]+\n?)[ \r\t]*|([!-\\[\\]-\u2027\u202a-\ud7ff\uf900-\uffff]"+vn+"*|[\ud800-\udbff][\udc00-\udfff]"+vn+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|"+wn+"|\\\\[^\ud800-\udfff])";class Mn{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(Sn,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){const e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new Nr("EOF",new Cr(this,t,t));const r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new n("Unexpected character: '"+e[t]+"'",new Nr(e[t],new Cr(this,t,t+1)));const o=r[6]||r[3]||(r[2]?"\\ ":" ");if(14===this.catcodes[o]){const t=e.indexOf("\n",this.tokenRegex.lastIndex);return-1===t?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=t+1,this.lex()}return new Nr(o,new Cr(this,t,this.tokenRegex.lastIndex))}}class zn{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new n("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");const e=this.undefStack.pop();for(const t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,r){if(void 0===r&&(r=!1),r){for(let t=0;t0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{const t=this.undefStack[this.undefStack.length-1];t&&!t.hasOwnProperty(e)&&(t[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}var An=Tr;Br("\\noexpand",(function(e){const t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Br("\\expandafter",(function(e){const t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Br("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Br("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Br("\\@ifnextchar",(function(e){const t=e.consumeArgs(3);e.consumeSpaces();const r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Br("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Br("\\TextOrMath",(function(e){const t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));const Tn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Br("\\char",(function(e){let t,r=e.popToken(),o="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if(r=e.popToken(),"\\"===r.text[0])o=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");o=r.text.charCodeAt(0)}else t=10;if(t){if(o=Tn[r.text],null==o||o>=t)throw new n("Invalid base-"+t+" digit "+r.text);let s;for(;null!=(s=Tn[e.future().text])&&s{let o=e.consumeArg().tokens;if(1!==o.length)throw new n("\\newcommand's first argument must be a macro name");const s=o[0].text,i=e.isDefined(s);if(i&&!t)throw new n("\\newcommand{"+s+"} attempting to redefine "+s+"; use \\renewcommand");if(!i&&!r)throw new n("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");let a=0;if(o=e.consumeArg().tokens,1===o.length&&"["===o[0].text){let t="",r=e.expandNextToken();for(;"]"!==r.text&&"EOF"!==r.text;)t+=r.text,r=e.expandNextToken();if(!t.match(/^\s*[0-9]+\s*$/))throw new n("Invalid number of arguments: "+t);a=parseInt(t),o=e.consumeArg().tokens}return e.macros.set(s,{tokens:o,numArgs:a}),""};Br("\\newcommand",(e=>Bn(e,!1,!0))),Br("\\renewcommand",(e=>Bn(e,!0,!1))),Br("\\providecommand",(e=>Bn(e,!0,!0))),Br("\\message",(e=>{const t=e.consumeArgs(1)[0];return console.log(t.reverse().map((e=>e.text)).join("")),""})),Br("\\errmessage",(e=>{const t=e.consumeArgs(1)[0];return console.error(t.reverse().map((e=>e.text)).join("")),""})),Br("\\show",(e=>{const t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),yn[r],oe.math[r],oe.text[r]),""})),Br("\\bgroup","{"),Br("\\egroup","}"),Br("~","\\nobreakspace"),Br("\\lq","`"),Br("\\rq","'"),Br("\\aa","\\r a"),Br("\\AA","\\r A"),Br("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xa9}"),Br("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),Br("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}"),Br("\u212c","\\mathscr{B}"),Br("\u2130","\\mathscr{E}"),Br("\u2131","\\mathscr{F}"),Br("\u210b","\\mathscr{H}"),Br("\u2110","\\mathscr{I}"),Br("\u2112","\\mathscr{L}"),Br("\u2133","\\mathscr{M}"),Br("\u211b","\\mathscr{R}"),Br("\u212d","\\mathfrak{C}"),Br("\u210c","\\mathfrak{H}"),Br("\u2128","\\mathfrak{Z}"),Br("\\Bbbk","\\Bbb{k}"),Br("\xb7","\\cdotp"),Br("\\llap","\\mathllap{\\textrm{#1}}"),Br("\\rlap","\\mathrlap{\\textrm{#1}}"),Br("\\clap","\\mathclap{\\textrm{#1}}"),Br("\\mathstrut","\\vphantom{(}"),Br("\\underbar","\\underline{\\text{#1}}"),Br("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),Br("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}"),Br("\\ne","\\neq"),Br("\u2260","\\neq"),Br("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}"),Br("\u2209","\\notin"),Br("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}"),Br("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}"),Br("\u225a","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225a}}"),Br("\u225b","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225b}}"),Br("\u225d","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225d}}"),Br("\u225e","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225e}}"),Br("\u225f","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225f}}"),Br("\u27c2","\\perp"),Br("\u203c","\\mathclose{!\\mkern-0.8mu!}"),Br("\u220c","\\notni"),Br("\u231c","\\ulcorner"),Br("\u231d","\\urcorner"),Br("\u231e","\\llcorner"),Br("\u231f","\\lrcorner"),Br("\xa9","\\copyright"),Br("\xae","\\textregistered"),Br("\ufe0f","\\textregistered"),Br("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),Br("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),Br("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),Br("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),Br("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}"),Br("\u22ee","\\vdots"),Br("\\varGamma","\\mathit{\\Gamma}"),Br("\\varDelta","\\mathit{\\Delta}"),Br("\\varTheta","\\mathit{\\Theta}"),Br("\\varLambda","\\mathit{\\Lambda}"),Br("\\varXi","\\mathit{\\Xi}"),Br("\\varPi","\\mathit{\\Pi}"),Br("\\varSigma","\\mathit{\\Sigma}"),Br("\\varUpsilon","\\mathit{\\Upsilon}"),Br("\\varPhi","\\mathit{\\Phi}"),Br("\\varPsi","\\mathit{\\Psi}"),Br("\\varOmega","\\mathit{\\Omega}"),Br("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),Br("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),Br("\\boxed","\\fbox{$\\displaystyle{#1}$}"),Br("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),Br("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),Br("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");const Cn={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Br("\\dots",(function(e){let t="\\dotso";const r=e.expandAfterFuture().text;return r in Cn?t=Cn[r]:("\\not"===r.slice(0,4)||r in oe.math&&l.contains(["bin","rel"],oe.math[r].group))&&(t="\\dotsb"),t}));const Nn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Br("\\dotso",(function(e){return e.future().text in Nn?"\\ldots\\,":"\\ldots"})),Br("\\dotsc",(function(e){const t=e.future().text;return t in Nn&&","!==t?"\\ldots\\,":"\\ldots"})),Br("\\cdots",(function(e){return e.future().text in Nn?"\\@cdots\\,":"\\@cdots"})),Br("\\dotsb","\\cdots"),Br("\\dotsm","\\cdots"),Br("\\dotsi","\\!\\cdots"),Br("\\dotsx","\\ldots\\,"),Br("\\DOTSI","\\relax"),Br("\\DOTSB","\\relax"),Br("\\DOTSX","\\relax"),Br("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Br("\\,","\\tmspace+{3mu}{.1667em}"),Br("\\thinspace","\\,"),Br("\\>","\\mskip{4mu}"),Br("\\:","\\tmspace+{4mu}{.2222em}"),Br("\\medspace","\\:"),Br("\\;","\\tmspace+{5mu}{.2777em}"),Br("\\thickspace","\\;"),Br("\\!","\\tmspace-{3mu}{.1667em}"),Br("\\negthinspace","\\!"),Br("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Br("\\negthickspace","\\tmspace-{5mu}{.277em}"),Br("\\enspace","\\kern.5em "),Br("\\enskip","\\hskip.5em\\relax"),Br("\\quad","\\hskip1em\\relax"),Br("\\qquad","\\hskip2em\\relax"),Br("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Br("\\tag@paren","\\tag@literal{({#1})}"),Br("\\tag@literal",(e=>{if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Br("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Br("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Br("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Br("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Br("\\newline","\\\\\\relax"),Br("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");const qn=F(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Br("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+qn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Br("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+qn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Br("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Br("\\@hspace","\\hskip #1\\relax"),Br("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Br("\\ordinarycolon",":"),Br("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Br("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Br("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Br("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Br("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Br("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Br("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Br("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Br("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Br("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Br("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Br("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Br("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Br("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Br("\u2237","\\dblcolon"),Br("\u2239","\\eqcolon"),Br("\u2254","\\coloneqq"),Br("\u2255","\\eqqcolon"),Br("\u2a74","\\Coloneqq"),Br("\\ratio","\\vcentcolon"),Br("\\coloncolon","\\dblcolon"),Br("\\colonequals","\\coloneqq"),Br("\\coloncolonequals","\\Coloneqq"),Br("\\equalscolon","\\eqqcolon"),Br("\\equalscoloncolon","\\Eqqcolon"),Br("\\colonminus","\\coloneq"),Br("\\coloncolonminus","\\Coloneq"),Br("\\minuscolon","\\eqcolon"),Br("\\minuscoloncolon","\\Eqcolon"),Br("\\coloncolonapprox","\\Colonapprox"),Br("\\coloncolonsim","\\Colonsim"),Br("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Br("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Br("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Br("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Br("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Br("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Br("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Br("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Br("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Br("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Br("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Br("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Br("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Br("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Br("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Br("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Br("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Br("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Br("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Br("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Br("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Br("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Br("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Br("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Br("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Br("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Br("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Br("\\imath","\\html@mathml{\\@imath}{\u0131}"),Br("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Br("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Br("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Br("\u27e6","\\llbracket"),Br("\u27e7","\\rrbracket"),Br("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Br("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Br("\u2983","\\lBrace"),Br("\u2984","\\rBrace"),Br("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Br("\u29b5","\\minuso"),Br("\\darr","\\downarrow"),Br("\\dArr","\\Downarrow"),Br("\\Darr","\\Downarrow"),Br("\\lang","\\langle"),Br("\\rang","\\rangle"),Br("\\uarr","\\uparrow"),Br("\\uArr","\\Uparrow"),Br("\\Uarr","\\Uparrow"),Br("\\N","\\mathbb{N}"),Br("\\R","\\mathbb{R}"),Br("\\Z","\\mathbb{Z}"),Br("\\alef","\\aleph"),Br("\\alefsym","\\aleph"),Br("\\Alpha","\\mathrm{A}"),Br("\\Beta","\\mathrm{B}"),Br("\\bull","\\bullet"),Br("\\Chi","\\mathrm{X}"),Br("\\clubs","\\clubsuit"),Br("\\cnums","\\mathbb{C}"),Br("\\Complex","\\mathbb{C}"),Br("\\Dagger","\\ddagger"),Br("\\diamonds","\\diamondsuit"),Br("\\empty","\\emptyset"),Br("\\Epsilon","\\mathrm{E}"),Br("\\Eta","\\mathrm{H}"),Br("\\exist","\\exists"),Br("\\harr","\\leftrightarrow"),Br("\\hArr","\\Leftrightarrow"),Br("\\Harr","\\Leftrightarrow"),Br("\\hearts","\\heartsuit"),Br("\\image","\\Im"),Br("\\infin","\\infty"),Br("\\Iota","\\mathrm{I}"),Br("\\isin","\\in"),Br("\\Kappa","\\mathrm{K}"),Br("\\larr","\\leftarrow"),Br("\\lArr","\\Leftarrow"),Br("\\Larr","\\Leftarrow"),Br("\\lrarr","\\leftrightarrow"),Br("\\lrArr","\\Leftrightarrow"),Br("\\Lrarr","\\Leftrightarrow"),Br("\\Mu","\\mathrm{M}"),Br("\\natnums","\\mathbb{N}"),Br("\\Nu","\\mathrm{N}"),Br("\\Omicron","\\mathrm{O}"),Br("\\plusmn","\\pm"),Br("\\rarr","\\rightarrow"),Br("\\rArr","\\Rightarrow"),Br("\\Rarr","\\Rightarrow"),Br("\\real","\\Re"),Br("\\reals","\\mathbb{R}"),Br("\\Reals","\\mathbb{R}"),Br("\\Rho","\\mathrm{P}"),Br("\\sdot","\\cdot"),Br("\\sect","\\S"),Br("\\spades","\\spadesuit"),Br("\\sub","\\subset"),Br("\\sube","\\subseteq"),Br("\\supe","\\supseteq"),Br("\\Tau","\\mathrm{T}"),Br("\\thetasym","\\vartheta"),Br("\\weierp","\\wp"),Br("\\Zeta","\\mathrm{Z}"),Br("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Br("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Br("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Br("\\bra","\\mathinner{\\langle{#1}|}"),Br("\\ket","\\mathinner{|{#1}\\rangle}"),Br("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Br("\\Bra","\\left\\langle#1\\right|"),Br("\\Ket","\\left|#1\\right\\rangle");const In=e=>t=>{const r=t.consumeArg().tokens,n=t.consumeArg().tokens,o=t.consumeArg().tokens,s=t.consumeArg().tokens,i=t.macros.get("|"),a=t.macros.get("\\|");t.macros.beginGroup();const l=t=>r=>{e&&(r.macros.set("|",i),o.length&&r.macros.set("\\|",a));let s=t;if(!t&&o.length){"|"===r.future().text&&(r.popToken(),s=!0)}return{tokens:s?o:n,numArgs:0}};t.macros.set("|",l(!1)),o.length&&t.macros.set("\\|",l(!0));const h=t.consumeArg().tokens,c=t.expandTokens([...s,...h,...r]);return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}};Br("\\bra@ket",In(!1)),Br("\\bra@set",In(!0)),Br("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Br("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Br("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Br("\\angln","{\\angl n}"),Br("\\blue","\\textcolor{##6495ed}{#1}"),Br("\\orange","\\textcolor{##ffa500}{#1}"),Br("\\pink","\\textcolor{##ff00af}{#1}"),Br("\\red","\\textcolor{##df0030}{#1}"),Br("\\green","\\textcolor{##28ae7b}{#1}"),Br("\\gray","\\textcolor{gray}{#1}"),Br("\\purple","\\textcolor{##9d38bd}{#1}"),Br("\\blueA","\\textcolor{##ccfaff}{#1}"),Br("\\blueB","\\textcolor{##80f6ff}{#1}"),Br("\\blueC","\\textcolor{##63d9ea}{#1}"),Br("\\blueD","\\textcolor{##11accd}{#1}"),Br("\\blueE","\\textcolor{##0c7f99}{#1}"),Br("\\tealA","\\textcolor{##94fff5}{#1}"),Br("\\tealB","\\textcolor{##26edd5}{#1}"),Br("\\tealC","\\textcolor{##01d1c1}{#1}"),Br("\\tealD","\\textcolor{##01a995}{#1}"),Br("\\tealE","\\textcolor{##208170}{#1}"),Br("\\greenA","\\textcolor{##b6ffb0}{#1}"),Br("\\greenB","\\textcolor{##8af281}{#1}"),Br("\\greenC","\\textcolor{##74cf70}{#1}"),Br("\\greenD","\\textcolor{##1fab54}{#1}"),Br("\\greenE","\\textcolor{##0d923f}{#1}"),Br("\\goldA","\\textcolor{##ffd0a9}{#1}"),Br("\\goldB","\\textcolor{##ffbb71}{#1}"),Br("\\goldC","\\textcolor{##ff9c39}{#1}"),Br("\\goldD","\\textcolor{##e07d10}{#1}"),Br("\\goldE","\\textcolor{##a75a05}{#1}"),Br("\\redA","\\textcolor{##fca9a9}{#1}"),Br("\\redB","\\textcolor{##ff8482}{#1}"),Br("\\redC","\\textcolor{##f9685d}{#1}"),Br("\\redD","\\textcolor{##e84d39}{#1}"),Br("\\redE","\\textcolor{##bc2612}{#1}"),Br("\\maroonA","\\textcolor{##ffbde0}{#1}"),Br("\\maroonB","\\textcolor{##ff92c6}{#1}"),Br("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Br("\\maroonD","\\textcolor{##ca337c}{#1}"),Br("\\maroonE","\\textcolor{##9e034e}{#1}"),Br("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Br("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Br("\\purpleC","\\textcolor{##aa87ff}{#1}"),Br("\\purpleD","\\textcolor{##7854ab}{#1}"),Br("\\purpleE","\\textcolor{##543b78}{#1}"),Br("\\mintA","\\textcolor{##f5f9e8}{#1}"),Br("\\mintB","\\textcolor{##edf2df}{#1}"),Br("\\mintC","\\textcolor{##e0e5cc}{#1}"),Br("\\grayA","\\textcolor{##f6f7f7}{#1}"),Br("\\grayB","\\textcolor{##f0f1f2}{#1}"),Br("\\grayC","\\textcolor{##e3e5e6}{#1}"),Br("\\grayD","\\textcolor{##d6d8da}{#1}"),Br("\\grayE","\\textcolor{##babec2}{#1}"),Br("\\grayF","\\textcolor{##888d93}{#1}"),Br("\\grayG","\\textcolor{##626569}{#1}"),Br("\\grayH","\\textcolor{##3b3e40}{#1}"),Br("\\grayI","\\textcolor{##21242c}{#1}"),Br("\\kaBlue","\\textcolor{##314453}{#1}"),Br("\\kaGreen","\\textcolor{##71B307}{#1}");const Rn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class Hn{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new zn(An,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new Mn(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){let t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),({tokens:n,end:r}=this.consumeArg(["]"]))}else({tokens:n,start:t,end:r}=this.consumeArg());return this.pushToken(new Nr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")}consumeSpaces(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}}consumeArg(e){const t=[],r=e&&e.length>0;r||this.consumeSpaces();const o=this.future();let s,i=0,a=0;do{if(s=this.popToken(),t.push(s),"{"===s.text)++i;else if("}"===s.text){if(--i,-1===i)throw new n("Extra }",s)}else if("EOF"===s.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[a]:"}")+"'",s);if(e&&r)if((0===i||1===i&&"{"===e[a])&&s.text===e[a]){if(++a,a===e.length){t.splice(-a,a);break}}else a=0}while(0!==i||r);return"{"===o.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:o,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");const r=t[0];for(let e=0;ethis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){const t=this.popToken(),r=t.text,o=t.noexpand?null:this._getExpansion(r);if(null==o||e&&o.unexpandable){if(e&&null==o&&"\\"===r[0]&&!this.isDefined(r))throw new n("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);let s=o.tokens;const i=this.consumeArgs(o.numArgs,o.delimiters);if(o.numArgs){s=s.slice();for(let e=s.length-1;e>=0;--e){let t=s[e];if("#"===t.text){if(0===e)throw new n("Incomplete placeholder at end of macro body",t);if(t=s[--e],"#"===t.text)s.splice(e+1,1);else{if(!/^[1-9]$/.test(t.text))throw new n("Not a valid argument number",t);s.splice(e,2,...i[+t.text-1])}}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(!1===this.expandOnce()){const e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Nr(e)]):void 0}expandTokens(e){const t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(!1===this.expandOnce(!0)){const e=this.stack.pop();e.treatAsRelax&&(e.noexpand=!1,e.treatAsRelax=!1),t.push(e)}return this.countExpansion(t.length),t}expandMacroAsText(e){const t=this.expandMacro(e);return t?t.map((e=>e.text)).join(""):t}_getExpansion(e){const t=this.macros.get(e);if(null==t)return t;if(1===e.length){const t=this.lexer.catcodes[e];if(null!=t&&13!==t)return}const r="function"==typeof t?t(this):t;if("string"==typeof r){let e=0;if(-1!==r.indexOf("#")){const t=r.replace(/##/g,"");for(;-1!==t.indexOf("#"+(e+1));)++e}const t=new Mn(r,this.settings),n=[];let o=t.lex();for(;"EOF"!==o.text;)n.push(o),o=t.lex();n.reverse();return{tokens:n,numArgs:e}}return r}isDefined(e){return this.macros.has(e)||yn.hasOwnProperty(e)||oe.math.hasOwnProperty(e)||oe.text.hasOwnProperty(e)||Rn.hasOwnProperty(e)}isExpandable(e){const t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:yn.hasOwnProperty(e)&&!yn[e].primitive}}const On=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,En=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Ln={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},Dn={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"};class Vn{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Hn(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{const e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){const t=this.nextToken;this.consume(),this.gullet.pushToken(new Nr("}")),this.gullet.pushTokens(e);const r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){const r=[];for(;;){"math"===this.mode&&this.consumeSpaces();const n=this.fetch();if(-1!==Vn.endOfExpression.indexOf(n.text))break;if(t&&n.text===t)break;if(e&&yn[n.text]&&yn[n.text].infix)break;const o=this.parseAtom(t);if(!o)break;"internal"!==o.type&&r.push(o)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){let t,r=-1;for(let o=0;o=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);const r=oe[this.mode][t].group,n=Cr.range(e);let s;if(te.hasOwnProperty(r)){const e=r;s={type:"atom",mode:this.mode,family:e,loc:n,text:t}}else s={type:r,mode:this.mode,loc:n,text:t};o=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),o={type:"textord",mode:"text",loc:Cr.range(e),text:t}}if(this.consume(),r)for(let t=0;t=0;i--)t[i].loc.start>o&&(n+=" ",o=t[i].loc.start),n+=t[i].text,o+=t[i].text.length;return r.go(a.go(n,e))},a={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",r={};r.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var i=10,c=[];;){n!==t?(i=10,n=t):i--;var u=a.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(i<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return a.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return a.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=a.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return a.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return a.concatArray(n,this.output(t)),a.concatArray(n,a.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=a.patterns.match_("orbital",t.o||""),r=a.patterns.match_("one lowercase greek letter $",t.o||""),i=a.patterns.match_("one lowercase latin letter $",t.o||""),c=a.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||r||i||c);!u||t.a||t.b||t.p||t.d||t.q||o||!i||(t.o="$"+t.o+"$");var p=[];return u?(a.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=a.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(a.concatArray(p,a.actions["d="](t,e)),a.concatArray(p,this.output(t))):(a.concatArray(p,this.output(t)),a.concatArray(p,a.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:a.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,r,i;t.r?(r="M"===t.rdt?a.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:a.go(t.rd),i="M"===t.rqt?a.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:a.go(t.rq),o={type_:"arrow",r:t.r,rd:r,rq:i}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&a.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:a.go(t.a,"a"),b:a.go(t.b,"bd"),p:a.go(t.p,"pq"),o:a.go(t.o,"o"),q:a.go(t.q,"pq"),d:a.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return a.concatArray(n,a.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:a.go(e[0]),p2:a.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:a.go(e[0]),p2:a.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:a.go(e[0]),p2:a.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:a.go(e[0]),p2:a.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:a.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:a.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"pq")}}}},bd:{transitions:a.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"bd")}}}},oxidation:{transitions:a.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:a.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(a.concatArray(n,a.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?a.concatArray(n,a.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),a.concatArray(n,a.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=a.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=a.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var r={d:a.go(t.d,"pu"),q:a.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:r.d,p2:r.q}:(e=r.d,r.d.length>1||r.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),a.concatArray(e,r.q))}else e=a.go(t.d,"pu-2");for(var i in t)delete t[i];return e}}},"pu-2":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=a.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?a.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:a.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}(),a=a.default}()})); \ No newline at end of file diff --git a/themes/hextra/assets/lib/mermaid/mermaid.min.js b/themes/hextra/assets/lib/mermaid/mermaid.min.js new file mode 100644 index 0000000000..18a0afc6d5 --- /dev/null +++ b/themes/hextra/assets/lib/mermaid/mermaid.min.js @@ -0,0 +1,2225 @@ +"use strict";var __esbuild_esm_mermaid=(()=>{var oxt=Object.create;var Z1=Object.defineProperty;var lxt=Object.getOwnPropertyDescriptor;var cxt=Object.getOwnPropertyNames;var uxt=Object.getPrototypeOf,hxt=Object.prototype.hasOwnProperty;var o=(e,t)=>Z1(e,"name",{value:t,configurable:!0});var R=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ti=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xr=(e,t)=>{for(var r in t)Z1(e,r,{get:t[r],enumerable:!0})},Zb=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cxt(t))!hxt.call(e,i)&&i!==r&&Z1(e,i,{get:()=>t[i],enumerable:!(n=lxt(t,i))||n.enumerable});return e},wr=(e,t,r)=>(Zb(e,t,"default"),r&&Zb(r,t,"default")),Qi=(e,t,r)=>(r=e!=null?oxt(uxt(e)):{},Zb(t||!e||!e.__esModule?Z1(r,"default",{value:e,enumerable:!0}):r,e)),fxt=e=>Zb(Z1({},"__esModule",{value:!0}),e);var Jb=Ti((pS,mS)=>{"use strict";(function(e,t){typeof pS=="object"&&typeof mS<"u"?mS.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs=t()})(pS,function(){"use strict";var e=1e3,t=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(k){var I=["th","st","nd","rd"],C=k%100;return"["+k+(I[(C-20)%10]||I[C]||I[0])+"]"},"ordinal")},x=o(function(k,I,C){var O=String(k);return!O||O.length>=I?k:""+Array(I+1-O.length).join(C)+k},"m"),b={s:x,z:o(function(k){var I=-k.utcOffset(),C=Math.abs(I),O=Math.floor(C/60),D=C%60;return(I<=0?"+":"-")+x(O,2,"0")+":"+x(D,2,"0")},"z"),m:o(function k(I,C){if(I.date()1)return k(F[0])}else{var B=I.name;S[B]=I,D=B}return!O&&D&&(w=D),D||!O&&w},"t"),A=o(function(k,I){if(E(k))return k.clone();var C=typeof I=="object"?I:{};return C.date=k,C.args=arguments,new M(C)},"O"),L=b;L.l=_,L.i=E,L.w=function(k,I){return A(k,{locale:I.$L,utc:I.$u,x:I.$x,$offset:I.$offset})};var M=function(){function k(C){this.$L=_(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}o(k,"M");var I=k.prototype;return I.parse=function(C){this.$d=function(O){var D=O.date,P=O.utc;if(D===null)return new Date(NaN);if(L.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var F=D.match(g);if(F){var B=F[2]-1||0,G=(F[7]||"0").substring(0,3);return P?new Date(Date.UTC(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,G)):new Date(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,G)}}return new Date(D)}(C),this.init()},I.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},I.$utils=function(){return L},I.isValid=function(){return this.$d.toString()!==m},I.isSame=function(C,O){var D=A(C);return this.startOf(O)<=D&&D<=this.endOf(O)},I.isAfter=function(C,O){return A(C){"use strict";Az=Qi(Jb(),1),nu={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},V={trace:o((...e)=>{},"trace"),debug:o((...e)=>{},"debug"),info:o((...e)=>{},"info"),warn:o((...e)=>{},"warn"),error:o((...e)=>{},"error"),fatal:o((...e)=>{},"fatal")},J1=o(function(e="fatal"){let t=nu.fatal;typeof e=="string"?e.toLowerCase()in nu&&(t=nu[e]):typeof e=="number"&&(t=e),V.trace=()=>{},V.debug=()=>{},V.info=()=>{},V.warn=()=>{},V.error=()=>{},V.fatal=()=>{},t<=nu.fatal&&(V.fatal=console.error?console.error.bind(console,So("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",So("FATAL"))),t<=nu.error&&(V.error=console.error?console.error.bind(console,So("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",So("ERROR"))),t<=nu.warn&&(V.warn=console.warn?console.warn.bind(console,So("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",So("WARN"))),t<=nu.info&&(V.info=console.info?console.info.bind(console,So("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",So("INFO"))),t<=nu.debug&&(V.debug=console.debug?console.debug.bind(console,So("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",So("DEBUG"))),t<=nu.trace&&(V.trace=console.debug?console.debug.bind(console,So("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",So("TRACE")))},"setLogLevel"),So=o(e=>`%c${(0,Az.default)().format("ss.SSS")} : ${e} : `,"format")});var dxt,hp,gS,_z,t4=R(()=>{"use strict";dxt=Object.freeze({left:0,top:0,width:16,height:16}),hp=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),gS=Object.freeze({...dxt,...hp}),_z=Object.freeze({...gS,body:"",hidden:!1})});var pxt,Lz,Dz=R(()=>{"use strict";t4();pxt=Object.freeze({width:null,height:null}),Lz=Object.freeze({...pxt,...hp})});var e4,yS,r4,Rz=R(()=>{"use strict";e4=/^[a-z0-9]+(-[a-z0-9]+)*$/,yS=o((e,t,r,n="")=>{let i=e.split(":");if(e.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return t&&!r4(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return t&&!r4(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return t&&!r4(l,r)?null:l}return null},"stringToIcon"),r4=o((e,t)=>e?!!((e.provider===""||e.provider.match(e4))&&(t&&e.prefix===""||e.prefix.match(e4))&&e.name.match(e4)):!1,"validateIconName")});function Nz(e,t){let r={};!e.hFlip!=!t.hFlip&&(r.hFlip=!0),!e.vFlip!=!t.vFlip&&(r.vFlip=!0);let n=((e.rotate||0)+(t.rotate||0))%4;return n&&(r.rotate=n),r}var Mz=R(()=>{"use strict";o(Nz,"mergeIconTransformations")});function vS(e,t){let r=Nz(e,t);for(let n in _z)n in hp?n in e&&!(n in r)&&(r[n]=hp[n]):n in t?r[n]=t[n]:n in e&&(r[n]=e[n]);return r}var Iz=R(()=>{"use strict";t4();Mz();o(vS,"mergeIconData")});function Oz(e,t){let r=e.icons,n=e.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(t||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var Pz=R(()=>{"use strict";o(Oz,"getIconsTree")});function Bz(e,t,r){let n=e.icons,i=e.aliases||Object.create(null),a={};function s(l){a=vS(n[l]||i[l],a)}return o(s,"parse"),s(t),r.forEach(s),vS(e,a)}function xS(e,t){if(e.icons[t])return Bz(e,t,[]);let r=Oz(e,[t])[t];return r?Bz(e,t,r):null}var Fz=R(()=>{"use strict";Iz();Pz();o(Bz,"internalGetIconData");o(xS,"getIconData")});function bS(e,t,r){if(t===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*t*r)/r;if(typeof e!="string")return e;let n=e.split(mxt);if(n===null||!n.length)return e;let i=[],a=n.shift(),s=gxt.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*t*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var mxt,gxt,zz=R(()=>{"use strict";mxt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,gxt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(bS,"calculateSize")});function yxt(e,t="defs"){let r="",n=e.indexOf("<"+t);for(;n>=0;){let i=e.indexOf(">",n),a=e.indexOf("",a);if(s===-1)break;r+=e.slice(i+1,a).trim(),e=e.slice(0,n).trim()+e.slice(s+1)}return{defs:r,content:e}}function vxt(e,t){return e?""+e+""+t:t}function $z(e,t,r){let n=yxt(e);return vxt(n.defs,t+n.content+r)}var Gz=R(()=>{"use strict";o(yxt,"splitSVGDefs");o(vxt,"mergeDefsAndContent");o($z,"wrapSVGContent")});function wS(e,t){let r={...gS,...e},n={...Lz,...t},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,w=y.rotate;x?b?w+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let S;switch(w<0&&(w-=Math.floor(w/4)*4),w=w%4,w){case 1:S=i.height/2+i.top,v.unshift("rotate(90 "+S.toString()+" "+S.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:S=i.width/2+i.left,v.unshift("rotate(-90 "+S.toString()+" "+S.toString()+")");break}w%2===1&&(i.left!==i.top&&(S=i.left,i.left=i.top,i.top=S),i.width!==i.height&&(S=i.width,i.width=i.height,i.height=S)),v.length&&(a=$z(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=bS(d,u/h)):(f=s==="auto"?u:s,d=l===null?bS(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{xxt(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var xxt,Vz=R(()=>{"use strict";t4();Dz();zz();Gz();xxt=o(e=>e==="unset"||e==="undefined"||e==="none","isUnsetKeyword");o(wS,"iconToSVG")});function TS(e,t=wxt){let r=[],n;for(;n=bxt.exec(e);)r.push(n[1]);if(!r.length)return e;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof t=="function"?t(a):t+(Txt++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}var bxt,wxt,Txt,Uz=R(()=>{"use strict";bxt=/\sid="(\S+)"/g,wxt="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Txt=0;o(TS,"replaceIDs")});function kS(e,t){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in t)r+=" "+n+'="'+t[n]+'"';return'"+e+""}var Hz=R(()=>{"use strict";o(kS,"iconToHTML")});var Yz=Ti((Lae,Wz)=>{"use strict";var fp=1e3,dp=fp*60,pp=dp*60,Yf=pp*24,kxt=Yf*7,Ext=Yf*365.25;Wz.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return Cxt(e);if(r==="number"&&isFinite(e))return t.long?Axt(e):Sxt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Cxt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Ext;case"weeks":case"week":case"w":return r*kxt;case"days":case"day":case"d":return r*Yf;case"hours":case"hour":case"hrs":case"hr":case"h":return r*pp;case"minutes":case"minute":case"mins":case"min":case"m":return r*dp;case"seconds":case"second":case"secs":case"sec":case"s":return r*fp;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}o(Cxt,"parse");function Sxt(e){var t=Math.abs(e);return t>=Yf?Math.round(e/Yf)+"d":t>=pp?Math.round(e/pp)+"h":t>=dp?Math.round(e/dp)+"m":t>=fp?Math.round(e/fp)+"s":e+"ms"}o(Sxt,"fmtShort");function Axt(e){var t=Math.abs(e);return t>=Yf?n4(e,t,Yf,"day"):t>=pp?n4(e,t,pp,"hour"):t>=dp?n4(e,t,dp,"minute"):t>=fp?n4(e,t,fp,"second"):e+" ms"}o(Axt,"fmtLong");function n4(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}o(n4,"plural")});var Xz=Ti((Rae,qz)=>{"use strict";function _xt(e){r.debug=r,r.default=r,r.coerce=u,r.disable=a,r.enable=i,r.enabled=s,r.humanize=Yz(),r.destroy=h,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let d=0;for(let p=0;p{if(E==="%%")return"%";S++;let A=r.formatters[_];if(typeof A=="function"){let L=v[S];E=A.call(x,L),v.splice(S,1),S--}return E}),r.formatArgs.call(x,v),(x.log||r.log).apply(x,v)}return o(y,"debug"),y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:o(()=>p!==null?p:(m!==r.namespaces&&(m=r.namespaces,g=r.enabled(f)),g),"get"),set:o(v=>{p=v},"set")}),typeof r.init=="function"&&r.init(y),y}o(r,"createDebug");function n(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}o(n,"extend");function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,p=(typeof f=="string"?f:"").split(/[\s,]+/),m=p.length;for(d=0;d"-"+d)].join(",");return r.enable(""),f}o(a,"disable");function s(f){if(f[f.length-1]==="*")return!0;let d,p;for(d=0,p=r.skips.length;d{"use strict";qs.formatArgs=Dxt;qs.save=Rxt;qs.load=Nxt;qs.useColors=Lxt;qs.storage=Mxt();qs.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();qs.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Lxt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}o(Lxt,"useColors");function Dxt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+i4.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}o(Dxt,"formatArgs");qs.log=console.debug||console.log||(()=>{});function Rxt(e){try{e?qs.storage.setItem("debug",e):qs.storage.removeItem("debug")}catch{}}o(Rxt,"save");function Nxt(){let e;try{e=qs.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}o(Nxt,"load");function Mxt(){try{return localStorage}catch{}}o(Mxt,"localstorage");i4.exports=Xz()(qs);var{formatters:Ixt}=i4.exports;Ixt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Iae,Kz=R(()=>{"use strict";Rz();Fz();Vz();Uz();Hz();Iae=Qi(jz(),1)});var CS,ES,Qz,a4,Oxt,Ao,iu=R(()=>{"use strict";ce();Kz();CS={body:'?',height:80,width:80},ES=new Map,Qz=new Map,a4=o(e=>{for(let t of e){if(!t.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(V.debug("Registering icon pack:",t.name),"loader"in t)Qz.set(t.name,t.loader);else if("icons"in t)ES.set(t.name,t.icons);else throw V.error("Invalid icon loader:",t),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Oxt=o(async(e,t)=>{let r=yS(e,!0,t!==void 0);if(!r)throw new Error(`Invalid icon name: ${e}`);let n=r.prefix||t;if(!n)throw new Error(`Icon name must contain a prefix: ${e}`);let i=ES.get(n);if(!i){let s=Qz.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},ES.set(n,i)}catch(l){throw V.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=xS(i,r.name);if(!a)throw new Error(`Icon not found: ${e}`);return a},"getRegisteredIconData"),Ao=o(async(e,t)=>{let r;try{r=await Oxt(e,t?.fallbackPrefix)}catch(a){V.error(a),r=CS}let n=wS(r,t);return kS(TS(n.body),n.attributes)},"getIconSVG")});function s4(e){for(var t=[],r=1;r{"use strict";o(s4,"dedent")});var o4,qf,Zz,l4=R(()=>{"use strict";o4=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,qf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Zz=/\s*%%.*\n/gm});var mp,AS=R(()=>{"use strict";mp=class extends Error{static{o(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}}});var Xf,gp,c4,_S,Jz,jf=R(()=>{"use strict";ce();l4();AS();Xf={},gp=o(function(e,t){e=e.replace(o4,"").replace(qf,"").replace(Zz,` +`);for(let[r,{detector:n}]of Object.entries(Xf))if(n(e,t))return r;throw new mp(`No diagram type detected matching given configuration for text: ${e}`)},"detectType"),c4=o((...e)=>{for(let{id:t,detector:r,loader:n}of e)_S(t,r,n)},"registerLazyLoadedDiagrams"),_S=o((e,t,r)=>{Xf[e]&&V.warn(`Detector with key ${e} already exists. Overwriting.`),Xf[e]={detector:t,loader:r},V.debug(`Detector with key ${e} added${r?" with loader":""}`)},"addDetector"),Jz=o(e=>Xf[e].loader,"getDiagramLoader")});var ty,t$,LS=R(()=>{"use strict";ty=function(){var e=o(function(_t,dt,Y,ft){for(Y=Y||{},ft=_t.length;ft--;Y[_t[ft]]=dt);return Y},"o"),t=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],S=[1,36],T=[1,37],E=[1,38],_=[1,39],A=[1,40],L=[1,41],M=[1,42],N=[1,43],k=[1,44],I=[1,45],C=[1,46],O=[1,47],D=[1,48],P=[1,50],F=[1,51],B=[1,52],G=[1,53],z=[1,54],W=[1,55],Q=[1,56],j=[1,57],at=[1,58],X=[1,59],J=[1,60],Z=[14,42],H=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],K=[1,82],ot=[1,83],ct=[1,84],ut=[1,85],et=[12,14,42],Mt=[12,14,33,42],it=[12,14,33,42,76,77,79,80],wt=[12,33],Ot=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],St={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(dt,Y,ft,mt,rt,ht,nt){var st=ht.length-1;switch(rt){case 3:mt.setDirection("TB");break;case 4:mt.setDirection("BT");break;case 5:mt.setDirection("RL");break;case 6:mt.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:mt.setC4Type(ht[st-3]);break;case 19:mt.setTitle(ht[st].substring(6)),this.$=ht[st].substring(6);break;case 20:mt.setAccDescription(ht[st].substring(15)),this.$=ht[st].substring(15);break;case 21:this.$=ht[st].trim(),mt.setTitle(this.$);break;case 22:case 23:this.$=ht[st].trim(),mt.setAccDescription(this.$);break;case 28:ht[st].splice(2,0,"ENTERPRISE"),mt.addPersonOrSystemBoundary(...ht[st]),this.$=ht[st];break;case 29:ht[st].splice(2,0,"SYSTEM"),mt.addPersonOrSystemBoundary(...ht[st]),this.$=ht[st];break;case 30:mt.addPersonOrSystemBoundary(...ht[st]),this.$=ht[st];break;case 31:ht[st].splice(2,0,"CONTAINER"),mt.addContainerBoundary(...ht[st]),this.$=ht[st];break;case 32:mt.addDeploymentNode("node",...ht[st]),this.$=ht[st];break;case 33:mt.addDeploymentNode("nodeL",...ht[st]),this.$=ht[st];break;case 34:mt.addDeploymentNode("nodeR",...ht[st]),this.$=ht[st];break;case 35:mt.popBoundaryParseStack();break;case 39:mt.addPersonOrSystem("person",...ht[st]),this.$=ht[st];break;case 40:mt.addPersonOrSystem("external_person",...ht[st]),this.$=ht[st];break;case 41:mt.addPersonOrSystem("system",...ht[st]),this.$=ht[st];break;case 42:mt.addPersonOrSystem("system_db",...ht[st]),this.$=ht[st];break;case 43:mt.addPersonOrSystem("system_queue",...ht[st]),this.$=ht[st];break;case 44:mt.addPersonOrSystem("external_system",...ht[st]),this.$=ht[st];break;case 45:mt.addPersonOrSystem("external_system_db",...ht[st]),this.$=ht[st];break;case 46:mt.addPersonOrSystem("external_system_queue",...ht[st]),this.$=ht[st];break;case 47:mt.addContainer("container",...ht[st]),this.$=ht[st];break;case 48:mt.addContainer("container_db",...ht[st]),this.$=ht[st];break;case 49:mt.addContainer("container_queue",...ht[st]),this.$=ht[st];break;case 50:mt.addContainer("external_container",...ht[st]),this.$=ht[st];break;case 51:mt.addContainer("external_container_db",...ht[st]),this.$=ht[st];break;case 52:mt.addContainer("external_container_queue",...ht[st]),this.$=ht[st];break;case 53:mt.addComponent("component",...ht[st]),this.$=ht[st];break;case 54:mt.addComponent("component_db",...ht[st]),this.$=ht[st];break;case 55:mt.addComponent("component_queue",...ht[st]),this.$=ht[st];break;case 56:mt.addComponent("external_component",...ht[st]),this.$=ht[st];break;case 57:mt.addComponent("external_component_db",...ht[st]),this.$=ht[st];break;case 58:mt.addComponent("external_component_queue",...ht[st]),this.$=ht[st];break;case 60:mt.addRel("rel",...ht[st]),this.$=ht[st];break;case 61:mt.addRel("birel",...ht[st]),this.$=ht[st];break;case 62:mt.addRel("rel_u",...ht[st]),this.$=ht[st];break;case 63:mt.addRel("rel_d",...ht[st]),this.$=ht[st];break;case 64:mt.addRel("rel_l",...ht[st]),this.$=ht[st];break;case 65:mt.addRel("rel_r",...ht[st]),this.$=ht[st];break;case 66:mt.addRel("rel_b",...ht[st]),this.$=ht[st];break;case 67:ht[st].splice(0,1),mt.addRel("rel",...ht[st]),this.$=ht[st];break;case 68:mt.updateElStyle("update_el_style",...ht[st]),this.$=ht[st];break;case 69:mt.updateRelStyle("update_rel_style",...ht[st]),this.$=ht[st];break;case 70:mt.updateLayoutConfig("update_layout_config",...ht[st]),this.$=ht[st];break;case 71:this.$=[ht[st]];break;case 72:ht[st].unshift(ht[st-1]),this.$=ht[st];break;case 73:case 75:this.$=ht[st].trim();break;case 74:let Tt={};Tt[ht[st-1].trim()]=ht[st].trim(),this.$=Tt;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{13:70,19:20,20:21,21:22,22:t,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{13:71,19:20,20:21,21:22,22:t,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{13:72,19:20,20:21,21:22,22:t,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{13:73,19:20,20:21,21:22,22:t,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{14:[1,74]},e(Z,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J}),e(Z,[2,14]),e(H,[2,16],{12:[1,76]}),e(Z,[2,36],{12:[1,77]}),e(q,[2,19]),e(q,[2,20]),{25:[1,78]},{27:[1,79]},e(q,[2,23]),{35:80,75:81,76:K,77:ot,79:ct,80:ut},{35:86,75:81,76:K,77:ot,79:ct,80:ut},{35:87,75:81,76:K,77:ot,79:ct,80:ut},{35:88,75:81,76:K,77:ot,79:ct,80:ut},{35:89,75:81,76:K,77:ot,79:ct,80:ut},{35:90,75:81,76:K,77:ot,79:ct,80:ut},{35:91,75:81,76:K,77:ot,79:ct,80:ut},{35:92,75:81,76:K,77:ot,79:ct,80:ut},{35:93,75:81,76:K,77:ot,79:ct,80:ut},{35:94,75:81,76:K,77:ot,79:ct,80:ut},{35:95,75:81,76:K,77:ot,79:ct,80:ut},{35:96,75:81,76:K,77:ot,79:ct,80:ut},{35:97,75:81,76:K,77:ot,79:ct,80:ut},{35:98,75:81,76:K,77:ot,79:ct,80:ut},{35:99,75:81,76:K,77:ot,79:ct,80:ut},{35:100,75:81,76:K,77:ot,79:ct,80:ut},{35:101,75:81,76:K,77:ot,79:ct,80:ut},{35:102,75:81,76:K,77:ot,79:ct,80:ut},{35:103,75:81,76:K,77:ot,79:ct,80:ut},{35:104,75:81,76:K,77:ot,79:ct,80:ut},e(et,[2,59]),{35:105,75:81,76:K,77:ot,79:ct,80:ut},{35:106,75:81,76:K,77:ot,79:ct,80:ut},{35:107,75:81,76:K,77:ot,79:ct,80:ut},{35:108,75:81,76:K,77:ot,79:ct,80:ut},{35:109,75:81,76:K,77:ot,79:ct,80:ut},{35:110,75:81,76:K,77:ot,79:ct,80:ut},{35:111,75:81,76:K,77:ot,79:ct,80:ut},{35:112,75:81,76:K,77:ot,79:ct,80:ut},{35:113,75:81,76:K,77:ot,79:ct,80:ut},{35:114,75:81,76:K,77:ot,79:ct,80:ut},{35:115,75:81,76:K,77:ot,79:ct,80:ut},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J},{12:[1,118],33:[1,117]},{35:119,75:81,76:K,77:ot,79:ct,80:ut},{35:120,75:81,76:K,77:ot,79:ct,80:ut},{35:121,75:81,76:K,77:ot,79:ct,80:ut},{35:122,75:81,76:K,77:ot,79:ct,80:ut},{35:123,75:81,76:K,77:ot,79:ct,80:ut},{35:124,75:81,76:K,77:ot,79:ct,80:ut},{35:125,75:81,76:K,77:ot,79:ct,80:ut},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Z,[2,15]),e(H,[2,17],{21:22,19:130,22:t,23:r,24:n,26:i,28:a}),e(Z,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:S,52:T,53:E,54:_,55:A,56:L,57:M,58:N,59:k,60:I,61:C,62:O,63:D,64:P,65:F,66:B,67:G,68:z,69:W,70:Q,71:j,72:at,73:X,74:J}),e(q,[2,21]),e(q,[2,22]),e(et,[2,39]),e(Mt,[2,71],{75:81,35:132,76:K,77:ot,79:ct,80:ut}),e(it,[2,73]),{78:[1,133]},e(it,[2,75]),e(it,[2,76]),e(et,[2,40]),e(et,[2,41]),e(et,[2,42]),e(et,[2,43]),e(et,[2,44]),e(et,[2,45]),e(et,[2,46]),e(et,[2,47]),e(et,[2,48]),e(et,[2,49]),e(et,[2,50]),e(et,[2,51]),e(et,[2,52]),e(et,[2,53]),e(et,[2,54]),e(et,[2,55]),e(et,[2,56]),e(et,[2,57]),e(et,[2,58]),e(et,[2,60]),e(et,[2,61]),e(et,[2,62]),e(et,[2,63]),e(et,[2,64]),e(et,[2,65]),e(et,[2,66]),e(et,[2,67]),e(et,[2,68]),e(et,[2,69]),e(et,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(wt,[2,28]),e(wt,[2,29]),e(wt,[2,30]),e(wt,[2,31]),e(wt,[2,32]),e(wt,[2,33]),e(wt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(H,[2,18]),e(Z,[2,38]),e(Mt,[2,72]),e(it,[2,74]),e(et,[2,24]),e(et,[2,35]),e(Ot,[2,25]),e(Ot,[2,26],{12:[1,138]}),e(Ot,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(dt,Y){if(Y.recoverable)this.trace(dt);else{var ft=new Error(dt);throw ft.hash=Y,ft}},"parseError"),parse:o(function(dt){var Y=this,ft=[0],mt=[],rt=[null],ht=[],nt=this.table,st="",Tt=0,kt=0,Ct=0,At=2,$t=1,Nt=ht.slice.call(arguments,1),yt=Object.create(this.lexer),Ut={yy:{}};for(var zt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,zt)&&(Ut.yy[zt]=this.yy[zt]);yt.setInput(dt,Ut.yy),Ut.yy.lexer=yt,Ut.yy.parser=this,typeof yt.yylloc>"u"&&(yt.yylloc={});var ae=yt.yylloc;ht.push(ae);var ke=yt.options&&yt.options.ranges;typeof Ut.yy.parseError=="function"?this.parseError=Ut.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ee(qe){ft.length=ft.length-2*qe,rt.length=rt.length-qe,ht.length=ht.length-qe}o(Ee,"popStack");function le(){var qe;return qe=mt.pop()||yt.lex()||$t,typeof qe!="number"&&(qe instanceof Array&&(mt=qe,qe=mt.pop()),qe=Y.symbols_[qe]||qe),qe}o(le,"lex");for(var Zt,me,Ht,ne,xe,Se,Ye={},fe,ee,pe,Me;;){if(Ht=ft[ft.length-1],this.defaultActions[Ht]?ne=this.defaultActions[Ht]:((Zt===null||typeof Zt>"u")&&(Zt=le()),ne=nt[Ht]&&nt[Ht][Zt]),typeof ne>"u"||!ne.length||!ne[0]){var oe="";Me=[];for(fe in nt[Ht])this.terminals_[fe]&&fe>At&&Me.push("'"+this.terminals_[fe]+"'");yt.showPosition?oe="Parse error on line "+(Tt+1)+`: +`+yt.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[Zt]||Zt)+"'":oe="Parse error on line "+(Tt+1)+": Unexpected "+(Zt==$t?"end of input":"'"+(this.terminals_[Zt]||Zt)+"'"),this.parseError(oe,{text:yt.match,token:this.terminals_[Zt]||Zt,line:yt.yylineno,loc:ae,expected:Me})}if(ne[0]instanceof Array&&ne.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ht+", token: "+Zt);switch(ne[0]){case 1:ft.push(Zt),rt.push(yt.yytext),ht.push(yt.yylloc),ft.push(ne[1]),Zt=null,me?(Zt=me,me=null):(kt=yt.yyleng,st=yt.yytext,Tt=yt.yylineno,ae=yt.yylloc,Ct>0&&Ct--);break;case 2:if(ee=this.productions_[ne[1]][1],Ye.$=rt[rt.length-ee],Ye._$={first_line:ht[ht.length-(ee||1)].first_line,last_line:ht[ht.length-1].last_line,first_column:ht[ht.length-(ee||1)].first_column,last_column:ht[ht.length-1].last_column},ke&&(Ye._$.range=[ht[ht.length-(ee||1)].range[0],ht[ht.length-1].range[1]]),Se=this.performAction.apply(Ye,[st,kt,Tt,Ut.yy,ne[1],rt,ht].concat(Nt)),typeof Se<"u")return Se;ee&&(ft=ft.slice(0,-1*ee*2),rt=rt.slice(0,-1*ee),ht=ht.slice(0,-1*ee)),ft.push(this.productions_[ne[1]][0]),rt.push(Ye.$),ht.push(Ye._$),pe=nt[ft[ft.length-2]][ft[ft.length-1]],ft.push(pe);break;case 3:return!0}}return!0},"parse")},Vt=function(){var _t={EOF:1,parseError:o(function(Y,ft){if(this.yy.parser)this.yy.parser.parseError(Y,ft);else throw new Error(Y)},"parseError"),setInput:o(function(dt,Y){return this.yy=Y||this.yy||{},this._input=dt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var dt=this._input[0];this.yytext+=dt,this.yyleng++,this.offset++,this.match+=dt,this.matched+=dt;var Y=dt.match(/(?:\r\n?|\n).*/g);return Y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),dt},"input"),unput:o(function(dt){var Y=dt.length,ft=dt.split(/(?:\r\n?|\n)/g);this._input=dt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Y),this.offset-=Y;var mt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ft.length-1&&(this.yylineno-=ft.length-1);var rt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ft?(ft.length===mt.length?this.yylloc.first_column:0)+mt[mt.length-ft.length].length-ft[0].length:this.yylloc.first_column-Y},this.options.ranges&&(this.yylloc.range=[rt[0],rt[0]+this.yyleng-Y]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(dt){this.unput(this.match.slice(dt))},"less"),pastInput:o(function(){var dt=this.matched.substr(0,this.matched.length-this.match.length);return(dt.length>20?"...":"")+dt.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var dt=this.match;return dt.length<20&&(dt+=this._input.substr(0,20-dt.length)),(dt.substr(0,20)+(dt.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var dt=this.pastInput(),Y=new Array(dt.length+1).join("-");return dt+this.upcomingInput()+` +`+Y+"^"},"showPosition"),test_match:o(function(dt,Y){var ft,mt,rt;if(this.options.backtrack_lexer&&(rt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(rt.yylloc.range=this.yylloc.range.slice(0))),mt=dt[0].match(/(?:\r\n?|\n).*/g),mt&&(this.yylineno+=mt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:mt?mt[mt.length-1].length-mt[mt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+dt[0].length},this.yytext+=dt[0],this.match+=dt[0],this.matches=dt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(dt[0].length),this.matched+=dt[0],ft=this.performAction.call(this,this.yy,this,Y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ft)return ft;if(this._backtrack){for(var ht in rt)this[ht]=rt[ht];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var dt,Y,ft,mt;this._more||(this.yytext="",this.match="");for(var rt=this._currentRules(),ht=0;htY[0].length)){if(Y=ft,mt=ht,this.options.backtrack_lexer){if(dt=this.test_match(ft,rt[ht]),dt!==!1)return dt;if(this._backtrack){Y=!1;continue}else return!1}else if(!this.options.flex)break}return Y?(dt=this.test_match(Y,rt[mt]),dt!==!1?dt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Y=this.next();return Y||this.lex()},"lex"),begin:o(function(Y){this.conditionStack.push(Y)},"begin"),popState:o(function(){var Y=this.conditionStack.length-1;return Y>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Y){return Y=this.conditionStack.length-1-Math.abs(Y||0),Y>=0?this.conditionStack[Y]:"INITIAL"},"topState"),pushState:o(function(Y){this.begin(Y)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Y,ft,mt,rt){var ht=rt;switch(mt){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return _t}();St.lexer=Vt;function Pt(){this.yy={}}return o(Pt,"Parser"),Pt.prototype=St,St.Parser=Pt,new Pt}();ty.parser=ty;t$=ty});var DS,Vn,yp=R(()=>{"use strict";DS=o((e,t,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(t)&&!Array.isArray(e)?(t.forEach(a=>DS(e,a,i)),e):Array.isArray(t)&&Array.isArray(e)?(t.forEach(a=>{e.includes(a)||e.push(a)}),e):e===void 0||r<=0?e!=null&&typeof e=="object"&&typeof t=="object"?Object.assign(e,t):t:(t!==void 0&&typeof e=="object"&&typeof t=="object"&&Object.keys(t).forEach(a=>{typeof t[a]=="object"&&(e[a]===void 0||typeof e[a]=="object")?(e[a]===void 0&&(e[a]=Array.isArray(t[a])?[]:{}),e[a]=DS(e[a],t[a],{depth:r-1,clobber:n})):(n||typeof e[a]!="object"&&typeof t[a]!="object")&&(e[a]=t[a])}),e)},"assignWithDepth"),Vn=DS});var u4,e$,r$=R(()=>{"use strict";u4={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(e=>e>=255?255:e<0?0:e,"r"),g:o(e=>e>=255?255:e<0?0:e,"g"),b:o(e=>e>=255?255:e<0?0:e,"b"),h:o(e=>e%360,"h"),s:o(e=>e>=100?100:e<0?0:e,"s"),l:o(e=>e>=100?100:e<0?0:e,"l"),a:o(e=>e>=1?1:e<0?0:e,"a")},toLinear:o(e=>{let t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},"toLinear"),hue2rgb:o((e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?e+(t-e)*6*r:r<.5?t:r<.6666666666666666?e+(t-e)*(.6666666666666666-r)*6:e),"hue2rgb"),hsl2rgb:o(({h:e,s:t,l:r},n)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;let i=r<.5?r*(1+t):r+t-r*t,a=2*r-i;switch(n){case"r":return u4.hue2rgb(a,i,e+.3333333333333333)*255;case"g":return u4.hue2rgb(a,i,e)*255;case"b":return u4.hue2rgb(a,i,e-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:e,g:t,b:r},n)=>{e/=255,t/=255,r/=255;let i=Math.max(e,t,r),a=Math.min(e,t,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case e:return((t-r)/l+(t{"use strict";Pxt={clamp:o((e,t,r)=>t>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),"clamp"),round:o(e=>Math.round(e*1e10)/1e10,"round")},n$=Pxt});var Bxt,a$,s$=R(()=>{"use strict";Bxt={dec2hex:o(e=>{let t=Math.round(e).toString(16);return t.length>1?t:`0${t}`},"dec2hex")},a$=Bxt});var Fxt,We,rc=R(()=>{"use strict";r$();i$();s$();Fxt={channel:e$,lang:n$,unit:a$},We=Fxt});var au,Mi,ey=R(()=>{"use strict";rc();au={};for(let e=0;e<=255;e++)au[e]=We.unit.dec2hex(e);Mi={ALL:0,RGB:1,HSL:2}});var RS,o$,l$=R(()=>{"use strict";ey();RS=class{static{o(this,"Type")}constructor(){this.type=Mi.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=Mi.ALL}is(t){return this.type===t}},o$=RS});var NS,c$,u$=R(()=>{"use strict";rc();l$();ey();NS=class{static{o(this,"Channels")}constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new o$}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=Mi.ALL,this}_ensureHSL(){let t=this.data,{h:r,s:n,l:i}=t;r===void 0&&(t.h=We.channel.rgb2hsl(t,"h")),n===void 0&&(t.s=We.channel.rgb2hsl(t,"s")),i===void 0&&(t.l=We.channel.rgb2hsl(t,"l"))}_ensureRGB(){let t=this.data,{r,g:n,b:i}=t;r===void 0&&(t.r=We.channel.hsl2rgb(t,"r")),n===void 0&&(t.g=We.channel.hsl2rgb(t,"g")),i===void 0&&(t.b=We.channel.hsl2rgb(t,"b"))}get r(){let t=this.data,r=t.r;return!this.type.is(Mi.HSL)&&r!==void 0?r:(this._ensureHSL(),We.channel.hsl2rgb(t,"r"))}get g(){let t=this.data,r=t.g;return!this.type.is(Mi.HSL)&&r!==void 0?r:(this._ensureHSL(),We.channel.hsl2rgb(t,"g"))}get b(){let t=this.data,r=t.b;return!this.type.is(Mi.HSL)&&r!==void 0?r:(this._ensureHSL(),We.channel.hsl2rgb(t,"b"))}get h(){let t=this.data,r=t.h;return!this.type.is(Mi.RGB)&&r!==void 0?r:(this._ensureRGB(),We.channel.rgb2hsl(t,"h"))}get s(){let t=this.data,r=t.s;return!this.type.is(Mi.RGB)&&r!==void 0?r:(this._ensureRGB(),We.channel.rgb2hsl(t,"s"))}get l(){let t=this.data,r=t.l;return!this.type.is(Mi.RGB)&&r!==void 0?r:(this._ensureRGB(),We.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(Mi.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(Mi.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(Mi.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(Mi.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(Mi.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(Mi.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}},c$=NS});var zxt,lh,ry=R(()=>{"use strict";u$();zxt=new c$({r:0,g:0,b:0,a:0},"transparent"),lh=zxt});var h$,Kf,MS=R(()=>{"use strict";ry();ey();h$={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(e=>{if(e.charCodeAt(0)!==35)return;let t=e.match(h$.re);if(!t)return;let r=t[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return lh.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},e)},"parse"),stringify:o(e=>{let{r:t,g:r,b:n,a:i}=e;return i<1?`#${au[Math.round(t)]}${au[Math.round(r)]}${au[Math.round(n)]}${au[Math.round(i*255)]}`:`#${au[Math.round(t)]}${au[Math.round(r)]}${au[Math.round(n)]}`},"stringify")},Kf=h$});var h4,ny,f$=R(()=>{"use strict";rc();ry();h4={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(e=>{let t=e.match(h4.hueRe);if(t){let[,r,n]=t;switch(n){case"grad":return We.channel.clamp.h(parseFloat(r)*.9);case"rad":return We.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return We.channel.clamp.h(parseFloat(r)*360)}}return We.channel.clamp.h(parseFloat(e))},"_hue2deg"),parse:o(e=>{let t=e.charCodeAt(0);if(t!==104&&t!==72)return;let r=e.match(h4.re);if(!r)return;let[,n,i,a,s,l]=r;return lh.set({h:h4._hue2deg(n),s:We.channel.clamp.s(parseFloat(i)),l:We.channel.clamp.l(parseFloat(a)),a:s?We.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},e)},"parse"),stringify:o(e=>{let{h:t,s:r,l:n,a:i}=e;return i<1?`hsla(${We.lang.round(t)}, ${We.lang.round(r)}%, ${We.lang.round(n)}%, ${i})`:`hsl(${We.lang.round(t)}, ${We.lang.round(r)}%, ${We.lang.round(n)}%)`},"stringify")},ny=h4});var f4,IS,d$=R(()=>{"use strict";MS();f4={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(e=>{e=e.toLowerCase();let t=f4.colors[e];if(t)return Kf.parse(t)},"parse"),stringify:o(e=>{let t=Kf.stringify(e);for(let r in f4.colors)if(f4.colors[r]===t)return r},"stringify")},IS=f4});var p$,iy,m$=R(()=>{"use strict";rc();ry();p$={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(e=>{let t=e.charCodeAt(0);if(t!==114&&t!==82)return;let r=e.match(p$.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return lh.set({r:We.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:We.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:We.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?We.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},e)},"parse"),stringify:o(e=>{let{r:t,g:r,b:n,a:i}=e;return i<1?`rgba(${We.lang.round(t)}, ${We.lang.round(r)}, ${We.lang.round(n)}, ${We.lang.round(i)})`:`rgb(${We.lang.round(t)}, ${We.lang.round(r)}, ${We.lang.round(n)})`},"stringify")},iy=p$});var $xt,Ii,su=R(()=>{"use strict";MS();f$();d$();m$();ey();$xt={format:{keyword:IS,hex:Kf,rgb:iy,rgba:iy,hsl:ny,hsla:ny},parse:o(e=>{if(typeof e!="string")return e;let t=Kf.parse(e)||iy.parse(e)||ny.parse(e)||IS.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},"parse"),stringify:o(e=>!e.changed&&e.color?e.color:e.type.is(Mi.HSL)||e.data.r===void 0?ny.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?iy.stringify(e):Kf.stringify(e),"stringify")},Ii=$xt});var Gxt,d4,OS=R(()=>{"use strict";rc();su();Gxt=o((e,t)=>{let r=Ii.parse(e);for(let n in t)r[n]=We.channel.clamp[n](t[n]);return Ii.stringify(r)},"change"),d4=Gxt});var Vxt,Xs,PS=R(()=>{"use strict";rc();ry();su();OS();Vxt=o((e,t,r=0,n=1)=>{if(typeof e!="number")return d4(e,{a:t});let i=lh.set({r:We.channel.clamp.r(e),g:We.channel.clamp.g(t),b:We.channel.clamp.b(r),a:We.channel.clamp.a(n)});return Ii.stringify(i)},"rgba"),Xs=Vxt});var Uxt,ay,g$=R(()=>{"use strict";rc();su();Uxt=o((e,t)=>We.lang.round(Ii.parse(e)[t]),"channel"),ay=Uxt});var Hxt,y$,v$=R(()=>{"use strict";rc();su();Hxt=o(e=>{let{r:t,g:r,b:n}=Ii.parse(e),i=.2126*We.channel.toLinear(t)+.7152*We.channel.toLinear(r)+.0722*We.channel.toLinear(n);return We.lang.round(i)},"luminance"),y$=Hxt});var Wxt,x$,b$=R(()=>{"use strict";v$();Wxt=o(e=>y$(e)>=.5,"isLight"),x$=Wxt});var Yxt,Ka,w$=R(()=>{"use strict";b$();Yxt=o(e=>!x$(e),"isDark"),Ka=Yxt});var qxt,p4,BS=R(()=>{"use strict";rc();su();qxt=o((e,t,r)=>{let n=Ii.parse(e),i=n[t],a=We.channel.clamp[t](i+r);return i!==a&&(n[t]=a),Ii.stringify(n)},"adjustChannel"),p4=qxt});var Xxt,Re,T$=R(()=>{"use strict";BS();Xxt=o((e,t)=>p4(e,"l",t),"lighten"),Re=Xxt});var jxt,Pe,k$=R(()=>{"use strict";BS();jxt=o((e,t)=>p4(e,"l",-t),"darken"),Pe=jxt});var Kxt,It,E$=R(()=>{"use strict";su();OS();Kxt=o((e,t)=>{let r=Ii.parse(e),n={};for(let i in t)t[i]&&(n[i]=r[i]+t[i]);return d4(e,n)},"adjust"),It=Kxt});var Qxt,C$,S$=R(()=>{"use strict";su();PS();Qxt=o((e,t,r=50)=>{let{r:n,g:i,b:a,a:s}=Ii.parse(e),{r:l,g:u,b:h,a:f}=Ii.parse(t),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,w=a*y+h*v,S=s*d+f*(1-d);return Xs(x,b,w,S)},"mix"),C$=Qxt});var Zxt,ye,A$=R(()=>{"use strict";su();S$();Zxt=o((e,t=100)=>{let r=Ii.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,C$(r,e,t)},"invert"),ye=Zxt});var _$=R(()=>{"use strict";PS();g$();w$();T$();k$();E$();A$()});var ul=R(()=>{"use strict";_$()});var ch,uh,sy=R(()=>{"use strict";ch="#ffffff",uh="#f2f2f2"});var ki,vp=R(()=>{"use strict";ul();ki=o((e,t)=>t?It(e,{s:-40,l:10}):It(e,{s:-40,l:-10}),"mkBorder")});var FS,D$,R$=R(()=>{"use strict";ul();sy();vp();FS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||It(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||It(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ki(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ki(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ki(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ki(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||ye(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||ye(this.tertiaryColor),this.lineColor=this.lineColor||ye(this.background),this.arrowheadColor=this.arrowheadColor||ye(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Pe(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Pe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||ye(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Re(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||It(this.primaryColor,{h:30}),this.cScale4=this.cScale4||It(this.primaryColor,{h:60}),this.cScale5=this.cScale5||It(this.primaryColor,{h:90}),this.cScale6=this.cScale6||It(this.primaryColor,{h:120}),this.cScale7=this.cScale7||It(this.primaryColor,{h:150}),this.cScale8=this.cScale8||It(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||It(this.primaryColor,{h:270}),this.cScale10=this.cScale10||It(this.primaryColor,{h:300}),this.cScale11=this.cScale11||It(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=t[n]}),this.updateColors(),r.forEach(n=>{this[n]=t[n]})}},D$=o(e=>{let t=new FS;return t.calculate(e),t},"getThemeVariables")});var zS,N$,M$=R(()=>{"use strict";ul();vp();zS=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Re(this.primaryColor,16),this.tertiaryColor=It(this.primaryColor,{h:-160}),this.primaryBorderColor=ye(this.background),this.secondaryBorderColor=ki(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ki(this.tertiaryColor,this.darkMode),this.primaryTextColor=ye(this.primaryColor),this.secondaryTextColor=ye(this.secondaryColor),this.tertiaryTextColor=ye(this.tertiaryColor),this.lineColor=ye(this.background),this.textColor=ye(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Re(ye("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Xs(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Pe("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Pe(this.sectionBkgColor,10),this.taskBorderColor=Xs(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Xs(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Re(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Re(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Re(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=It(this.primaryColor,{h:64}),this.fillType3=It(this.secondaryColor,{h:64}),this.fillType4=It(this.primaryColor,{h:-64}),this.fillType5=It(this.secondaryColor,{h:-64}),this.fillType6=It(this.primaryColor,{h:128}),this.fillType7=It(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||It(this.primaryColor,{h:30}),this.cScale4=this.cScale4||It(this.primaryColor,{h:60}),this.cScale5=this.cScale5||It(this.primaryColor,{h:90}),this.cScale6=this.cScale6||It(this.primaryColor,{h:120}),this.cScale7=this.cScale7||It(this.primaryColor,{h:150}),this.cScale8=this.cScale8||It(this.primaryColor,{h:210}),this.cScale9=this.cScale9||It(this.primaryColor,{h:270}),this.cScale10=this.cScale10||It(this.primaryColor,{h:300}),this.cScale11=this.cScale11||It(this.primaryColor,{h:330});for(let t=0;t{this[n]=t[n]}),this.updateColors(),r.forEach(n=>{this[n]=t[n]})}},N$=o(e=>{let t=new zS;return t.calculate(e),t},"getThemeVariables")});var $S,xp,m4=R(()=>{"use strict";ul();vp();sy();$S=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=It(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=It(this.primaryColor,{h:-160}),this.primaryBorderColor=ki(this.primaryColor,this.darkMode),this.secondaryBorderColor=ki(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ki(this.tertiaryColor,this.darkMode),this.primaryTextColor=ye(this.primaryColor),this.secondaryTextColor=ye(this.secondaryColor),this.tertiaryTextColor=ye(this.tertiaryColor),this.lineColor=ye(this.background),this.textColor=ye(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Xs(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||It(this.primaryColor,{h:30}),this.cScale4=this.cScale4||It(this.primaryColor,{h:60}),this.cScale5=this.cScale5||It(this.primaryColor,{h:90}),this.cScale6=this.cScale6||It(this.primaryColor,{h:120}),this.cScale7=this.cScale7||It(this.primaryColor,{h:150}),this.cScale8=this.cScale8||It(this.primaryColor,{h:210}),this.cScale9=this.cScale9||It(this.primaryColor,{h:270}),this.cScale10=this.cScale10||It(this.primaryColor,{h:300}),this.cScale11=this.cScale11||It(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pe(this.tertiaryColor,40);for(let t=0;t{this[n]=t[n]}),this.updateColors(),r.forEach(n=>{this[n]=t[n]})}},xp=o(e=>{let t=new $S;return t.calculate(e),t},"getThemeVariables")});var GS,I$,O$=R(()=>{"use strict";ul();sy();vp();GS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Re("#cde498",10),this.primaryBorderColor=ki(this.primaryColor,this.darkMode),this.secondaryBorderColor=ki(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ki(this.tertiaryColor,this.darkMode),this.primaryTextColor=ye(this.primaryColor),this.secondaryTextColor=ye(this.secondaryColor),this.tertiaryTextColor=ye(this.primaryColor),this.lineColor=ye(this.background),this.textColor=ye(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Pe(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||It(this.primaryColor,{h:30}),this.cScale4=this.cScale4||It(this.primaryColor,{h:60}),this.cScale5=this.cScale5||It(this.primaryColor,{h:90}),this.cScale6=this.cScale6||It(this.primaryColor,{h:120}),this.cScale7=this.cScale7||It(this.primaryColor,{h:150}),this.cScale8=this.cScale8||It(this.primaryColor,{h:210}),this.cScale9=this.cScale9||It(this.primaryColor,{h:270}),this.cScale10=this.cScale10||It(this.primaryColor,{h:300}),this.cScale11=this.cScale11||It(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pe(this.tertiaryColor,40);for(let t=0;t{this[n]=t[n]}),this.updateColors(),r.forEach(n=>{this[n]=t[n]})}},I$=o(e=>{let t=new GS;return t.calculate(e),t},"getThemeVariables")});var VS,P$,B$=R(()=>{"use strict";ul();vp();sy();VS=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Re(this.contrast,55),this.background="#ffffff",this.tertiaryColor=It(this.primaryColor,{h:-160}),this.primaryBorderColor=ki(this.primaryColor,this.darkMode),this.secondaryBorderColor=ki(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ki(this.tertiaryColor,this.darkMode),this.primaryTextColor=ye(this.primaryColor),this.secondaryTextColor=ye(this.secondaryColor),this.tertiaryTextColor=ye(this.tertiaryColor),this.lineColor=ye(this.background),this.textColor=ye(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Re(this.contrast,55),this.border2=this.contrast,this.actorBorder=Re(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t{this[n]=t[n]}),this.updateColors(),r.forEach(n=>{this[n]=t[n]})}},P$=o(e=>{let t=new VS;return t.calculate(e),t},"getThemeVariables")});var _o,g4=R(()=>{"use strict";R$();M$();m4();O$();B$();_o={base:{getThemeVariables:D$},dark:{getThemeVariables:N$},default:{getThemeVariables:xp},forest:{getThemeVariables:I$},neutral:{getThemeVariables:P$}}});var ou,F$=R(()=>{"use strict";ou={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var z$,$$,G$,Er,hl=R(()=>{"use strict";g4();F$();z$={...ou,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:_o.default.getThemeVariables(),sequence:{...ou.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},gantt:{...ou.gantt,tickInterval:void 0,useWidth:void 0},c4:{...ou.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...ou.pie,useWidth:984},xyChart:{...ou.xyChart,useWidth:void 0},requirement:{...ou.requirement,useWidth:void 0},packet:{...ou.packet}},$$=o((e,t="")=>Object.keys(e).reduce((r,n)=>Array.isArray(e[n])?r:typeof e[n]=="object"&&e[n]!==null?[...r,t+n,...$$(e[n],"")]:[...r,t+n],[]),"keyify"),G$=new Set($$(z$,"")),Er=z$});var bp,Jxt,US=R(()=>{"use strict";hl();ce();bp=o(e=>{if(V.debug("sanitizeDirective called with",e),!(typeof e!="object"||e==null)){if(Array.isArray(e)){e.forEach(t=>bp(t));return}for(let t of Object.keys(e)){if(V.debug("Checking key",t),t.startsWith("__")||t.includes("proto")||t.includes("constr")||!G$.has(t)||e[t]==null){V.debug("sanitize deleting key: ",t),delete e[t];continue}if(typeof e[t]=="object"){V.debug("sanitizing object",t),bp(e[t]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)t.includes(n)&&(V.debug("sanitizing css option",t),e[t]=Jxt(e[t]))}if(e.themeVariables)for(let t of Object.keys(e.themeVariables)){let r=e.themeVariables[t];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(e.themeVariables[t]="")}V.debug("After sanitization",e)}},"sanitizeDirective"),Jxt=o(e=>{let t=0,r=0;for(let n of e){if(t{"use strict";yp();ce();g4();hl();US();hh=Object.freeze(Er),gs=Vn({},hh),wp=[],oy=Vn({},hh),y4=o((e,t)=>{let r=Vn({},e),n={};for(let i of t)Y$(i),n=Vn(n,i);if(r=Vn(r,n),n.theme&&n.theme in _o){let i=Vn({},U$),a=Vn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in _o&&(r.themeVariables=_o[r.theme].getThemeVariables(a))}return oy=r,X$(oy),oy},"updateCurrentConfig"),HS=o(e=>(gs=Vn({},hh),gs=Vn(gs,e),e.theme&&_o[e.theme]&&(gs.themeVariables=_o[e.theme].getThemeVariables(e.themeVariables)),y4(gs,wp),gs),"setSiteConfig"),H$=o(e=>{U$=Vn({},e)},"saveConfigFromInitialize"),W$=o(e=>(gs=Vn(gs,e),y4(gs,wp),gs),"updateSiteConfig"),WS=o(()=>Vn({},gs),"getSiteConfig"),v4=o(e=>(X$(e),Vn(oy,e),Nr()),"setConfig"),Nr=o(()=>Vn({},oy),"getConfig"),Y$=o(e=>{e&&(["secure",...gs.secure??[]].forEach(t=>{Object.hasOwn(e,t)&&(V.debug(`Denied attempt to modify a secure key ${t}`,e[t]),delete e[t])}),Object.keys(e).forEach(t=>{t.startsWith("__")&&delete e[t]}),Object.keys(e).forEach(t=>{typeof e[t]=="string"&&(e[t].includes("<")||e[t].includes(">")||e[t].includes("url(data:"))&&delete e[t],typeof e[t]=="object"&&Y$(e[t])}))},"sanitize"),q$=o(e=>{bp(e),e.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables={...e.themeVariables,fontFamily:e.fontFamily}),wp.push(e),y4(gs,wp)},"addDirective"),ly=o((e=gs)=>{wp=[],y4(e,wp)},"reset"),tbt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},V$={},ebt=o(e=>{V$[e]||(V.warn(tbt[e]),V$[e]=!0)},"issueWarning"),X$=o(e=>{e&&(e.lazyLoadedDiagrams||e.loadExternalDiagramsAtStartup)&&ebt("LAZY_LOAD_DEPRECATED")},"checkConfig")});var XS=Ti((YS,qS)=>{"use strict";(function(e,t){typeof YS=="object"&&typeof qS<"u"?qS.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(YS,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:r,getPrototypeOf:n,getOwnPropertyDescriptor:i}=Object,{freeze:a,seal:s,create:l}=Object,{apply:u,construct:h}=typeof Reflect<"u"&&Reflect;a||(a=o(function(St){return St},"freeze")),s||(s=o(function(St){return St},"seal")),u||(u=o(function(St,Vt,Pt){return St.apply(Vt,Pt)},"apply")),h||(h=o(function(St,Vt){return new St(...Vt)},"construct"));let f=E(Array.prototype.forEach),d=E(Array.prototype.pop),p=E(Array.prototype.push),m=E(String.prototype.toLowerCase),g=E(String.prototype.toString),y=E(String.prototype.match),v=E(String.prototype.replace),x=E(String.prototype.indexOf),b=E(String.prototype.trim),w=E(Object.prototype.hasOwnProperty),S=E(RegExp.prototype.test),T=_(TypeError);function E(Ot){return function(St){for(var Vt=arguments.length,Pt=new Array(Vt>1?Vt-1:0),_t=1;_t2&&arguments[2]!==void 0?arguments[2]:m;t&&t(Ot,null);let Pt=St.length;for(;Pt--;){let _t=St[Pt];if(typeof _t=="string"){let dt=Vt(_t);dt!==_t&&(r(St)||(St[Pt]=dt),_t=dt)}Ot[_t]=!0}return Ot}o(A,"addToSet");function L(Ot){for(let St=0;St/gm),at=s(/\${[\w\W]*}/gm),X=s(/^data-[\-\w.\u00B7-\uFFFF]/),J=s(/^aria-[\-\w]+$/),Z=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),H=s(/^(?:\w+script|data):/i),q=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),K=s(/^html$/i),ot=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var ct=Object.freeze({__proto__:null,MUSTACHE_EXPR:Q,ERB_EXPR:j,TMPLIT_EXPR:at,DATA_ATTR:X,ARIA_ATTR:J,IS_ALLOWED_URI:Z,IS_SCRIPT_OR_DATA:H,ATTR_WHITESPACE:q,DOCTYPE_NAME:K,CUSTOM_ELEMENT:ot});let ut={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},et=o(function(){return typeof window>"u"?null:window},"getGlobal"),Mt=o(function(St,Vt){if(typeof St!="object"||typeof St.createPolicy!="function")return null;let Pt=null,_t="data-tt-policy-suffix";Vt&&Vt.hasAttribute(_t)&&(Pt=Vt.getAttribute(_t));let dt="dompurify"+(Pt?"#"+Pt:"");try{return St.createPolicy(dt,{createHTML(Y){return Y},createScriptURL(Y){return Y}})}catch{return console.warn("TrustedTypes policy "+dt+" could not be created."),null}},"_createTrustedTypesPolicy");function it(){let Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:et(),St=o(Xe=>it(Xe),"DOMPurify");if(St.version="3.1.6",St.removed=[],!Ot||!Ot.document||Ot.document.nodeType!==ut.document)return St.isSupported=!1,St;let{document:Vt}=Ot,Pt=Vt,_t=Pt.currentScript,{DocumentFragment:dt,HTMLTemplateElement:Y,Node:ft,Element:mt,NodeFilter:rt,NamedNodeMap:ht=Ot.NamedNodeMap||Ot.MozNamedAttrMap,HTMLFormElement:nt,DOMParser:st,trustedTypes:Tt}=Ot,kt=mt.prototype,Ct=N(kt,"cloneNode"),At=N(kt,"remove"),$t=N(kt,"nextSibling"),Nt=N(kt,"childNodes"),yt=N(kt,"parentNode");if(typeof Y=="function"){let Xe=Vt.createElement("template");Xe.content&&Xe.content.ownerDocument&&(Vt=Xe.content.ownerDocument)}let Ut,zt="",{implementation:ae,createNodeIterator:ke,createDocumentFragment:Ee,getElementsByTagName:le}=Vt,{importNode:Zt}=Pt,me={};St.isSupported=typeof e=="function"&&typeof yt=="function"&&ae&&ae.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Ht,ERB_EXPR:ne,TMPLIT_EXPR:xe,DATA_ATTR:Se,ARIA_ATTR:Ye,IS_SCRIPT_OR_DATA:fe,ATTR_WHITESPACE:ee,CUSTOM_ELEMENT:pe}=ct,{IS_ALLOWED_URI:Me}=ct,oe=null,qe=A({},[...k,...I,...C,...D,...F]),Cr=null,En=A({},[...B,...G,...z,...W]),or=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ln=null,Ir=null,ii=!0,mn=!0,Pn=!1,Sr=!0,pi=!1,ps=!0,Bn=!1,Eo=!1,cl=!1,Fn=!1,wi=!1,Ae=!1,Ie=!0,we=!1,Wt="user-content-",Fe=!0,gt=!1,gn={},vt=null,qa=A({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),W1=null,Y1=A({},["audio","video","img","source","image","track"]),q1=null,X1=A({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),lp="http://www.w3.org/1998/Math/MathML",jn="http://www.w3.org/2000/svg",ca="http://www.w3.org/1999/xhtml",Zl=ca,Vf=!1,j1=null,mz=A({},[lp,jn,ca],g),Uf=null,ua=["application/xhtml+xml","text/html"],K1="text/html",Cn=null,Ni=null,gz=Vt.createElement("form"),cp=o(function(Dt){return Dt instanceof RegExp||Dt instanceof Function},"isRegexOrFunction"),Jl=o(function(){let Dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ni&&Ni===Dt)){if((!Dt||typeof Dt!="object")&&(Dt={}),Dt=M(Dt),Uf=ua.indexOf(Dt.PARSER_MEDIA_TYPE)===-1?K1:Dt.PARSER_MEDIA_TYPE,Cn=Uf==="application/xhtml+xml"?g:m,oe=w(Dt,"ALLOWED_TAGS")?A({},Dt.ALLOWED_TAGS,Cn):qe,Cr=w(Dt,"ALLOWED_ATTR")?A({},Dt.ALLOWED_ATTR,Cn):En,j1=w(Dt,"ALLOWED_NAMESPACES")?A({},Dt.ALLOWED_NAMESPACES,g):mz,q1=w(Dt,"ADD_URI_SAFE_ATTR")?A(M(X1),Dt.ADD_URI_SAFE_ATTR,Cn):X1,W1=w(Dt,"ADD_DATA_URI_TAGS")?A(M(Y1),Dt.ADD_DATA_URI_TAGS,Cn):Y1,vt=w(Dt,"FORBID_CONTENTS")?A({},Dt.FORBID_CONTENTS,Cn):qa,ln=w(Dt,"FORBID_TAGS")?A({},Dt.FORBID_TAGS,Cn):{},Ir=w(Dt,"FORBID_ATTR")?A({},Dt.FORBID_ATTR,Cn):{},gn=w(Dt,"USE_PROFILES")?Dt.USE_PROFILES:!1,ii=Dt.ALLOW_ARIA_ATTR!==!1,mn=Dt.ALLOW_DATA_ATTR!==!1,Pn=Dt.ALLOW_UNKNOWN_PROTOCOLS||!1,Sr=Dt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,pi=Dt.SAFE_FOR_TEMPLATES||!1,ps=Dt.SAFE_FOR_XML!==!1,Bn=Dt.WHOLE_DOCUMENT||!1,Fn=Dt.RETURN_DOM||!1,wi=Dt.RETURN_DOM_FRAGMENT||!1,Ae=Dt.RETURN_TRUSTED_TYPE||!1,cl=Dt.FORCE_BODY||!1,Ie=Dt.SANITIZE_DOM!==!1,we=Dt.SANITIZE_NAMED_PROPS||!1,Fe=Dt.KEEP_CONTENT!==!1,gt=Dt.IN_PLACE||!1,Me=Dt.ALLOWED_URI_REGEXP||Z,Zl=Dt.NAMESPACE||ca,or=Dt.CUSTOM_ELEMENT_HANDLING||{},Dt.CUSTOM_ELEMENT_HANDLING&&cp(Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(or.tagNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&cp(Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(or.attributeNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&typeof Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(or.allowCustomizedBuiltInElements=Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),pi&&(mn=!1),wi&&(Fn=!0),gn&&(oe=A({},F),Cr=[],gn.html===!0&&(A(oe,k),A(Cr,B)),gn.svg===!0&&(A(oe,I),A(Cr,G),A(Cr,W)),gn.svgFilters===!0&&(A(oe,C),A(Cr,G),A(Cr,W)),gn.mathMl===!0&&(A(oe,D),A(Cr,z),A(Cr,W))),Dt.ADD_TAGS&&(oe===qe&&(oe=M(oe)),A(oe,Dt.ADD_TAGS,Cn)),Dt.ADD_ATTR&&(Cr===En&&(Cr=M(Cr)),A(Cr,Dt.ADD_ATTR,Cn)),Dt.ADD_URI_SAFE_ATTR&&A(q1,Dt.ADD_URI_SAFE_ATTR,Cn),Dt.FORBID_CONTENTS&&(vt===qa&&(vt=M(vt)),A(vt,Dt.FORBID_CONTENTS,Cn)),Fe&&(oe["#text"]=!0),Bn&&A(oe,["html","head","body"]),oe.table&&(A(oe,["tbody"]),delete ln.tbody),Dt.TRUSTED_TYPES_POLICY){if(typeof Dt.TRUSTED_TYPES_POLICY.createHTML!="function")throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Dt.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Ut=Dt.TRUSTED_TYPES_POLICY,zt=Ut.createHTML("")}else Ut===void 0&&(Ut=Mt(Tt,_t)),Ut!==null&&typeof zt=="string"&&(zt=Ut.createHTML(""));a&&a(Dt),Ni=Dt}},"_parseConfig"),Hf=A({},["mi","mo","mn","ms","mtext"]),Co=A({},["foreignobject","annotation-xml"]),Kb=A({},["title","style","font","a","script"]),Wf=A({},[...I,...C,...O]),up=A({},[...D,...P]),Xa=o(function(Dt){let ge=yt(Dt);(!ge||!ge.tagName)&&(ge={namespaceURI:Zl,tagName:"template"});let ze=m(Dt.tagName),Sn=m(ge.tagName);return j1[Dt.namespaceURI]?Dt.namespaceURI===jn?ge.namespaceURI===ca?ze==="svg":ge.namespaceURI===lp?ze==="svg"&&(Sn==="annotation-xml"||Hf[Sn]):!!Wf[ze]:Dt.namespaceURI===lp?ge.namespaceURI===ca?ze==="math":ge.namespaceURI===jn?ze==="math"&&Co[Sn]:!!up[ze]:Dt.namespaceURI===ca?ge.namespaceURI===jn&&!Co[Sn]||ge.namespaceURI===lp&&!Hf[Sn]?!1:!up[ze]&&(Kb[ze]||!Wf[ze]):!!(Uf==="application/xhtml+xml"&&j1[Dt.namespaceURI]):!1},"_checkValidNamespace"),tc=o(function(Dt){p(St.removed,{element:Dt});try{yt(Dt).removeChild(Dt)}catch{At(Dt)}},"_forceRemove"),Qb=o(function(Dt,ge){try{p(St.removed,{attribute:ge.getAttributeNode(Dt),from:ge})}catch{p(St.removed,{attribute:null,from:ge})}if(ge.removeAttribute(Dt),Dt==="is"&&!Cr[Dt])if(Fn||wi)try{tc(ge)}catch{}else try{ge.setAttribute(Dt,"")}catch{}},"_removeAttribute"),yz=o(function(Dt){let ge=null,ze=null;if(cl)Dt=""+Dt;else{let ha=y(Dt,/^[\r\n\t ]+/);ze=ha&&ha[0]}Uf==="application/xhtml+xml"&&Zl===ca&&(Dt=''+Dt+"");let Sn=Ut?Ut.createHTML(Dt):Dt;if(Zl===ca)try{ge=new st().parseFromString(Sn,Uf)}catch{}if(!ge||!ge.documentElement){ge=ae.createDocument(Zl,"template",null);try{ge.documentElement.innerHTML=Vf?zt:Sn}catch{}}let Na=ge.body||ge.documentElement;return Dt&&ze&&Na.insertBefore(Vt.createTextNode(ze),Na.childNodes[0]||null),Zl===ca?le.call(ge,Bn?"html":"body")[0]:Bn?ge.documentElement:Na},"_initDocument"),vz=o(function(Dt){return ke.call(Dt.ownerDocument||Dt,Dt,rt.SHOW_ELEMENT|rt.SHOW_COMMENT|rt.SHOW_TEXT|rt.SHOW_PROCESSING_INSTRUCTION|rt.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),xz=o(function(Dt){return Dt instanceof nt&&(typeof Dt.nodeName!="string"||typeof Dt.textContent!="string"||typeof Dt.removeChild!="function"||!(Dt.attributes instanceof ht)||typeof Dt.removeAttribute!="function"||typeof Dt.setAttribute!="function"||typeof Dt.namespaceURI!="string"||typeof Dt.insertBefore!="function"||typeof Dt.hasChildNodes!="function")},"_isClobbered"),bz=o(function(Dt){return typeof ft=="function"&&Dt instanceof ft},"_isNode"),ru=o(function(Dt,ge,ze){me[Dt]&&f(me[Dt],Sn=>{Sn.call(St,ge,ze,Ni)})},"_executeHook"),wz=o(function(Dt){let ge=null;if(ru("beforeSanitizeElements",Dt,null),xz(Dt))return tc(Dt),!0;let ze=Cn(Dt.nodeName);if(ru("uponSanitizeElement",Dt,{tagName:ze,allowedTags:oe}),Dt.hasChildNodes()&&!bz(Dt.firstElementChild)&&S(/<[/\w]/g,Dt.innerHTML)&&S(/<[/\w]/g,Dt.textContent)||Dt.nodeType===ut.progressingInstruction||ps&&Dt.nodeType===ut.comment&&S(/<[/\w]/g,Dt.data))return tc(Dt),!0;if(!oe[ze]||ln[ze]){if(!ln[ze]&&kz(ze)&&(or.tagNameCheck instanceof RegExp&&S(or.tagNameCheck,ze)||or.tagNameCheck instanceof Function&&or.tagNameCheck(ze)))return!1;if(Fe&&!vt[ze]){let Sn=yt(Dt)||Dt.parentNode,Na=Nt(Dt)||Dt.childNodes;if(Na&&Sn){let ha=Na.length;for(let ms=ha-1;ms>=0;--ms){let ec=Ct(Na[ms],!0);ec.__removalCount=(Dt.__removalCount||0)+1,Sn.insertBefore(ec,$t(Dt))}}}return tc(Dt),!0}return Dt instanceof mt&&!Xa(Dt)||(ze==="noscript"||ze==="noembed"||ze==="noframes")&&S(/<\/no(script|embed|frames)/i,Dt.innerHTML)?(tc(Dt),!0):(pi&&Dt.nodeType===ut.text&&(ge=Dt.textContent,f([Ht,ne,xe],Sn=>{ge=v(ge,Sn," ")}),Dt.textContent!==ge&&(p(St.removed,{element:Dt.cloneNode()}),Dt.textContent=ge)),ru("afterSanitizeElements",Dt,null),!1)},"_sanitizeElements"),Tz=o(function(Dt,ge,ze){if(Ie&&(ge==="id"||ge==="name")&&(ze in Vt||ze in gz))return!1;if(!(mn&&!Ir[ge]&&S(Se,ge))){if(!(ii&&S(Ye,ge))){if(!Cr[ge]||Ir[ge]){if(!(kz(Dt)&&(or.tagNameCheck instanceof RegExp&&S(or.tagNameCheck,Dt)||or.tagNameCheck instanceof Function&&or.tagNameCheck(Dt))&&(or.attributeNameCheck instanceof RegExp&&S(or.attributeNameCheck,ge)||or.attributeNameCheck instanceof Function&&or.attributeNameCheck(ge))||ge==="is"&&or.allowCustomizedBuiltInElements&&(or.tagNameCheck instanceof RegExp&&S(or.tagNameCheck,ze)||or.tagNameCheck instanceof Function&&or.tagNameCheck(ze))))return!1}else if(!q1[ge]){if(!S(Me,v(ze,ee,""))){if(!((ge==="src"||ge==="xlink:href"||ge==="href")&&Dt!=="script"&&x(ze,"data:")===0&&W1[Dt])){if(!(Pn&&!S(fe,v(ze,ee,"")))){if(ze)return!1}}}}}}return!0},"_isValidAttribute"),kz=o(function(Dt){return Dt!=="annotation-xml"&&y(Dt,pe)},"_isBasicCustomElement"),Ez=o(function(Dt){ru("beforeSanitizeAttributes",Dt,null);let{attributes:ge}=Dt;if(!ge)return;let ze={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Cr},Sn=ge.length;for(;Sn--;){let Na=ge[Sn],{name:ha,namespaceURI:ms,value:ec}=Na,Q1=Cn(ha),ja=ha==="value"?ec:b(ec);if(ze.attrName=Q1,ze.attrValue=ja,ze.keepAttr=!0,ze.forceKeepAttr=void 0,ru("uponSanitizeAttribute",Dt,ze),ja=ze.attrValue,ps&&S(/((--!?|])>)|<\/(style|title)/i,ja)){Qb(ha,Dt);continue}if(ze.forceKeepAttr||(Qb(ha,Dt),!ze.keepAttr))continue;if(!Sr&&S(/\/>/i,ja)){Qb(ha,Dt);continue}pi&&f([Ht,ne,xe],Sz=>{ja=v(ja,Sz," ")});let Cz=Cn(Dt.nodeName);if(Tz(Cz,Q1,ja)){if(we&&(Q1==="id"||Q1==="name")&&(Qb(ha,Dt),ja=Wt+ja),Ut&&typeof Tt=="object"&&typeof Tt.getAttributeType=="function"&&!ms)switch(Tt.getAttributeType(Cz,Q1)){case"TrustedHTML":{ja=Ut.createHTML(ja);break}case"TrustedScriptURL":{ja=Ut.createScriptURL(ja);break}}try{ms?Dt.setAttributeNS(ms,ha,ja):Dt.setAttribute(ha,ja),xz(Dt)?tc(Dt):d(St.removed)}catch{}}}ru("afterSanitizeAttributes",Dt,null)},"_sanitizeAttributes"),sxt=o(function Xe(Dt){let ge=null,ze=vz(Dt);for(ru("beforeSanitizeShadowDOM",Dt,null);ge=ze.nextNode();)ru("uponSanitizeShadowNode",ge,null),!wz(ge)&&(ge.content instanceof dt&&Xe(ge.content),Ez(ge));ru("afterSanitizeShadowDOM",Dt,null)},"_sanitizeShadowDOM");return St.sanitize=function(Xe){let Dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ge=null,ze=null,Sn=null,Na=null;if(Vf=!Xe,Vf&&(Xe=""),typeof Xe!="string"&&!bz(Xe))if(typeof Xe.toString=="function"){if(Xe=Xe.toString(),typeof Xe!="string")throw T("dirty is not a string, aborting")}else throw T("toString is not a function");if(!St.isSupported)return Xe;if(Eo||Jl(Dt),St.removed=[],typeof Xe=="string"&&(gt=!1),gt){if(Xe.nodeName){let ec=Cn(Xe.nodeName);if(!oe[ec]||ln[ec])throw T("root node is forbidden and cannot be sanitized in-place")}}else if(Xe instanceof ft)ge=yz(""),ze=ge.ownerDocument.importNode(Xe,!0),ze.nodeType===ut.element&&ze.nodeName==="BODY"||ze.nodeName==="HTML"?ge=ze:ge.appendChild(ze);else{if(!Fn&&!pi&&!Bn&&Xe.indexOf("<")===-1)return Ut&&Ae?Ut.createHTML(Xe):Xe;if(ge=yz(Xe),!ge)return Fn?null:Ae?zt:""}ge&&cl&&tc(ge.firstChild);let ha=vz(gt?Xe:ge);for(;Sn=ha.nextNode();)wz(Sn)||(Sn.content instanceof dt&&sxt(Sn.content),Ez(Sn));if(gt)return Xe;if(Fn){if(wi)for(Na=Ee.call(ge.ownerDocument);ge.firstChild;)Na.appendChild(ge.firstChild);else Na=ge;return(Cr.shadowroot||Cr.shadowrootmode)&&(Na=Zt.call(Pt,Na,!0)),Na}let ms=Bn?ge.outerHTML:ge.innerHTML;return Bn&&oe["!doctype"]&&ge.ownerDocument&&ge.ownerDocument.doctype&&ge.ownerDocument.doctype.name&&S(K,ge.ownerDocument.doctype.name)&&(ms=" +`+ms),pi&&f([Ht,ne,xe],ec=>{ms=v(ms,ec," ")}),Ut&&Ae?Ut.createHTML(ms):ms},St.setConfig=function(){let Xe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Jl(Xe),Eo=!0},St.clearConfig=function(){Ni=null,Eo=!1},St.isValidAttribute=function(Xe,Dt,ge){Ni||Jl({});let ze=Cn(Xe),Sn=Cn(Dt);return Tz(ze,Sn,ge)},St.addHook=function(Xe,Dt){typeof Dt=="function"&&(me[Xe]=me[Xe]||[],p(me[Xe],Dt))},St.removeHook=function(Xe){if(me[Xe])return d(me[Xe])},St.removeHooks=function(Xe){me[Xe]&&(me[Xe]=[])},St.removeAllHooks=function(){me={}},St}o(it,"createDOMPurify");var wt=it();return wt})});var wV={};xr(wV,{default:()=>j4t});function lbt(e){return String(e).replace(obt,t=>sbt[t])}function fbt(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function xbt(e){for(var t=0;t=i[0]&&e<=i[1])return r.name}return null}function AG(e){for(var t=0;t=R4[t]&&e<=R4[t+1])return!0;return!1}function Dbt(e,t){ac[e]=t}function b7(e,t,r){if(!ac[t])throw new Error("Font metrics not found for font: "+t+".");var n=e.charCodeAt(0),i=ac[t][n];if(!i&&e[0]in K$&&(n=K$[e[0]].charCodeAt(0),i=ac[t][n]),!i&&r==="text"&&AG(n)&&(i=ac[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function Rbt(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!jS[t]){var r=jS[t]={cssEmPerMu:x4.quad[t]/18};for(var n in x4)x4.hasOwnProperty(n)&&(r[n]=x4[n][t])}return jS[t]}function J$(e){if(e instanceof xs)return e;throw new Error("Expected symbolNode but got "+String(e)+".")}function Obt(e){if(e instanceof td)return e;throw new Error("Expected span but got "+String(e)+".")}function $(e,t,r,n,i,a){An[e][i]={font:t,group:r,replace:n},a&&n&&(An[e][n]=An[e][i])}function Ce(e){for(var{type:t,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=e,l={type:t,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(S4(s,t)),s=[]),a.push(n[l]));s.length>0&&a.push(S4(s,t));var h;r?(h=S4(Oi(r,t,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=fu(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=ve(f.height+f.depth),f.depth&&(d.style.verticalAlign=ve(-f.depth))}return f}function zG(e){return new Jf(e)}function iG(e,t,r,n,i){var a=bs(e,r),s;a.length===1&&a[0]instanceof vs&&tr.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new se.MathNode("mrow",a);var l=new se.MathNode("annotation",[new se.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var u=new se.MathNode("semantics",[s,l]),h=new se.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return Bt.makeSpan([f],[h])}function mr(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function E7(e){var t=V4(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function V4(e){return e&&(e.type==="atom"||Bbt.hasOwnProperty(e.type))?e:null}function UG(e,t){var r=Oi(e.body,t,!0);return d4t([e.mclass],r,t)}function HG(e,t){var r,n=bs(e.body,t);return e.mclass==="minner"?r=new se.MathNode("mpadded",n):e.mclass==="mord"?e.isCharacterBox?(r=n[0],r.type="mi"):r=new se.MathNode("mi",n):(e.isCharacterBox?(r=n[0],r.type="mo"):r=new se.MathNode("mo",n),e.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):e.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):e.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function g4t(e,t,r){var n=p4t[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[t[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[t[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function y4t(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if(r==="&"||r==="\\\\")e.consume();else if(r==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new ue("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=g4t(h,f,e),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=aG()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}e.gullet.endGroup(),e.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function H4(e,t){var r=V4(e);if(r&&tr.contains(D4t,r.text))return r;throw r?new ue("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e):new ue("Invalid delimiter type '"+e.type+"'",e)}function lG(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function oc(e){for(var{type:t,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=e,l={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Ks=class e{static{o(this,"SourceLocation")}constructor(t,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=r,this.end=n}static range(t,r){return r?!t||!t.loc||!r.loc||t.loc.lexer!==r.loc.lexer?null:new e(t.loc.lexer,t.loc.start,r.loc.end):t&&t.loc}},Do=class e{static{o(this,"Token")}constructor(t,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=t,this.loc=r}range(t,r){return new e(r,Ks.range(this,t))}},ue=class e{static{o(this,"ParseError")}constructor(t,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+t,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},obt=/[&><"']/g;o(lbt,"escape");SG=o(function e(t){return t.type==="ordgroup"||t.type==="color"?t.body.length===1?e(t.body[0]):t:t.type==="font"?e(t.body):t},"getBaseElem"),cbt=o(function(t){var r=SG(t);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),ubt=o(function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t},"assert"),hbt=o(function(t){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),tr={contains:rbt,deflt:nbt,escape:lbt,hyphenate:abt,getBaseElem:SG,isCharacterBox:cbt,protocolFromUrl:hbt},D4={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(e=>"#"+e,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((e,t)=>(t.push(e),t),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(e=>Math.max(0,e),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(e=>Math.max(0,e),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(e=>Math.max(0,e),"processor"),cli:"-e, --max-expand ",cliProcessor:o(e=>e==="Infinity"?1/0:parseInt(e),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(fbt,"getDefaultValue");dy=class{static{o(this,"Settings")}constructor(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var r in D4)if(D4.hasOwnProperty(r)){var n=D4[r];this[r]=t[r]!==void 0?n.processor?n.processor(t[r]):t[r]:fbt(n)}}reportNonstrict(t,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(t,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new ue("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,n){var i=this.strict;if(typeof i=="function")try{i=i(t,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if(t.url&&!t.protocol){var r=tr.protocolFromUrl(t.url);if(r==null)return!1;t.protocol=r}var n=typeof this.trust=="function"?this.trust(t):this.trust;return!!n}},nc=class{static{o(this,"Style")}constructor(t,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=r,this.cramped=n}sup(){return ic[dbt[this.id]]}sub(){return ic[pbt[this.id]]}fracNum(){return ic[mbt[this.id]]}fracDen(){return ic[gbt[this.id]]}cramp(){return ic[ybt[this.id]]}text(){return ic[vbt[this.id]]}isTight(){return this.size>=2}},x7=0,N4=1,Ep=2,uu=3,py=4,Lo=5,Cp=6,Qa=7,ic=[new nc(x7,0,!1),new nc(N4,0,!0),new nc(Ep,1,!1),new nc(uu,1,!0),new nc(py,2,!1),new nc(Lo,2,!0),new nc(Cp,3,!1),new nc(Qa,3,!0)],dbt=[py,Lo,py,Lo,Cp,Qa,Cp,Qa],pbt=[Lo,Lo,Lo,Lo,Qa,Qa,Qa,Qa],mbt=[Ep,uu,py,Lo,Cp,Qa,Cp,Qa],gbt=[uu,uu,Lo,Lo,Qa,Qa,Qa,Qa],ybt=[N4,N4,uu,uu,Lo,Lo,Qa,Qa],vbt=[x7,N4,Ep,uu,Ep,uu,Ep,uu],rr={DISPLAY:ic[x7],TEXT:ic[Ep],SCRIPT:ic[py],SCRIPTSCRIPT:ic[Cp]},o7=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(xbt,"scriptFromCodepoint");R4=[];o7.forEach(e=>e.blocks.forEach(t=>R4.push(...t)));o(AG,"supportedCodepoint");kp=80,bbt=o(function(t,r){return"M95,"+(622+t+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+t/2.075+" -"+t+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+t)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtMain"),wbt=o(function(t,r){return"M263,"+(601+t+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+t/2.084+" -"+t+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+t)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtSize1"),Tbt=o(function(t,r){return"M983 "+(10+t+r)+` +l`+t/3.13+" -"+t+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"},"sqrtSize2"),kbt=o(function(t,r){return"M424,"+(2398+t+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+t)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+r+` +h400000v`+(40+t)+"h-400000z"},"sqrtSize3"),Ebt=o(function(t,r){return"M473,"+(2713+t+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+t)+" "+r+"h400000v"+(40+t)+"H1017.7z"},"sqrtSize4"),Cbt=o(function(t){var r=t/2;return"M400000 "+t+" H0 L"+r+" 0 l65 45 L145 "+(t-80)+" H400000z"},"phasePath"),Sbt=o(function(t,r,n){var i=n-54-r-t;return"M702 "+(t+r)+"H400000"+(40+t)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+t)+"H742z"},"sqrtTall"),Abt=o(function(t,r,n){r=1e3*r;var i="";switch(t){case"sqrtMain":i=bbt(r,kp);break;case"sqrtSize1":i=wbt(r,kp);break;case"sqrtSize2":i=Tbt(r,kp);break;case"sqrtSize3":i=kbt(r,kp);break;case"sqrtSize4":i=Ebt(r,kp);break;case"sqrtTall":i=Sbt(r,kp,n)}return i},"sqrtPath"),_bt=o(function(t,r){switch(t){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),j$={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Lbt=o(function(t,r){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Jf=class{static{o(this,"DocumentFragment")}constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return tr.contains(this.classes,t)}toNode(){for(var t=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(t).join("")}},ac={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},x4={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},K$={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(Dbt,"setFontMetrics");o(b7,"getCharacterMetrics");jS={};o(Rbt,"getGlobalMetrics");Nbt=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Q$=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Z$=o(function(t,r){return r.size<2?t:Nbt[t-1][r.size-1]},"sizeAtStyle"),M4=class e{static{o(this,"Options")}constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=Q$[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return new e(r)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:Z$(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:Q$[t-1]})}havingBaseStyle(t){t=t||this.style.text();var r=Z$(e.BASESIZE,t);return this.size===r&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:r})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==e.BASESIZE?["sizing","reset-size"+this.size,"size"+e.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Rbt(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};M4.BASESIZE=6;l7={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},Mbt={ex:!0,em:!0,mu:!0},_G=o(function(t){return typeof t!="string"&&(t=t.unit),t in l7||t in Mbt||t==="ex"},"validUnit"),Zn=o(function(t,r){var n;if(t.unit in l7)n=l7[t.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(t.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,t.unit==="ex")n=i.fontMetrics().xHeight;else if(t.unit==="em")n=i.fontMetrics().quad;else throw new ue("Invalid unit: '"+t.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(t.number*n,r.maxSize)},"calculateSize"),ve=o(function(t){return+t.toFixed(4)+"em"},"makeEm"),ph=o(function(t){return t.filter(r=>r).join(" ")},"createClass"),LG=o(function(t,r,n){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),DG=o(function(t){var r=document.createElement(t);r.className=ph(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a",r},"toMarkup"),td=class{static{o(this,"Span")}constructor(t,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,LG.call(this,t,n,i),this.children=r||[]}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return tr.contains(this.classes,t)}toNode(){return DG.call(this,"span")}toMarkup(){return RG.call(this,"span")}},my=class{static{o(this,"Anchor")}constructor(t,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,LG.call(this,r,i),this.children=n||[],this.setAttribute("href",t)}setAttribute(t,r){this.attributes[t]=r}hasClass(t){return tr.contains(this.classes,t)}toNode(){return DG.call(this,"a")}toMarkup(){return RG.call(this,"a")}},c7=class{static{o(this,"Img")}constructor(t,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=t,this.classes=["mord"],this.style=n}hasClass(t){return tr.contains(this.classes,t)}toNode(){var t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);return t}toMarkup(){var t=''+tr.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=ve(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=ph(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(t),r):t}toMarkup(){var t=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=tr.hyphenate(i)+":"+this.style[i]+";");n&&(t=!0,r+=' style="'+tr.escape(n)+'"');var a=tr.escape(this.text);return t?(r+=">",r+=a,r+="",r):a}},dl=class{static{o(this,"SvgNode")}constructor(t,r){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=r||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},gy=class{static{o(this,"LineNode")}constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",r=document.createElementNS(t,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var t="","\\gt",!0);$(U,tt,bt,"\u2208","\\in",!0);$(U,tt,bt,"\uE020","\\@not");$(U,tt,bt,"\u2282","\\subset",!0);$(U,tt,bt,"\u2283","\\supset",!0);$(U,tt,bt,"\u2286","\\subseteq",!0);$(U,tt,bt,"\u2287","\\supseteq",!0);$(U,xt,bt,"\u2288","\\nsubseteq",!0);$(U,xt,bt,"\u2289","\\nsupseteq",!0);$(U,tt,bt,"\u22A8","\\models");$(U,tt,bt,"\u2190","\\leftarrow",!0);$(U,tt,bt,"\u2264","\\le");$(U,tt,bt,"\u2264","\\leq",!0);$(U,tt,bt,"<","\\lt",!0);$(U,tt,bt,"\u2192","\\rightarrow",!0);$(U,tt,bt,"\u2192","\\to");$(U,xt,bt,"\u2271","\\ngeq",!0);$(U,xt,bt,"\u2270","\\nleq",!0);$(U,tt,pu,"\xA0","\\ ");$(U,tt,pu,"\xA0","\\space");$(U,tt,pu,"\xA0","\\nobreakspace");$(ie,tt,pu,"\xA0","\\ ");$(ie,tt,pu,"\xA0"," ");$(ie,tt,pu,"\xA0","\\space");$(ie,tt,pu,"\xA0","\\nobreakspace");$(U,tt,pu,null,"\\nobreak");$(U,tt,pu,null,"\\allowbreak");$(U,tt,$4,",",",");$(U,tt,$4,";",";");$(U,xt,_e,"\u22BC","\\barwedge",!0);$(U,xt,_e,"\u22BB","\\veebar",!0);$(U,tt,_e,"\u2299","\\odot",!0);$(U,tt,_e,"\u2295","\\oplus",!0);$(U,tt,_e,"\u2297","\\otimes",!0);$(U,tt,Lt,"\u2202","\\partial",!0);$(U,tt,_e,"\u2298","\\oslash",!0);$(U,xt,_e,"\u229A","\\circledcirc",!0);$(U,xt,_e,"\u22A1","\\boxdot",!0);$(U,tt,_e,"\u25B3","\\bigtriangleup");$(U,tt,_e,"\u25BD","\\bigtriangledown");$(U,tt,_e,"\u2020","\\dagger");$(U,tt,_e,"\u22C4","\\diamond");$(U,tt,_e,"\u22C6","\\star");$(U,tt,_e,"\u25C3","\\triangleleft");$(U,tt,_e,"\u25B9","\\triangleright");$(U,tt,Qs,"{","\\{");$(ie,tt,Lt,"{","\\{");$(ie,tt,Lt,"{","\\textbraceleft");$(U,tt,Za,"}","\\}");$(ie,tt,Lt,"}","\\}");$(ie,tt,Lt,"}","\\textbraceright");$(U,tt,Qs,"{","\\lbrace");$(U,tt,Za,"}","\\rbrace");$(U,tt,Qs,"[","\\lbrack",!0);$(ie,tt,Lt,"[","\\lbrack",!0);$(U,tt,Za,"]","\\rbrack",!0);$(ie,tt,Lt,"]","\\rbrack",!0);$(U,tt,Qs,"(","\\lparen",!0);$(U,tt,Za,")","\\rparen",!0);$(ie,tt,Lt,"<","\\textless",!0);$(ie,tt,Lt,">","\\textgreater",!0);$(U,tt,Qs,"\u230A","\\lfloor",!0);$(U,tt,Za,"\u230B","\\rfloor",!0);$(U,tt,Qs,"\u2308","\\lceil",!0);$(U,tt,Za,"\u2309","\\rceil",!0);$(U,tt,Lt,"\\","\\backslash");$(U,tt,Lt,"\u2223","|");$(U,tt,Lt,"\u2223","\\vert");$(ie,tt,Lt,"|","\\textbar",!0);$(U,tt,Lt,"\u2225","\\|");$(U,tt,Lt,"\u2225","\\Vert");$(ie,tt,Lt,"\u2225","\\textbardbl");$(ie,tt,Lt,"~","\\textasciitilde");$(ie,tt,Lt,"\\","\\textbackslash");$(ie,tt,Lt,"^","\\textasciicircum");$(U,tt,bt,"\u2191","\\uparrow",!0);$(U,tt,bt,"\u21D1","\\Uparrow",!0);$(U,tt,bt,"\u2193","\\downarrow",!0);$(U,tt,bt,"\u21D3","\\Downarrow",!0);$(U,tt,bt,"\u2195","\\updownarrow",!0);$(U,tt,bt,"\u21D5","\\Updownarrow",!0);$(U,tt,Ei,"\u2210","\\coprod");$(U,tt,Ei,"\u22C1","\\bigvee");$(U,tt,Ei,"\u22C0","\\bigwedge");$(U,tt,Ei,"\u2A04","\\biguplus");$(U,tt,Ei,"\u22C2","\\bigcap");$(U,tt,Ei,"\u22C3","\\bigcup");$(U,tt,Ei,"\u222B","\\int");$(U,tt,Ei,"\u222B","\\intop");$(U,tt,Ei,"\u222C","\\iint");$(U,tt,Ei,"\u222D","\\iiint");$(U,tt,Ei,"\u220F","\\prod");$(U,tt,Ei,"\u2211","\\sum");$(U,tt,Ei,"\u2A02","\\bigotimes");$(U,tt,Ei,"\u2A01","\\bigoplus");$(U,tt,Ei,"\u2A00","\\bigodot");$(U,tt,Ei,"\u222E","\\oint");$(U,tt,Ei,"\u222F","\\oiint");$(U,tt,Ei,"\u2230","\\oiiint");$(U,tt,Ei,"\u2A06","\\bigsqcup");$(U,tt,Ei,"\u222B","\\smallint");$(ie,tt,Sp,"\u2026","\\textellipsis");$(U,tt,Sp,"\u2026","\\mathellipsis");$(ie,tt,Sp,"\u2026","\\ldots",!0);$(U,tt,Sp,"\u2026","\\ldots",!0);$(U,tt,Sp,"\u22EF","\\@cdots",!0);$(U,tt,Sp,"\u22F1","\\ddots",!0);$(U,tt,Lt,"\u22EE","\\varvdots");$(U,tt,Un,"\u02CA","\\acute");$(U,tt,Un,"\u02CB","\\grave");$(U,tt,Un,"\xA8","\\ddot");$(U,tt,Un,"~","\\tilde");$(U,tt,Un,"\u02C9","\\bar");$(U,tt,Un,"\u02D8","\\breve");$(U,tt,Un,"\u02C7","\\check");$(U,tt,Un,"^","\\hat");$(U,tt,Un,"\u20D7","\\vec");$(U,tt,Un,"\u02D9","\\dot");$(U,tt,Un,"\u02DA","\\mathring");$(U,tt,er,"\uE131","\\@imath");$(U,tt,er,"\uE237","\\@jmath");$(U,tt,Lt,"\u0131","\u0131");$(U,tt,Lt,"\u0237","\u0237");$(ie,tt,Lt,"\u0131","\\i",!0);$(ie,tt,Lt,"\u0237","\\j",!0);$(ie,tt,Lt,"\xDF","\\ss",!0);$(ie,tt,Lt,"\xE6","\\ae",!0);$(ie,tt,Lt,"\u0153","\\oe",!0);$(ie,tt,Lt,"\xF8","\\o",!0);$(ie,tt,Lt,"\xC6","\\AE",!0);$(ie,tt,Lt,"\u0152","\\OE",!0);$(ie,tt,Lt,"\xD8","\\O",!0);$(ie,tt,Un,"\u02CA","\\'");$(ie,tt,Un,"\u02CB","\\`");$(ie,tt,Un,"\u02C6","\\^");$(ie,tt,Un,"\u02DC","\\~");$(ie,tt,Un,"\u02C9","\\=");$(ie,tt,Un,"\u02D8","\\u");$(ie,tt,Un,"\u02D9","\\.");$(ie,tt,Un,"\xB8","\\c");$(ie,tt,Un,"\u02DA","\\r");$(ie,tt,Un,"\u02C7","\\v");$(ie,tt,Un,"\xA8",'\\"');$(ie,tt,Un,"\u02DD","\\H");$(ie,tt,Un,"\u25EF","\\textcircled");NG={"--":!0,"---":!0,"``":!0,"''":!0};$(ie,tt,Lt,"\u2013","--",!0);$(ie,tt,Lt,"\u2013","\\textendash");$(ie,tt,Lt,"\u2014","---",!0);$(ie,tt,Lt,"\u2014","\\textemdash");$(ie,tt,Lt,"\u2018","`",!0);$(ie,tt,Lt,"\u2018","\\textquoteleft");$(ie,tt,Lt,"\u2019","'",!0);$(ie,tt,Lt,"\u2019","\\textquoteright");$(ie,tt,Lt,"\u201C","``",!0);$(ie,tt,Lt,"\u201C","\\textquotedblleft");$(ie,tt,Lt,"\u201D","''",!0);$(ie,tt,Lt,"\u201D","\\textquotedblright");$(U,tt,Lt,"\xB0","\\degree",!0);$(ie,tt,Lt,"\xB0","\\degree");$(ie,tt,Lt,"\xB0","\\textdegree",!0);$(U,tt,Lt,"\xA3","\\pounds");$(U,tt,Lt,"\xA3","\\mathsterling",!0);$(ie,tt,Lt,"\xA3","\\pounds");$(ie,tt,Lt,"\xA3","\\textsterling",!0);$(U,xt,Lt,"\u2720","\\maltese");$(ie,xt,Lt,"\u2720","\\maltese");tG='0123456789/@."';for(b4=0;b40)return fl(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=$bt(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=OG[u].fontName,p=[u]):(d=C4(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(G4(a,d,i).metrics)return fl(a,d,i,r,s.concat(p));if(NG.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(ph(e.classes)!==ph(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(e.classes.length===1){var r=e.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in e.style)if(e.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;for(var i in t.style)if(t.style.hasOwnProperty(i)&&e.style[i]!==t.style[i])return!1;return!0},"canCombine"),Ubt=o(e=>{for(var t=0;tr&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}t.height=r,t.depth=n,t.maxFontSize=i},"sizeElementFromChildren"),ys=o(function(t,r,n,i){var a=new td(t,r,n,i);return w7(a),a},"makeSpan"),MG=o((e,t,r,n)=>new td(e,t,r,n),"makeSvgSpan"),Hbt=o(function(t,r,n){var i=ys([t],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=ve(i.height),i.maxFontSize=1,i},"makeLineSpan"),Wbt=o(function(t,r,n,i){var a=new my(t,r,n,i);return w7(a),a},"makeAnchor"),IG=o(function(t){var r=new Jf(t);return w7(r),r},"makeFragment"),Ybt=o(function(t,r){return t instanceof Jf?ys([],[t],r):t},"wrapFragment"),qbt=o(function(t){if(t.positionType==="individualShift"){for(var r=t.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=ys(["mspace"],[],t),n=Zn(e,t);return r.style.marginRight=ve(n),r},"makeGlue"),C4=o(function(t,r,n){var i="";switch(t){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=t}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),OG={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},PG={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Kbt=o(function(t,r){var[n,i,a]=PG[t],s=new sc(n),l=new dl([s],{width:ve(i),height:ve(a),style:"width:"+ve(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=MG(["overlay"],[l],r);return u.height=a,u.style.height=ve(a),u.style.width=ve(i),u},"staticSvg"),Bt={fontMap:OG,makeSymbol:fl,mathsym:zbt,makeSpan:ys,makeSvgSpan:MG,makeLineSpan:Hbt,makeAnchor:Wbt,makeFragment:IG,wrapFragment:Ybt,makeVList:Xbt,makeOrd:Gbt,makeGlue:jbt,staticSvg:Kbt,svgData:PG,tryCombineChars:Ubt},Qn={number:3,unit:"mu"},Qf={number:4,unit:"mu"},cu={number:5,unit:"mu"},Qbt={mord:{mop:Qn,mbin:Qf,mrel:cu,minner:Qn},mop:{mord:Qn,mop:Qn,mrel:cu,minner:Qn},mbin:{mord:Qf,mop:Qf,mopen:Qf,minner:Qf},mrel:{mord:cu,mop:cu,mopen:cu,minner:cu},mopen:{},mclose:{mop:Qn,mbin:Qf,mrel:cu,minner:Qn},mpunct:{mord:Qn,mop:Qn,mrel:cu,mopen:Qn,mclose:Qn,mpunct:Qn,minner:Qn},minner:{mord:Qn,mop:Qn,mbin:Qf,mrel:cu,mopen:Qn,mpunct:Qn,minner:Qn}},Zbt={mord:{mop:Qn},mop:{mord:Qn,mop:Qn},mbin:{},mrel:{},mopen:{},mclose:{mop:Qn},mpunct:{},minner:{mop:Qn}},BG={},O4={},P4={};o(Ce,"defineFunction");o(ed,"defineFunctionBuilders");B4=o(function(t){return t.type==="ordgroup"&&t.body.length===1?t.body[0]:t},"normalizeArgument"),mi=o(function(t){return t.type==="ordgroup"?t.body:[t]},"ordargument"),fu=Bt.makeSpan,Jbt=["leftmost","mbin","mopen","mrel","mop","mpunct"],t4t=["rightmost","mrel","mclose","mpunct"],e4t={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT},r4t={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Oi=o(function(t,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&tr.contains(t4t,x)?y.classes[0]="mord":x==="mbin"&&tr.contains(Jbt,v)&&(g.classes[0]="mord")},{node:d},p,m),nG(a,(g,y)=>{var v=h7(y),x=h7(g),b=v&&x?g.hasClass("mtight")?Zbt[v][x]:Qbt[v][x]:null;if(b)return Bt.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),nG=o(function e(t,r,n,i,a){i&&t.push(i);for(var s=0;sp=>{t.splice(d+1,0,p),s++})(s)}i&&t.pop()},"traverseNonSpaceNodes"),FG=o(function(t){return t instanceof Jf||t instanceof my||t instanceof td&&t.hasClass("enclosing")?t:null},"checkPartialGroup"),n4t=o(function e(t,r){var n=FG(t);if(n){var i=n.children;if(i.length){if(r==="right")return e(i[i.length-1],"right");if(r==="left")return e(i[0],"left")}}return t},"getOutermostNode"),h7=o(function(t,r){return t?(r&&(t=n4t(t,r)),r4t[t.classes[0]]||null):null},"getTypeOfDomTree"),yy=o(function(t,r){var n=["nulldelimiter"].concat(t.baseSizingClasses());return fu(r.concat(n))},"makeNullDelimiter"),Or=o(function(t,r,n){if(!t)return fu();if(O4[t.type]){var i=O4[t.type](t,r);if(n&&r.size!==n.size){i=fu(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new ue("Got group of unknown type: '"+t.type+"'")},"buildGroup");o(S4,"buildHTMLUnbreakable");o(f7,"buildHTML");o(zG,"newDocumentFragment");vs=class{static{o(this,"MathNode")}constructor(t,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(t,r){this.attributes[t]=r}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);this.classes.length>0&&(t.className=ph(this.classes));for(var n=0;n0&&(t+=' class ="'+tr.escape(ph(this.classes))+'"'),t+=">";for(var n=0;n",t}toText(){return this.children.map(t=>t.toText()).join("")}},Zf=class{static{o(this,"TextNode")}constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return tr.escape(this.toText())}toText(){return this.text}},d7=class{static{o(this,"SpaceNode")}constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character="\u200A":t>=.1666&&t<=.1667?this.character="\u2009":t>=.2222&&t<=.2223?this.character="\u2005":t>=.2777&&t<=.2778?this.character="\u2005\u200A":t>=-.05556&&t<=-.05555?this.character="\u200A\u2063":t>=-.1667&&t<=-.1666?this.character="\u2009\u2063":t>=-.2223&&t<=-.2222?this.character="\u205F\u2063":t>=-.2778&&t<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",ve(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},se={MathNode:vs,TextNode:Zf,SpaceNode:d7,newDocumentFragment:zG},Ro=o(function(t,r,n){return An[r][t]&&An[r][t].replace&&t.charCodeAt(0)!==55349&&!(NG.hasOwnProperty(t)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(t=An[r][t].replace),new se.TextNode(t)},"makeText"),T7=o(function(t){return t.length===1?t[0]:new se.MathNode("mrow",t)},"makeRow"),k7=o(function(t,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=t.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return t.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=t.text;if(tr.contains(["\\imath","\\jmath"],a))return null;An[i][a]&&An[i][a].replace&&(a=An[i][a].replace);var s=Bt.fontMap[n].fontName;return b7(a,s,i)?Bt.fontMap[n].variant:null},"getVariant"),bs=o(function(t,r,n){if(t.length===1){var i=yn(t[0],r);return n&&i instanceof vs&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),mh=o(function(t,r,n){return T7(bs(t,r,n))},"buildExpressionRow"),yn=o(function(t,r){if(!t)return new se.MathNode("mrow");if(P4[t.type]){var n=P4[t.type](t,r);return n}else throw new ue("Got group of unknown type: '"+t.type+"'")},"buildGroup");o(iG,"buildMathML");$G=o(function(t){return new M4({style:t.displayMode?rr.DISPLAY:rr.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},"optionsFromSettings"),GG=o(function(t,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),t=Bt.makeSpan(n,[t])}return t},"displayWrap"),i4t=o(function(t,r,n){var i=$G(n),a;if(n.output==="mathml")return iG(t,r,i,n.displayMode,!0);if(n.output==="html"){var s=f7(t,i);a=Bt.makeSpan(["katex"],[s])}else{var l=iG(t,r,i,n.displayMode,!1),u=f7(t,i);a=Bt.makeSpan(["katex"],[l,u])}return GG(a,n)},"buildTree"),a4t=o(function(t,r,n){var i=$G(n),a=f7(t,i),s=Bt.makeSpan(["katex"],[a]);return GG(s,n)},"buildHTMLTree"),s4t={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},o4t=o(function(t){var r=new se.MathNode("mo",[new se.TextNode(s4t[t.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),l4t={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},c4t=o(function(t){return t.type==="ordgroup"?t.body.length:1},"groupLength"),u4t=o(function(t,r){function n(){var l=4e5,u=t.label.slice(1);if(tr.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=t,f=c4t(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new sc(p),v=new dl([y],{width:"100%",height:ve(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Bt.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=l4t[u],[w,S,T]=b,E=T/1e3,_=w.length,A,L;if(_===1){var M=b[3];A=["hide-tail"],L=[M]}else if(_===2)A=["halfarrow-left","halfarrow-right"],L=["xMinYMin","xMaxYMin"];else if(_===3)A=["brace-left","brace-center","brace-right"],L=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+_+" children.");for(var N=0;N<_;N++){var k=new sc(w[N]),I=new dl([k],{width:"400em",height:ve(E),viewBox:"0 0 "+l+" "+T,preserveAspectRatio:L[N]+" slice"}),C=Bt.makeSvgSpan([A[N]],[I],r);if(_===1)return{span:C,minWidth:S,height:E};C.style.height=ve(E),x.push(C)}return{span:Bt.makeSpan(["stretchy"],x,r),minWidth:S,height:E}}}o(n,"buildSvgSpan_");var{span:i,minWidth:a,height:s}=n();return i.height=s,i.style.height=ve(s),a>0&&(i.style.minWidth=ve(a)),i},"svgSpan"),h4t=o(function(t,r,n,i,a){var s,l=t.height+t.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=Bt.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new gy({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new gy({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new dl(h,{width:"100%",height:ve(l)});s=Bt.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=ve(l),s},"encloseSpan"),du={encloseSpan:h4t,mathMLnode:o4t,svgSpan:u4t};o(mr,"assertNodeType");o(E7,"assertSymbolNodeType");o(V4,"checkSymbolNodeType");C7=o((e,t)=>{var r,n,i;e&&e.type==="supsub"?(n=mr(e.base,"accent"),r=n.base,e.base=r,i=Obt(Or(e,t)),e.base=n):(n=mr(e,"accent"),r=n.base);var a=Or(r,t.havingCrampedStyle()),s=n.isShifty&&tr.isCharacterBox(r),l=0;if(s){var u=tr.getBaseElem(r),h=Or(u,t.havingCrampedStyle());l=J$(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight),p;if(n.isStretchy)p=du.svgSpan(n,t),p=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+ve(2*l)+")",marginLeft:ve(2*l)}:void 0}]},t);else{var m,g;n.label==="\\vec"?(m=Bt.staticSvg("vec",t),g=Bt.svgData.vec[1]):(m=Bt.makeOrd({mode:n.mode,text:n.label},t,"textord"),m=J$(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=Bt.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=ve(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},t)}var x=Bt.makeSpan(["mord","accent"],[p],t);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),VG=o((e,t)=>{var r=e.isStretchy?du.mathMLnode(e.label):new se.MathNode("mo",[Ro(e.label,e.mode)]),n=new se.MathNode("mover",[yn(e.base,t),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),f4t=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));Ce({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((e,t)=>{var r=B4(t[0]),n=!f4t.test(e.funcName),i=!n||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:C7,mathmlBuilder:VG});Ce({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((e,t)=>{var r=t[0],n=e.parser.mode;return n==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:C7,mathmlBuilder:VG});Ce({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((e,t)=>{var r=Or(e.base,t),n=du.svgSpan(e,t),i=e.label==="\\utilde"?.12:0,a=Bt.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},t);return Bt.makeSpan(["mord","accentunder"],[a],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=du.mathMLnode(e.label),n=new se.MathNode("munder",[yn(e.base,t),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});A4=o(e=>{var t=new se.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t},"paddedNode");Ce({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:n,funcName:i}=e;return{type:"xArrow",mode:n.mode,label:i,body:t[0],below:r[0]}},htmlBuilder(e,t){var r=t.style,n=t.havingStyle(r.sup()),i=Bt.wrapFragment(Or(e.body,n,t),t),a=e.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;e.below&&(n=t.havingStyle(r.sub()),s=Bt.wrapFragment(Or(e.below,n,t),t),s.classes.push(a+"-arrow-pad"));var l=du.svgSpan(e,t),u=-t.fontMetrics().axisHeight+.5*l.height,h=-t.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||e.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-t.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=Bt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},t)}else f=Bt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},t);return f.children[0].children[0].children[1].classes.push("svg-align"),Bt.makeSpan(["mrel","x-arrow"],[f],t)},mathmlBuilder(e,t){var r=du.mathMLnode(e.label);r.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(e.body){var i=A4(yn(e.body,t));if(e.below){var a=A4(yn(e.below,t));n=new se.MathNode("munderover",[r,a,i])}else n=new se.MathNode("mover",[r,i])}else if(e.below){var s=A4(yn(e.below,t));n=new se.MathNode("munder",[r,s])}else n=A4(),n=new se.MathNode("mover",[r,n]);return n}});d4t=Bt.makeSpan;o(UG,"htmlBuilder$9");o(HG,"mathmlBuilder$8");Ce({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r,funcName:n}=e,i=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:mi(i),isCharacterBox:tr.isCharacterBox(i)}},htmlBuilder:UG,mathmlBuilder:HG});U4=o(e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"},"binrelClass");Ce({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:U4(t[0]),body:mi(t[1]),isCharacterBox:tr.isCharacterBox(t[1])}}});Ce({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:r,funcName:n}=e,i=t[1],a=t[0],s;n!=="\\stackrel"?s=U4(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:mi(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:tr.isCharacterBox(u)}},htmlBuilder:UG,mathmlBuilder:HG});Ce({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:U4(t[0]),body:mi(t[0])}},htmlBuilder(e,t){var r=Oi(e.body,t,!0),n=Bt.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(e,t){var r=bs(e.body,t),n=new se.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});p4t={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},aG=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),sG=o(e=>e.type==="textord"&&e.text==="@","isStartOfArrow"),m4t=o((e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t,"isLabelEnd");o(g4t,"cdArrow");o(y4t,"parseCD");Ce({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),n=Bt.wrapFragment(Or(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=ve(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(e,t){var r=new se.MathNode("mrow",[yn(e.label,t)]);return r=new se.MathNode("mpadded",[r]),r.setAttribute("width","0"),e.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new se.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Ce({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=Bt.wrapFragment(Or(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(e,t){return new se.MathNode("mrow",[yn(e.fragment,t)])}});Ce({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:r}=e,n=mr(t[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new ue("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});WG=o((e,t)=>{var r=Oi(e.body,t.withColor(e.color),!1);return Bt.makeFragment(r)},"htmlBuilder$8"),YG=o((e,t)=>{var r=bs(e.body,t.withColor(e.color)),n=new se.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n},"mathmlBuilder$7");Ce({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,n=mr(t[0],"color-token").color,i=t[1];return{type:"color",mode:r.mode,color:n,body:mi(i)}},htmlBuilder:WG,mathmlBuilder:YG});Ce({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:n}=e,i=mr(t[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:WG,mathmlBuilder:YG});Ce({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var{parser:n}=e,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&mr(i,"size").value}},htmlBuilder(e,t){var r=Bt.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=ve(Zn(e.size,t)))),r},mathmlBuilder(e,t){var r=new se.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",ve(Zn(e.size,t)))),r}});p7={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},qG=o(e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new ue("Expected a control sequence",e);return t},"checkControlSequence"),v4t=o(e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},"getRHS"),XG=o((e,t,r,n)=>{var i=e.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,i,n)},"letCommand");Ce({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var n=t.fetch();if(p7[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=p7[n.text]),mr(t.parseFunction(),"internal");throw new ue("Invalid token after macro prefix",n)}});Ce({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=t.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new ue("Expected a control sequence",n);for(var a=0,s,l=[[]];t.gullet.future().text!=="{";)if(n=t.gullet.popToken(),n.text==="#"){if(t.gullet.future().text==="{"){s=t.gullet.future(),l[a].push("{");break}if(n=t.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new ue('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new ue('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new ue("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=t.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=t.gullet.expandTokens(u),u.reverse()),t.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===p7[r]),{type:"internal",mode:t.mode}}});Ce({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=qG(t.gullet.popToken());t.gullet.consumeSpaces();var i=v4t(t);return XG(t,n,i,r==="\\\\globallet"),{type:"internal",mode:t.mode}}});Ce({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,n=qG(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return XG(t,n,a,r==="\\\\globalfuture"),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:"internal",mode:t.mode}}});hy=o(function(t,r,n){var i=An.math[t]&&An.math[t].replace,a=b7(i||t,r,n);if(!a)throw new Error("Unsupported symbol "+t+" and font size "+r+".");return a},"getMetrics"),S7=o(function(t,r,n,i){var a=n.havingBaseStyle(r),s=Bt.makeSpan(i.concat(a.sizingClasses(n)),[t],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),jG=o(function(t,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=ve(a),t.height-=a,t.depth+=a},"centerSpan"),x4t=o(function(t,r,n,i,a,s){var l=Bt.makeSymbol(t,"Main-Regular",a,i),u=S7(l,r,i,s);return n&&jG(u,i,r),u},"makeSmallDelim"),b4t=o(function(t,r,n,i){return Bt.makeSymbol(t,"Size"+r+"-Regular",n,i)},"mathrmSize"),KG=o(function(t,r,n,i,a,s){var l=b4t(t,r,a,i),u=S7(Bt.makeSpan(["delimsizing","size"+r],[l],i),rr.TEXT,i,s);return n&&jG(u,i,rr.TEXT),u},"makeLargeDelim"),ZS=o(function(t,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Bt.makeSpan(["delimsizinginner",i],[Bt.makeSpan([],[Bt.makeSymbol(t,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),JS=o(function(t,r,n){var i=ac["Size4-Regular"][t.charCodeAt(0)]?ac["Size4-Regular"][t.charCodeAt(0)][4]:ac["Size1-Regular"][t.charCodeAt(0)][4],a=new sc("inner",_bt(t,Math.round(1e3*r))),s=new dl([a],{width:ve(i),height:ve(r),style:"width:"+ve(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Bt.makeSvgSpan([],[s],n);return l.height=r,l.style.height=ve(r),l.style.width=ve(i),{type:"elem",elem:l}},"makeInner"),m7=.008,_4={type:"kern",size:-1*m7},w4t=["|","\\lvert","\\rvert","\\vert"],T4t=["\\|","\\lVert","\\rVert","\\Vert"],QG=o(function(t,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=t,u=null;var m="Size1-Regular";t==="\\uparrow"?h=f="\u23D0":t==="\\Uparrow"?h=f="\u2016":t==="\\downarrow"?l=h="\u23D0":t==="\\Downarrow"?l=h="\u2016":t==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):t==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):tr.contains(w4t,t)?(h="\u2223",d="vert",p=333):tr.contains(T4t,t)?(h="\u2225",d="doublevert",p=556):t==="["||t==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):t==="]"||t==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):t==="\\lfloor"||t==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):t==="\\lceil"||t==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):t==="\\rfloor"||t==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):t==="\\rceil"||t==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):t==="("||t==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):t===")"||t==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):t==="\\{"||t==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):t==="\\lgroup"||t==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):t==="\\rgroup"||t==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):t==="\\lmoustache"||t==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(t==="\\rmoustache"||t==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=hy(l,m,a),y=g.height+g.depth,v=hy(h,m,a),x=v.height+v.depth,b=hy(f,m,a),w=b.height+b.depth,S=0,T=1;if(u!==null){var E=hy(u,m,a);S=E.height+E.depth,T=2}var _=y+w+S,A=Math.max(0,Math.ceil((r-_)/(T*x))),L=_+A*T*x,M=i.fontMetrics().axisHeight;n&&(M*=i.sizeMultiplier);var N=L/2-M,k=[];if(d.length>0){var I=L-y-w,C=Math.round(L*1e3),O=Lbt(d,Math.round(I*1e3)),D=new sc(d,O),P=(p/1e3).toFixed(3)+"em",F=(C/1e3).toFixed(3)+"em",B=new dl([D],{width:P,height:F,viewBox:"0 0 "+p+" "+C}),G=Bt.makeSvgSpan([],[B],i);G.height=C/1e3,G.style.width=P,G.style.height=F,k.push({type:"elem",elem:G})}else{if(k.push(ZS(f,m,a)),k.push(_4),u===null){var z=L-y-w+2*m7;k.push(JS(h,z,i))}else{var W=(L-y-w-S)/2+2*m7;k.push(JS(h,W,i)),k.push(_4),k.push(ZS(u,m,a)),k.push(_4),k.push(JS(h,W,i))}k.push(_4),k.push(ZS(l,m,a))}var Q=i.havingBaseStyle(rr.TEXT),j=Bt.makeVList({positionType:"bottom",positionData:N,children:k},Q);return S7(Bt.makeSpan(["delimsizing","mult"],[j],Q),rr.TEXT,i,s)},"makeStackedDelim"),t7=80,e7=.08,r7=o(function(t,r,n,i,a){var s=Abt(t,i,n),l=new sc(t,s),u=new dl([l],{width:"400em",height:ve(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Bt.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),k4t=o(function(t,r){var n=r.havingBaseSizing(),i=eV("\\surd",t*n.sizeMultiplier,tV,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+t7,t<1?a=1:t<1.4&&(a=.7),u=(1+s+e7)/a,h=(1+s)/a,l=r7("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+t7)*fy[i.size],h=(fy[i.size]+s)/a,u=(fy[i.size]+s+e7)/a,l=r7("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=t+s+e7,h=t+s,f=Math.floor(1e3*t+s)+t7,l=r7("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=ve(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),ZG=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],E4t=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],JG=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],fy=[0,1.2,1.8,2.4,3],C4t=o(function(t,r,n,i,a){if(t==="<"||t==="\\lt"||t==="\u27E8"?t="\\langle":(t===">"||t==="\\gt"||t==="\u27E9")&&(t="\\rangle"),tr.contains(ZG,t)||tr.contains(JG,t))return KG(t,r,!1,n,i,a);if(tr.contains(E4t,t))return QG(t,fy[r],!1,n,i,a);throw new ue("Illegal delimiter: '"+t+"'")},"makeSizedDelim"),S4t=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],A4t=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"stack"}],tV=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],_4t=o(function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},"delimTypeToFont"),eV=o(function(t,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),rV=o(function(t,r,n,i,a,s){t==="<"||t==="\\lt"||t==="\u27E8"?t="\\langle":(t===">"||t==="\\gt"||t==="\u27E9")&&(t="\\rangle");var l;tr.contains(JG,t)?l=S4t:tr.contains(ZG,t)?l=tV:l=A4t;var u=eV(t,r,l,i);return u.type==="small"?x4t(t,u.style,n,i,a,s):u.type==="large"?KG(t,u.size,n,i,a,s):QG(t,r,n,i,a,s)},"makeCustomSizedDelim"),L4t=o(function(t,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return rV(t,d,!0,i,a,s)},"makeLeftRightDelim"),hu={sqrtImage:k4t,sizedDelim:C4t,sizeToMaxHeight:fy,customSizedDelim:rV,leftRightDelim:L4t},oG={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},D4t=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(H4,"checkDelimiter");Ce({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((e,t)=>{var r=H4(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:oG[e.funcName].size,mclass:oG[e.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((e,t)=>e.delim==="."?Bt.makeSpan([e.mclass]):hu.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),"htmlBuilder"),mathmlBuilder:o(e=>{var t=[];e.delim!=="."&&t.push(Ro(e.delim,e.mode));var r=new se.MathNode("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=ve(hu.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(lG,"assertParsed");Ce({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new ue("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:H4(t[0],e).text,color:r}},"handler")});Ce({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=H4(t[0],e),n=e.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=mr(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((e,t)=>{lG(e);for(var r=Oi(e.body,t,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{lG(e);var r=bs(e.body,t);if(e.left!=="."){var n=new se.MathNode("mo",[Ro(e.left,e.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(e.right!=="."){var i=new se.MathNode("mo",[Ro(e.right,e.mode)]);i.setAttribute("fence","true"),e.rightColor&&i.setAttribute("mathcolor",e.rightColor),r.push(i)}return T7(r)},"mathmlBuilder")});Ce({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var r=H4(t[0],e);if(!e.parser.leftrightDepth)throw new ue("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((e,t)=>{var r;if(e.delim===".")r=yy(t,[]);else{r=hu.sizedDelim(e.delim,1,t,e.mode,[]);var n={delim:e.delim,options:t};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=e.delim==="\\vert"||e.delim==="|"?Ro("|","text"):Ro(e.delim,e.mode),n=new se.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});A7=o((e,t)=>{var r=Bt.wrapFragment(Or(e.body,t),t),n=e.label.slice(1),i=t.sizeMultiplier,a,s=0,l=tr.isCharacterBox(e.body);if(n==="sout")a=Bt.makeSpan(["stretchy","sout"]),a.height=t.fontMetrics().defaultRuleThickness/i,s=-.5*t.fontMetrics().xHeight;else if(n==="phase"){var u=Zn({number:.6,unit:"pt"},t),h=Zn({number:.35,unit:"ex"},t),f=t.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=ve(d/2+u);var p=Math.floor(1e3*d*i),m=Cbt(p),g=new dl([new sc("phase",m)],{width:"400em",height:ve(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Bt.makeSvgSpan(["hide-tail"],[g],t),a.style.height=ve(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),y=t.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=du.encloseSpan(r,n,y,v,t),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=ve(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=ve(x),a.style.borderRightWidth=ve(x)),s=r.depth+v,e.backgroundColor&&(a.style.backgroundColor=e.backgroundColor,e.borderColor&&(a.style.borderColor=e.borderColor))}var b;if(e.backgroundColor)b=Bt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},t);else{var w=/cancel|phase/.test(n)?["svg-align"]:[];b=Bt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:w}]},t)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?Bt.makeSpan(["mord","cancel-lap"],[b],t):Bt.makeSpan(["mord"],[b],t)},"htmlBuilder$7"),_7=o((e,t)=>{var r=0,n=new se.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[yn(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),e.label==="\\fcolorbox"){var i=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n},"mathmlBuilder$6");Ce({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:n,funcName:i}=e,a=mr(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:A7,mathmlBuilder:_7});Ce({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:n,funcName:i}=e,a=mr(t[0],"color-token").color,s=mr(t[1],"color-token").color,l=t[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:A7,mathmlBuilder:_7});Ce({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}});Ce({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e,i=t[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:A7,mathmlBuilder:_7});Ce({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});nV={};o(oc,"defineEnvironment");iV={};o(lt,"defineMacro");o(cG,"getHLines");W4=o(e=>{var t=e.parser.settings;if(!t.displayMode)throw new ue("{"+e.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(L7,"getAutoTag");o(gh,"parseArray");o(D7,"dCellStyle");lc=o(function(t,r){var n,i,a=t.body.length,s=t.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(t.colSeparationType&&t.colSeparationType==="small"){var m=r.havingStyle(rr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=t.colSeparationType==="CD"?Zn({number:3,unit:"ex"},r):12*d,y=3*d,v=t.arraystretch*g,x=.7*v,b=.3*v,w=0;function S(wt){for(var Ot=0;Ot0&&(w+=.25),h.push({pos:w,isDashed:wt[Ot]})}for(o(S,"setHLinePos"),S(s[0]),n=0;n0&&(N+=b,_wt))for(n=0;n=l)){var J=void 0;(i>0||t.hskipBeforeAndAfter)&&(J=tr.deflt(W.pregap,p),J!==0&&(O=Bt.makeSpan(["arraycolsep"],[]),O.style.width=ve(J),C.push(O)));var Z=[];for(n=0;n0){for(var ot=Bt.makeLineSpan("hline",r,f),ct=Bt.makeLineSpan("hdashline",r,f),ut=[{type:"elem",elem:u,shift:0}];h.length>0;){var et=h.pop(),Mt=et.pos-k;et.isDashed?ut.push({type:"elem",elem:ct,shift:Mt}):ut.push({type:"elem",elem:ot,shift:Mt})}u=Bt.makeVList({positionType:"individualShift",children:ut},r)}if(P.length===0)return Bt.makeSpan(["mord"],[u],r);var it=Bt.makeVList({positionType:"individualShift",children:P},r);return it=Bt.makeSpan(["tag"],[it],r),Bt.makeFragment([u,it])},"htmlBuilder"),R4t={c:"center ",l:"left ",r:"right "},cc=o(function(t,r){for(var n=[],i=new se.MathNode("mtd",[],["mtr-glue"]),a=new se.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=t.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var w=x;w0?"left ":"",p+=A[A.length-1].length>0?"right ":"";for(var L=1;L-1?"alignat":"align",a=t.envName==="split",s=gh(t.parser,{cols:n,addJot:!0,autoTag:a?void 0:L7(t.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:t.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:t.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");oc({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=V4(t[0]),n=r?[t[0]]:mr(t[0],"ordgroup").body,i=n.map(function(s){var l=E7(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new ue("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return gh(e.parser,a,D7(e.envName))},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(e.envName.charAt(e.envName.length-1)==="*"){var i=e.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new ue("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=gh(e.parser,n,D7(e.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},r=gh(e.parser,t,"script");return r.colSeparationType="small",r},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=V4(t[0]),n=r?[t[0]]:mr(t[0],"ordgroup").body,i=n.map(function(s){var l=E7(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new ue("Unknown column alignment: "+u,s)});if(i.length>1)throw new ue("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=gh(e.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new ue("{subarray} can contain only one column");return a},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=gh(e.parser,t,D7(e.envName));return{type:"leftright",mode:e.mode,body:[r],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:aV,htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){tr.contains(["gather","gather*"],e.envName)&&W4(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:L7(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return gh(e.parser,t,"display")},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:aV,htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){W4(e);var t={autoTag:L7(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return gh(e.parser,t,"display")},htmlBuilder:lc,mathmlBuilder:cc});oc({type:"array",names:["CD"],props:{numArgs:0},handler(e){return W4(e),y4t(e.parser)},htmlBuilder:lc,mathmlBuilder:cc});lt("\\nonumber","\\gdef\\@eqnsw{0}");lt("\\notag","\\nonumber");Ce({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new ue(e.funcName+" valid only within array environment")}});uG=nV;Ce({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:n}=e,i=t[0];if(i.type!=="ordgroup")throw new ue("Invalid environment name",i);for(var a="",s=0;s{var r=e.font,n=t.withFont(r);return Or(e.body,n)},"htmlBuilder$5"),oV=o((e,t)=>{var r=e.font,n=t.withFont(r);return yn(e.body,n)},"mathmlBuilder$4"),hG={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Ce({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=B4(t[0]),a=n;return a in hG&&(a=hG[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:sV,mathmlBuilder:oV});Ce({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r}=e,n=t[0],i=tr.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:U4(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Ce({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((e,t)=>{var{parser:r,funcName:n,breakOnTokenText:i}=e,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:sV,mathmlBuilder:oV});lV=o((e,t)=>{var r=t;return e==="display"?r=r.id>=rr.SCRIPT.id?r.text():rr.DISPLAY:e==="text"&&r.size===rr.DISPLAY.size?r=rr.TEXT:e==="script"?r=rr.SCRIPT:e==="scriptscript"&&(r=rr.SCRIPTSCRIPT),r},"adjustStyle"),R7=o((e,t)=>{var r=lV(e.size,t.style),n=r.fracNum(),i=r.fracDen(),a;a=t.havingStyle(n);var s=Or(e.numer,a,t);if(e.continued){var l=8.5/t.fontMetrics().ptPerEm,u=3.5/t.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=t.fontMetrics().denom1):(d>0?(m=t.fontMetrics().num2,g=p):(m=t.fontMetrics().num3,g=3*p),y=t.fontMetrics().denom2);var v;if(f){var b=t.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new se.MathNode("mfrac",[yn(e.numer,t),yn(e.denom,t)]);if(!e.hasBarLine)r.setAttribute("linethickness","0px");else if(e.barSize){var n=Zn(e.barSize,t);r.setAttribute("linethickness",ve(n))}var i=lV(e.size,t.style);if(i.size!==t.style.size){r=new se.MathNode("mstyle",[r]);var a=i.size===rr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var s=[];if(e.leftDelim!=null){var l=new se.MathNode("mo",[new se.TextNode(e.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),e.rightDelim!=null){var u=new se.MathNode("mo",[new se.TextNode(e.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return T7(s)}return r},"mathmlBuilder$3");Ce({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0],a=t[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:R7,mathmlBuilder:N7});Ce({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0],a=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Ce({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:r,token:n}=e,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:i,token:n}}});fG=["display","text","script","scriptscript"],dG=o(function(t){var r=null;return t.length>0&&(r=t,r=r==="."?null:r),r},"delimFromValue");Ce({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:r}=e,n=t[4],i=t[5],a=B4(t[0]),s=a.type==="atom"&&a.family==="open"?dG(a.text):null,l=B4(t[1]),u=l.type==="atom"&&l.family==="close"?dG(l.text):null,h=mr(t[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=t[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=mr(m.body[0],"textord");p=fG[Number(g.text)]}}else m=mr(m,"textord"),p=fG[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:R7,mathmlBuilder:N7});Ce({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:n,token:i}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:mr(t[0],"size").value,token:i}}});Ce({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0],a=ubt(mr(t[1],"infix").size),s=t[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:R7,mathmlBuilder:N7});cV=o((e,t)=>{var r=t.style,n,i;e.type==="supsub"?(n=e.sup?Or(e.sup,t.havingStyle(r.sup()),t):Or(e.sub,t.havingStyle(r.sub()),t),i=mr(e.base,"horizBrace")):i=mr(e,"horizBrace");var a=Or(i.base,t.havingBaseStyle(rr.DISPLAY)),s=du.svgSpan(i,t),l;if(i.isOver?(l=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},t),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Bt.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},t),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=Bt.makeSpan(["mord",i.isOver?"mover":"munder"],[l],t);i.isOver?l=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},t):l=Bt.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},t)}return Bt.makeSpan(["mord",i.isOver?"mover":"munder"],[l],t)},"htmlBuilder$3"),N4t=o((e,t)=>{var r=du.mathMLnode(e.label);return new se.MathNode(e.isOver?"mover":"munder",[yn(e.base,t),r])},"mathmlBuilder$2");Ce({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:n}=e;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:cV,mathmlBuilder:N4t});Ce({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,n=t[1],i=mr(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:mi(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((e,t)=>{var r=Oi(e.body,t,!1);return Bt.makeAnchor(e.href,[],r,t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=mh(e.body,t);return r instanceof vs||(r=new vs("mrow",[r])),r.setAttribute("href",e.href),r},"mathmlBuilder")});Ce({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,n=mr(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=e,a=mr(t[0],"raw").string,s=t[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=Oi(e.body,t,!1),n=["enclosing"];e.attributes.class&&n.push(...e.attributes.class.trim().split(/\s+/));var i=Bt.makeSpan(n,r,t);for(var a in e.attributes)a!=="class"&&e.attributes.hasOwnProperty(a)&&i.setAttribute(a,e.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((e,t)=>mh(e.body,t),"mathmlBuilder")});Ce({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:mi(t[0]),mathml:mi(t[1])}},"handler"),htmlBuilder:o((e,t)=>{var r=Oi(e.html,t,!1);return Bt.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((e,t)=>mh(e.mathml,t),"mathmlBuilder")});n7=o(function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!r)throw new ue("Invalid size: '"+t+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!_G(n))throw new ue("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Ce({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((e,t,r)=>{var{parser:n}=e,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=mr(r[0],"raw").string,h=u.split(","),f=0;f{var r=Zn(e.height,t),n=0;e.totalheight.number>0&&(n=Zn(e.totalheight,t)-r);var i=0;e.width.number>0&&(i=Zn(e.width,t));var a={height:ve(r+n)};i>0&&(a.width=ve(i)),n>0&&(a.verticalAlign=ve(-n));var s=new c7(e.src,e.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=new se.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=Zn(e.height,t),i=0;if(e.totalheight.number>0&&(i=Zn(e.totalheight,t)-n,r.setAttribute("valign",ve(-i))),r.setAttribute("height",ve(n+i)),e.width.number>0){var a=Zn(e.width,t);r.setAttribute("width",ve(a))}return r.setAttribute("src",e.src),r},"mathmlBuilder")});Ce({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:n}=e,i=mr(t[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(e,t){return Bt.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var r=Zn(e.dimension,t);return new se.SpaceNode(r)}});Ce({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((e,t)=>{var r;e.alignment==="clap"?(r=Bt.makeSpan([],[Or(e.body,t)]),r=Bt.makeSpan(["inner"],[r],t)):r=Bt.makeSpan(["inner"],[Or(e.body,t)]);var n=Bt.makeSpan(["fix"],[]),i=Bt.makeSpan([e.alignment],[r,n],t),a=Bt.makeSpan(["strut"]);return a.style.height=ve(i.height+i.depth),i.depth&&(a.style.verticalAlign=ve(-i.depth)),i.children.unshift(a),i=Bt.makeSpan(["thinbox"],[i],t),Bt.makeSpan(["mord","vbox"],[i],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=new se.MathNode("mpadded",[yn(e.body,t)]);if(e.alignment!=="rlap"){var n=e.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Ce({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:n}=e,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Ce({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new ue("Mismatched "+e.funcName)}});pG=o((e,t)=>{switch(t.style.size){case rr.DISPLAY.size:return e.display;case rr.TEXT.size:return e.text;case rr.SCRIPT.size:return e.script;case rr.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}},"chooseMathStyle");Ce({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:mi(t[0]),text:mi(t[1]),script:mi(t[2]),scriptscript:mi(t[3])}},"handler"),htmlBuilder:o((e,t)=>{var r=pG(e,t),n=Oi(r,t,!1);return Bt.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=pG(e,t);return mh(r,t)},"mathmlBuilder")});uV=o((e,t,r,n,i,a,s)=>{e=Bt.makeSpan([],[e]);var l=r&&tr.isCharacterBox(r),u,h;if(t){var f=Or(t,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Or(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+e.depth+s;p=Bt.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:ve(-a)},{type:"kern",size:u.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ve(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=e.height-s;p=Bt.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:ve(-a)},{type:"kern",size:u.kern},{type:"elem",elem:e}]},n)}else if(h){var y=e.depth+s;p=Bt.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ve(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return e;var v=[p];if(u&&a!==0&&!l){var x=Bt.makeSpan(["mspace"],[],n);x.style.marginRight=ve(a),v.unshift(x)}return Bt.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),hV=["\\smallint"],Ap=o((e,t)=>{var r,n,i=!1,a;e.type==="supsub"?(r=e.sup,n=e.sub,a=mr(e.base,"op"),i=!0):a=mr(e,"op");var s=t.style,l=!1;s.size===rr.DISPLAY.size&&a.symbol&&!tr.contains(hV,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=Bt.makeSymbol(a.name,h,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=Bt.staticSvg(f+"Size"+(l?"2":"1"),t);u=Bt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},t),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Oi(a.body,t,!0);m.length===1&&m[0]instanceof xs?(u=m[0],u.classes[0]="mop"):u=Bt.makeSpan(["mop"],m,t)}else{for(var g=[],y=1;y{var r;if(e.symbol)r=new vs("mo",[Ro(e.name,e.mode)]),tr.contains(hV,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new vs("mo",bs(e.body,t));else{r=new vs("mi",[new Zf(e.name.slice(1))]);var n=new vs("mo",[Ro("\u2061","text")]);e.parentIsSupSub?r=new vs("mrow",[r,n]):r=zG([r,n])}return r},"mathmlBuilder$1"),M4t={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Ce({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=n;return i.length===1&&(i=M4t[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:Ap,mathmlBuilder:vy});Ce({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((e,t)=>{var{parser:r}=e,n=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:mi(n)}},"handler"),htmlBuilder:Ap,mathmlBuilder:vy});I4t={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Ce({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Ap,mathmlBuilder:vy});Ce({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Ap,mathmlBuilder:vy});Ce({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,n=r;return n.length===1&&(n=I4t[n]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:Ap,mathmlBuilder:vy});fV=o((e,t)=>{var r,n,i=!1,a;e.type==="supsub"?(r=e.sup,n=e.sub,a=mr(e.base,"operatorname"),i=!0):a=mr(e,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Oi(l,t.withFont("mathrm"),!0),h=0;h{for(var r=bs(e.body,t.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new se.TextNode(l)]}var u=new se.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new se.MathNode("mo",[Ro("\u2061","text")]);return e.parentIsSupSub?new se.MathNode("mrow",[u,h]):se.newDocumentFragment([u,h])},"mathmlBuilder");Ce({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((e,t)=>{var{parser:r,funcName:n}=e,i=t[0];return{type:"operatorname",mode:r.mode,body:mi(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:fV,mathmlBuilder:O4t});lt("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");ed({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Bt.makeFragment(Oi(e.body,t,!1)):Bt.makeSpan(["mord"],Oi(e.body,t,!0),t)},mathmlBuilder(e,t){return mh(e.body,t,!0)}});Ce({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,n=t[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(e,t){var r=Or(e.body,t.havingCrampedStyle()),n=Bt.makeLineSpan("overline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},t);return Bt.makeSpan(["mord","overline"],[a],t)},mathmlBuilder(e,t){var r=new se.MathNode("mo",[new se.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new se.MathNode("mover",[yn(e.body,t),r]);return n.setAttribute("accent","true"),n}});Ce({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,n=t[0];return{type:"phantom",mode:r.mode,body:mi(n)}},"handler"),htmlBuilder:o((e,t)=>{var r=Oi(e.body,t.withPhantom(),!1);return Bt.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=bs(e.body,t);return new se.MathNode("mphantom",r)},"mathmlBuilder")});Ce({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,n=t[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((e,t)=>{var r=Bt.makeSpan([],[Or(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=bs(mi(e.body),t),n=new se.MathNode("mphantom",r),i=new se.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Ce({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((e,t)=>{var{parser:r}=e,n=t[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((e,t)=>{var r=Bt.makeSpan(["inner"],[Or(e.body,t.withPhantom())]),n=Bt.makeSpan(["fix"],[]);return Bt.makeSpan(["mord","rlap"],[r,n],t)},"htmlBuilder"),mathmlBuilder:o((e,t)=>{var r=bs(mi(e.body),t),n=new se.MathNode("mphantom",r),i=new se.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Ce({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e,n=mr(t[0],"size").value,i=t[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(e,t){var r=Or(e.body,t),n=Zn(e.dy,t);return Bt.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new se.MathNode("mpadded",[yn(e.body,t)]),n=e.dy.number+e.dy.unit;return r.setAttribute("voffset",n),r}});Ce({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});Ce({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(e,t,r){var{parser:n}=e,i=r[0],a=mr(t[0],"size"),s=mr(t[1],"size");return{type:"rule",mode:n.mode,shift:i&&mr(i,"size").value,width:a.value,height:s.value}},htmlBuilder(e,t){var r=Bt.makeSpan(["mord","rule"],[],t),n=Zn(e.width,t),i=Zn(e.height,t),a=e.shift?Zn(e.shift,t):0;return r.style.borderRightWidth=ve(n),r.style.borderTopWidth=ve(i),r.style.bottom=ve(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=Zn(e.width,t),n=Zn(e.height,t),i=e.shift?Zn(e.shift,t):0,a=t.color&&t.getColor()||"black",s=new se.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",ve(r)),s.setAttribute("height",ve(n));var l=new se.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",ve(i)):(l.setAttribute("height",ve(i)),l.setAttribute("depth",ve(-i))),l.setAttribute("voffset",ve(i)),l}});o(dV,"sizingGroup");mG=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],P4t=o((e,t)=>{var r=t.havingSize(e.size);return dV(e.body,r,t)},"htmlBuilder");Ce({type:"sizing",names:mG,props:{numArgs:0,allowedInText:!0},handler:o((e,t)=>{var{breakOnTokenText:r,funcName:n,parser:i}=e,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:mG.indexOf(n)+1,body:a}},"handler"),htmlBuilder:P4t,mathmlBuilder:o((e,t)=>{var r=t.havingSize(e.size),n=bs(e.body,r),i=new se.MathNode("mstyle",n);return i.setAttribute("mathsize",ve(r.sizeMultiplier)),i},"mathmlBuilder")});Ce({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((e,t,r)=>{var{parser:n}=e,i=!1,a=!1,s=r[0]&&mr(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=Bt.makeSpan([],[Or(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new se.MathNode("mpadded",[yn(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Ce({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:n}=e,i=r[0],a=t[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(e,t){var r=Or(e.body,t.havingCrampedStyle());r.height===0&&(r.height=t.fontMetrics().xHeight),r=Bt.wrapFragment(r,t);var n=t.fontMetrics(),i=n.defaultRuleThickness,a=i;t.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=ve(f);var m=Bt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},t);if(e.index){var g=t.havingStyle(rr.SCRIPTSCRIPT),y=Or(e.index,g,t),v=.6*(m.height-m.depth),x=Bt.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},t),b=Bt.makeSpan(["root"],[x]);return Bt.makeSpan(["mord","sqrt"],[b,m],t)}else return Bt.makeSpan(["mord","sqrt"],[m],t)},mathmlBuilder(e,t){var{body:r,index:n}=e;return n?new se.MathNode("mroot",[yn(r,t),yn(n,t)]):new se.MathNode("msqrt",[yn(r,t)])}});gG={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT};Ce({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:n,parser:i}=e,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(e,t){var r=gG[e.style],n=t.havingStyle(r).withFont("");return dV(e.body,n,t)},mathmlBuilder(e,t){var r=gG[e.style],n=t.havingStyle(r),i=bs(e.body,n),a=new se.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[e.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});B4t=o(function(t,r){var n=t.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===rr.DISPLAY.size||n.alwaysHandleSupSub);return i?Ap:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===rr.DISPLAY.size||n.limits);return a?fV:null}else{if(n.type==="accent")return tr.isCharacterBox(n.base)?C7:null;if(n.type==="horizBrace"){var s=!t.sub;return s===n.isOver?cV:null}else return null}else return null},"htmlBuilderDelegate");ed({type:"supsub",htmlBuilder(e,t){var r=B4t(e,t);if(r)return r(e,t);var{base:n,sup:i,sub:a}=e,s=Or(n,t),l,u,h=t.fontMetrics(),f=0,d=0,p=n&&tr.isCharacterBox(n);if(i){var m=t.havingStyle(t.style.sup());l=Or(i,m,t),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/t.sizeMultiplier)}if(a){var g=t.havingStyle(t.style.sub());u=Or(a,g,t),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}var y;t.style===rr.DISPLAY?y=h.sup1:t.style.cramped?y=h.sup3:y=h.sup2;var v=t.sizeMultiplier,x=ve(.5/h.ptPerEm/v),b=null;if(u){var w=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");(s instanceof xs||w)&&(b=ve(-s.italic))}var S;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var T=h.defaultRuleThickness,E=4*T;if(f-l.depth-(u.height-d)0&&(f+=_,d-=_)}var A=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];S=Bt.makeVList({positionType:"individualShift",children:A},t)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var L=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];S=Bt.makeVList({positionType:"shift",positionData:d,children:L},t)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),S=Bt.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},t);else throw new Error("supsub must have either sup or sub.");var M=h7(s,"right")||"mord";return Bt.makeSpan([M],[s,Bt.makeSpan(["msupsub"],[S])],t)},mathmlBuilder(e,t){var r=!1,n,i;e.base&&e.base.type==="horizBrace"&&(i=!!e.sup,i===e.base.isOver&&(r=!0,n=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var a=[yn(e.base,t)];e.sub&&a.push(yn(e.sub,t)),e.sup&&a.push(yn(e.sup,t));var s;if(r)s=n?"mover":"munder";else if(e.sub)if(e.sup){var h=e.base;h&&h.type==="op"&&h.limits&&t.style===rr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(t.style===rr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=e.base;u&&u.type==="op"&&u.limits&&(t.style===rr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||t.style===rr.DISPLAY)?s="munder":s="msub"}else{var l=e.base;l&&l.type==="op"&&l.limits&&(t.style===rr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===rr.DISPLAY)?s="mover":s="msup"}return new se.MathNode(s,a)}});ed({type:"atom",htmlBuilder(e,t){return Bt.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var r=new se.MathNode("mo",[Ro(e.text,e.mode)]);if(e.family==="bin"){var n=k7(e,t);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else e.family==="punct"?r.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&r.setAttribute("stretchy","false");return r}});pV={mi:"italic",mn:"normal",mtext:"normal"};ed({type:"mathord",htmlBuilder(e,t){return Bt.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var r=new se.MathNode("mi",[Ro(e.text,e.mode,t)]),n=k7(e,t)||"italic";return n!==pV[r.type]&&r.setAttribute("mathvariant",n),r}});ed({type:"textord",htmlBuilder(e,t){return Bt.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var r=Ro(e.text,e.mode,t),n=k7(e,t)||"normal",i;return e.mode==="text"?i=new se.MathNode("mtext",[r]):/[0-9]/.test(e.text)?i=new se.MathNode("mn",[r]):e.text==="\\prime"?i=new se.MathNode("mo",[r]):i=new se.MathNode("mi",[r]),n!==pV[i.type]&&i.setAttribute("mathvariant",n),i}});i7={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},a7={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};ed({type:"spacing",htmlBuilder(e,t){if(a7.hasOwnProperty(e.text)){var r=a7[e.text].className||"";if(e.mode==="text"){var n=Bt.makeOrd(e,t,"textord");return n.classes.push(r),n}else return Bt.makeSpan(["mspace",r],[Bt.mathsym(e.text,e.mode,t)],t)}else{if(i7.hasOwnProperty(e.text))return Bt.makeSpan(["mspace",i7[e.text]],[],t);throw new ue('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var r;if(a7.hasOwnProperty(e.text))r=new se.MathNode("mtext",[new se.TextNode("\xA0")]);else{if(i7.hasOwnProperty(e.text))return new se.MathNode("mspace");throw new ue('Unknown type of space "'+e.text+'"')}return r}});yG=o(()=>{var e=new se.MathNode("mtd",[]);return e.setAttribute("width","50%"),e},"pad");ed({type:"tag",mathmlBuilder(e,t){var r=new se.MathNode("mtable",[new se.MathNode("mtr",[yG(),new se.MathNode("mtd",[mh(e.body,t)]),yG(),new se.MathNode("mtd",[mh(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});vG={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},xG={"\\textbf":"textbf","\\textmd":"textmd"},F4t={"\\textit":"textit","\\textup":"textup"},bG=o((e,t)=>{var r=e.font;if(r){if(vG[r])return t.withTextFontFamily(vG[r]);if(xG[r])return t.withTextFontWeight(xG[r]);if(r==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(F4t[r])},"optionsWithFont");Ce({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:n}=e,i=t[0];return{type:"text",mode:r.mode,body:mi(i),font:n}},htmlBuilder(e,t){var r=bG(e,t),n=Oi(e.body,r,!0);return Bt.makeSpan(["mord","text"],n,r)},mathmlBuilder(e,t){var r=bG(e,t);return mh(e.body,r)}});Ce({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=Or(e.body,t),n=Bt.makeLineSpan("underline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Bt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},t);return Bt.makeSpan(["mord","underline"],[a],t)},mathmlBuilder(e,t){var r=new se.MathNode("mo",[new se.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new se.MathNode("munder",[yn(e.body,t),r]);return n.setAttribute("accentunder","true"),n}});Ce({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=Or(e.body,t),n=t.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return Bt.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new se.MathNode("mpadded",[yn(e.body,t)],["vcenter"])}});Ce({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new ue("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=wG(e),n=[],i=t.havingStyle(t.style.text()),a=0;ae.body.replace(/ /g,e.star?"\u2423":"\xA0"),"makeVerb"),dh=BG,mV=`[ \r + ]`,z4t="\\\\[a-zA-Z@]+",$4t="\\\\[^\uD800-\uDFFF]",G4t="("+z4t+")"+mV+"*",V4t=`\\\\( +|[ \r ]+ +?)[ \r ]*`,g7="[\u0300-\u036F]",U4t=new RegExp(g7+"+$"),H4t="("+mV+"+)|"+(V4t+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(g7+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(g7+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+G4t)+("|"+$4t+")"),F4=class{static{o(this,"Lexer")}constructor(t,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=r,this.tokenRegex=new RegExp(H4t,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,r){this.catcodes[t]=r}lex(){var t=this.input,r=this.tokenRegex.lastIndex;if(r===t.length)return new Do("EOF",new Ks(this,r,r));var n=this.tokenRegex.exec(t);if(n===null||n.index!==r)throw new ue("Unexpected character: '"+t[r]+"'",new Do(t[r],new Ks(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=t.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Do(i,new Ks(this,r,this.tokenRegex.lastIndex))}},y7=class{static{o(this,"Namespace")}constructor(t,r){t===void 0&&(t={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new ue("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var r in t)t.hasOwnProperty(r)&&(t[r]==null?delete this.current[r]:this.current[r]=t[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][t]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(t)&&(a[t]=this.current[t])}r==null?delete this.current[t]:this.current[t]=r}},W4t=iV;lt("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});lt("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});lt("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});lt("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});lt("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return t[0].length===1&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});lt("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");lt("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});TG={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};lt("\\char",function(e){var t=e.popToken(),r,n="";if(t.text==="'")r=8,t=e.popToken();else if(t.text==='"')r=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")n=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new ue("\\char` missing argument");n=t.text.charCodeAt(0)}else r=10;if(r){if(n=TG[t.text],n==null||n>=r)throw new ue("Invalid base-"+r+" digit "+t.text);for(var i;(i=TG[e.future().text])!=null&&i{var n=e.consumeArg().tokens;if(n.length!==1)throw new ue("\\newcommand's first argument must be a macro name");var i=n[0].text,a=e.isDefined(i);if(a&&!t)throw new ue("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new ue("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var s=0;if(n=e.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",u=e.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new ue("Invalid number of arguments: "+l);s=parseInt(l),n=e.consumeArg().tokens}return e.macros.set(i,{tokens:n,numArgs:s}),""},"newcommand");lt("\\newcommand",e=>M7(e,!1,!0));lt("\\renewcommand",e=>M7(e,!0,!1));lt("\\providecommand",e=>M7(e,!0,!0));lt("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(r=>r.text).join("")),""});lt("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(r=>r.text).join("")),""});lt("\\show",e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),dh[r],An.math[r],An.text[r]),""});lt("\\bgroup","{");lt("\\egroup","}");lt("~","\\nobreakspace");lt("\\lq","`");lt("\\rq","'");lt("\\aa","\\r a");lt("\\AA","\\r A");lt("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");lt("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");lt("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");lt("\u212C","\\mathscr{B}");lt("\u2130","\\mathscr{E}");lt("\u2131","\\mathscr{F}");lt("\u210B","\\mathscr{H}");lt("\u2110","\\mathscr{I}");lt("\u2112","\\mathscr{L}");lt("\u2133","\\mathscr{M}");lt("\u211B","\\mathscr{R}");lt("\u212D","\\mathfrak{C}");lt("\u210C","\\mathfrak{H}");lt("\u2128","\\mathfrak{Z}");lt("\\Bbbk","\\Bbb{k}");lt("\xB7","\\cdotp");lt("\\llap","\\mathllap{\\textrm{#1}}");lt("\\rlap","\\mathrlap{\\textrm{#1}}");lt("\\clap","\\mathclap{\\textrm{#1}}");lt("\\mathstrut","\\vphantom{(}");lt("\\underbar","\\underline{\\text{#1}}");lt("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');lt("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");lt("\\ne","\\neq");lt("\u2260","\\neq");lt("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");lt("\u2209","\\notin");lt("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");lt("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");lt("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");lt("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");lt("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");lt("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");lt("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");lt("\u27C2","\\perp");lt("\u203C","\\mathclose{!\\mkern-0.8mu!}");lt("\u220C","\\notni");lt("\u231C","\\ulcorner");lt("\u231D","\\urcorner");lt("\u231E","\\llcorner");lt("\u231F","\\lrcorner");lt("\xA9","\\copyright");lt("\xAE","\\textregistered");lt("\uFE0F","\\textregistered");lt("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');lt("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');lt("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');lt("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');lt("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");lt("\u22EE","\\vdots");lt("\\varGamma","\\mathit{\\Gamma}");lt("\\varDelta","\\mathit{\\Delta}");lt("\\varTheta","\\mathit{\\Theta}");lt("\\varLambda","\\mathit{\\Lambda}");lt("\\varXi","\\mathit{\\Xi}");lt("\\varPi","\\mathit{\\Pi}");lt("\\varSigma","\\mathit{\\Sigma}");lt("\\varUpsilon","\\mathit{\\Upsilon}");lt("\\varPhi","\\mathit{\\Phi}");lt("\\varPsi","\\mathit{\\Psi}");lt("\\varOmega","\\mathit{\\Omega}");lt("\\substack","\\begin{subarray}{c}#1\\end{subarray}");lt("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");lt("\\boxed","\\fbox{$\\displaystyle{#1}$}");lt("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");lt("\\implies","\\DOTSB\\;\\Longrightarrow\\;");lt("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");kG={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};lt("\\dots",function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in kG?t=kG[r]:(r.slice(0,4)==="\\not"||r in An.math&&tr.contains(["bin","rel"],An.math[r].group))&&(t="\\dotsb"),t});I7={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};lt("\\dotso",function(e){var t=e.future().text;return t in I7?"\\ldots\\,":"\\ldots"});lt("\\dotsc",function(e){var t=e.future().text;return t in I7&&t!==","?"\\ldots\\,":"\\ldots"});lt("\\cdots",function(e){var t=e.future().text;return t in I7?"\\@cdots\\,":"\\@cdots"});lt("\\dotsb","\\cdots");lt("\\dotsm","\\cdots");lt("\\dotsi","\\!\\cdots");lt("\\dotsx","\\ldots\\,");lt("\\DOTSI","\\relax");lt("\\DOTSB","\\relax");lt("\\DOTSX","\\relax");lt("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");lt("\\,","\\tmspace+{3mu}{.1667em}");lt("\\thinspace","\\,");lt("\\>","\\mskip{4mu}");lt("\\:","\\tmspace+{4mu}{.2222em}");lt("\\medspace","\\:");lt("\\;","\\tmspace+{5mu}{.2777em}");lt("\\thickspace","\\;");lt("\\!","\\tmspace-{3mu}{.1667em}");lt("\\negthinspace","\\!");lt("\\negmedspace","\\tmspace-{4mu}{.2222em}");lt("\\negthickspace","\\tmspace-{5mu}{.277em}");lt("\\enspace","\\kern.5em ");lt("\\enskip","\\hskip.5em\\relax");lt("\\quad","\\hskip1em\\relax");lt("\\qquad","\\hskip2em\\relax");lt("\\tag","\\@ifstar\\tag@literal\\tag@paren");lt("\\tag@paren","\\tag@literal{({#1})}");lt("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new ue("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});lt("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");lt("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");lt("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");lt("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");lt("\\newline","\\\\\\relax");lt("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");gV=ve(ac["Main-Regular"][84][1]-.7*ac["Main-Regular"][65][1]);lt("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+gV+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");lt("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+gV+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");lt("\\hspace","\\@ifstar\\@hspacer\\@hspace");lt("\\@hspace","\\hskip #1\\relax");lt("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");lt("\\ordinarycolon",":");lt("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");lt("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');lt("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');lt("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');lt("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');lt("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');lt("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');lt("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');lt("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');lt("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');lt("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');lt("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');lt("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');lt("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');lt("\u2237","\\dblcolon");lt("\u2239","\\eqcolon");lt("\u2254","\\coloneqq");lt("\u2255","\\eqqcolon");lt("\u2A74","\\Coloneqq");lt("\\ratio","\\vcentcolon");lt("\\coloncolon","\\dblcolon");lt("\\colonequals","\\coloneqq");lt("\\coloncolonequals","\\Coloneqq");lt("\\equalscolon","\\eqqcolon");lt("\\equalscoloncolon","\\Eqqcolon");lt("\\colonminus","\\coloneq");lt("\\coloncolonminus","\\Coloneq");lt("\\minuscolon","\\eqcolon");lt("\\minuscoloncolon","\\Eqcolon");lt("\\coloncolonapprox","\\Colonapprox");lt("\\coloncolonsim","\\Colonsim");lt("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");lt("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");lt("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");lt("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");lt("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");lt("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");lt("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");lt("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");lt("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");lt("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");lt("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");lt("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");lt("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");lt("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");lt("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");lt("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");lt("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");lt("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");lt("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");lt("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");lt("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");lt("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");lt("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");lt("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");lt("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");lt("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");lt("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");lt("\\imath","\\html@mathml{\\@imath}{\u0131}");lt("\\jmath","\\html@mathml{\\@jmath}{\u0237}");lt("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");lt("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");lt("\u27E6","\\llbracket");lt("\u27E7","\\rrbracket");lt("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");lt("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");lt("\u2983","\\lBrace");lt("\u2984","\\rBrace");lt("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");lt("\u29B5","\\minuso");lt("\\darr","\\downarrow");lt("\\dArr","\\Downarrow");lt("\\Darr","\\Downarrow");lt("\\lang","\\langle");lt("\\rang","\\rangle");lt("\\uarr","\\uparrow");lt("\\uArr","\\Uparrow");lt("\\Uarr","\\Uparrow");lt("\\N","\\mathbb{N}");lt("\\R","\\mathbb{R}");lt("\\Z","\\mathbb{Z}");lt("\\alef","\\aleph");lt("\\alefsym","\\aleph");lt("\\Alpha","\\mathrm{A}");lt("\\Beta","\\mathrm{B}");lt("\\bull","\\bullet");lt("\\Chi","\\mathrm{X}");lt("\\clubs","\\clubsuit");lt("\\cnums","\\mathbb{C}");lt("\\Complex","\\mathbb{C}");lt("\\Dagger","\\ddagger");lt("\\diamonds","\\diamondsuit");lt("\\empty","\\emptyset");lt("\\Epsilon","\\mathrm{E}");lt("\\Eta","\\mathrm{H}");lt("\\exist","\\exists");lt("\\harr","\\leftrightarrow");lt("\\hArr","\\Leftrightarrow");lt("\\Harr","\\Leftrightarrow");lt("\\hearts","\\heartsuit");lt("\\image","\\Im");lt("\\infin","\\infty");lt("\\Iota","\\mathrm{I}");lt("\\isin","\\in");lt("\\Kappa","\\mathrm{K}");lt("\\larr","\\leftarrow");lt("\\lArr","\\Leftarrow");lt("\\Larr","\\Leftarrow");lt("\\lrarr","\\leftrightarrow");lt("\\lrArr","\\Leftrightarrow");lt("\\Lrarr","\\Leftrightarrow");lt("\\Mu","\\mathrm{M}");lt("\\natnums","\\mathbb{N}");lt("\\Nu","\\mathrm{N}");lt("\\Omicron","\\mathrm{O}");lt("\\plusmn","\\pm");lt("\\rarr","\\rightarrow");lt("\\rArr","\\Rightarrow");lt("\\Rarr","\\Rightarrow");lt("\\real","\\Re");lt("\\reals","\\mathbb{R}");lt("\\Reals","\\mathbb{R}");lt("\\Rho","\\mathrm{P}");lt("\\sdot","\\cdot");lt("\\sect","\\S");lt("\\spades","\\spadesuit");lt("\\sub","\\subset");lt("\\sube","\\subseteq");lt("\\supe","\\supseteq");lt("\\Tau","\\mathrm{T}");lt("\\thetasym","\\vartheta");lt("\\weierp","\\wp");lt("\\Zeta","\\mathrm{Z}");lt("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");lt("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");lt("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");lt("\\bra","\\mathinner{\\langle{#1}|}");lt("\\ket","\\mathinner{|{#1}\\rangle}");lt("\\braket","\\mathinner{\\langle{#1}\\rangle}");lt("\\Bra","\\left\\langle#1\\right|");lt("\\Ket","\\left|#1\\right\\rangle");yV=o(e=>t=>{var r=t.consumeArg().tokens,n=t.consumeArg().tokens,i=t.consumeArg().tokens,a=t.consumeArg().tokens,s=t.macros.get("|"),l=t.macros.get("\\|");t.macros.beginGroup();var u=o(d=>p=>{e&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");t.macros.set("|",u(!1)),i.length&&t.macros.set("\\|",u(!0));var h=t.consumeArg().tokens,f=t.expandTokens([...a,...h,...r]);return t.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");lt("\\bra@ket",yV(!1));lt("\\bra@set",yV(!0));lt("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");lt("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");lt("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");lt("\\angln","{\\angl n}");lt("\\blue","\\textcolor{##6495ed}{#1}");lt("\\orange","\\textcolor{##ffa500}{#1}");lt("\\pink","\\textcolor{##ff00af}{#1}");lt("\\red","\\textcolor{##df0030}{#1}");lt("\\green","\\textcolor{##28ae7b}{#1}");lt("\\gray","\\textcolor{gray}{#1}");lt("\\purple","\\textcolor{##9d38bd}{#1}");lt("\\blueA","\\textcolor{##ccfaff}{#1}");lt("\\blueB","\\textcolor{##80f6ff}{#1}");lt("\\blueC","\\textcolor{##63d9ea}{#1}");lt("\\blueD","\\textcolor{##11accd}{#1}");lt("\\blueE","\\textcolor{##0c7f99}{#1}");lt("\\tealA","\\textcolor{##94fff5}{#1}");lt("\\tealB","\\textcolor{##26edd5}{#1}");lt("\\tealC","\\textcolor{##01d1c1}{#1}");lt("\\tealD","\\textcolor{##01a995}{#1}");lt("\\tealE","\\textcolor{##208170}{#1}");lt("\\greenA","\\textcolor{##b6ffb0}{#1}");lt("\\greenB","\\textcolor{##8af281}{#1}");lt("\\greenC","\\textcolor{##74cf70}{#1}");lt("\\greenD","\\textcolor{##1fab54}{#1}");lt("\\greenE","\\textcolor{##0d923f}{#1}");lt("\\goldA","\\textcolor{##ffd0a9}{#1}");lt("\\goldB","\\textcolor{##ffbb71}{#1}");lt("\\goldC","\\textcolor{##ff9c39}{#1}");lt("\\goldD","\\textcolor{##e07d10}{#1}");lt("\\goldE","\\textcolor{##a75a05}{#1}");lt("\\redA","\\textcolor{##fca9a9}{#1}");lt("\\redB","\\textcolor{##ff8482}{#1}");lt("\\redC","\\textcolor{##f9685d}{#1}");lt("\\redD","\\textcolor{##e84d39}{#1}");lt("\\redE","\\textcolor{##bc2612}{#1}");lt("\\maroonA","\\textcolor{##ffbde0}{#1}");lt("\\maroonB","\\textcolor{##ff92c6}{#1}");lt("\\maroonC","\\textcolor{##ed5fa6}{#1}");lt("\\maroonD","\\textcolor{##ca337c}{#1}");lt("\\maroonE","\\textcolor{##9e034e}{#1}");lt("\\purpleA","\\textcolor{##ddd7ff}{#1}");lt("\\purpleB","\\textcolor{##c6b9fc}{#1}");lt("\\purpleC","\\textcolor{##aa87ff}{#1}");lt("\\purpleD","\\textcolor{##7854ab}{#1}");lt("\\purpleE","\\textcolor{##543b78}{#1}");lt("\\mintA","\\textcolor{##f5f9e8}{#1}");lt("\\mintB","\\textcolor{##edf2df}{#1}");lt("\\mintC","\\textcolor{##e0e5cc}{#1}");lt("\\grayA","\\textcolor{##f6f7f7}{#1}");lt("\\grayB","\\textcolor{##f0f1f2}{#1}");lt("\\grayC","\\textcolor{##e3e5e6}{#1}");lt("\\grayD","\\textcolor{##d6d8da}{#1}");lt("\\grayE","\\textcolor{##babec2}{#1}");lt("\\grayF","\\textcolor{##888d93}{#1}");lt("\\grayG","\\textcolor{##626569}{#1}");lt("\\grayH","\\textcolor{##3b3e40}{#1}");lt("\\grayI","\\textcolor{##21242c}{#1}");lt("\\kaBlue","\\textcolor{##314453}{#1}");lt("\\kaGreen","\\textcolor{##71B307}{#1}");vV={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},v7=class{static{o(this,"MacroExpander")}constructor(t,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(t),this.macros=new y7(W4t,r.macros),this.mode=n,this.stack=[]}feed(t){this.lexer=new F4(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var r,n,i;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Do("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var r=[],n=t&&t.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new ue("Extra }",a)}else if(a.text==="EOF")throw new ue("Unexpected end of input in a macro argument, expected '"+(t&&n?t[l]:"}")+"'",a);if(t&&n)if((s===0||s===1&&t[l]==="{")&&a.text===t[l]){if(++l,l===t.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(t,r){if(r){if(r.length!==t+1)throw new ue("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new ue("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||t&&i.unexpandable){if(t&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new ue("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new ue("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new ue("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new Do(t)]):void 0}expandTokens(t){var r=[],n=this.stack.length;for(this.pushTokens(t);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(t){var r=this.expandMacro(t);return r&&r.map(n=>n.text).join("")}_getExpansion(t){var r=this.macros.get(t);if(r==null)return r;if(t.length===1){var n=this.lexer.catcodes[t];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new F4(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(t){return this.macros.has(t)||dh.hasOwnProperty(t)||An.math.hasOwnProperty(t)||An.text.hasOwnProperty(t)||vV.hasOwnProperty(t)}isExpandable(t){var r=this.macros.get(t);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:dh.hasOwnProperty(t)&&!dh[t].primitive}},EG=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,L4=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),s7={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},CG={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},z4=class e{static{o(this,"Parser")}constructor(t,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new v7(t,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(t,r){if(r===void 0&&(r=!0),this.fetch().text!==t)throw new ue("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Do("}")),this.gullet.pushTokens(t);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(t,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(e.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||t&&dh[i.text]&&dh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(t){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',t);var l=An[this.mode][r].group,u=Ks.range(t),h;if(Pbt.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(AG(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),t)),s={type:"textord",mode:"text",loc:Ks.range(t),text:r};else return null;if(this.consume(),a)for(var d=0;d{t.tagName==="A"&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")}),_p.default.addHook("afterSanitizeAttributes",t=>{t.tagName==="A"&&t.hasAttribute(e)&&(t.setAttribute("target",t.getAttribute(e)??""),t.removeAttribute(e),t.getAttribute("target")==="_blank"&&t.setAttribute("rel","noopener"))})}var _p,rd,K4t,Q4t,CV,kV,Zr,J4t,t3t,e3t,r3t,SV,n3t,Tr,i3t,a3t,yh,B7,s3t,o3t,EV,F7,Pi,nd,vh,Yt,hr=R(()=>{"use strict";_p=Qi(XS(),1),rd=//gi,K4t=o(e=>e?SV(e).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),Q4t=(()=>{let e=!1;return()=>{e||(Z4t(),e=!0)}})();o(Z4t,"setupDompurifyHooks");CV=o(e=>(Q4t(),_p.default.sanitize(e)),"removeScript"),kV=o((e,t)=>{if(t.flowchart?.htmlLabels!==!1){let r=t.securityLevel;r==="antiscript"||r==="strict"?e=CV(e):r!=="loose"&&(e=SV(e),e=e.replace(//g,">"),e=e.replace(/=/g,"="),e=r3t(e))}return e},"sanitizeMore"),Zr=o((e,t)=>e&&(t.dompurifyConfig?e=_p.default.sanitize(kV(e,t),t.dompurifyConfig).toString():e=_p.default.sanitize(kV(e,t),{FORBID_TAGS:["style"]}).toString(),e),"sanitizeText"),J4t=o((e,t)=>typeof e=="string"?Zr(e,t):e.flat().map(r=>Zr(r,t)),"sanitizeTextOrArray"),t3t=o(e=>rd.test(e),"hasBreaks"),e3t=o(e=>e.split(rd),"splitBreaks"),r3t=o(e=>e.replace(/#br#/g,"
        "),"placeholderToBreak"),SV=o(e=>e.replace(rd,"#br#"),"breakToPlaceholder"),n3t=o(e=>{let t="";return e&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,t=t.replaceAll(/\(/g,"\\("),t=t.replaceAll(/\)/g,"\\)")),t},"getUrl"),Tr=o(e=>!(e===!1||["false","null","0"].includes(String(e).trim().toLowerCase())),"evaluate"),i3t=o(function(...e){let t=e.filter(r=>!isNaN(r));return Math.max(...t)},"getMax"),a3t=o(function(...e){let t=e.filter(r=>!isNaN(r));return Math.min(...t)},"getMin"),yh=o(function(e){let t=e.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,e.split(t).length-1),"countOccurrence"),s3t=o((e,t)=>{let r=B7(e,"~"),n=B7(t,"~");return r===1&&n===1},"shouldCombineSets"),o3t=o(e=>{let t=B7(e,"~"),r=!1;if(t<=1)return e;t%2!==0&&e.startsWith("~")&&(e=e.substring(1),r=!0);let n=[...e],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),EV=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),F7=/\$\$(.*)\$\$/g,Pi=o(e=>(e.match(F7)?.length??0)>0,"hasKatex"),nd=o(async(e,t)=>{e=await vh(e,t);let r=document.createElement("div");r.innerHTML=e,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),vh=o(async(e,t)=>{if(!Pi(e))return e;if(!(EV()||t.legacyMathML||t.forceLegacyMathML))return e.replace(F7,"MathML is unsupported in this environment.");let{default:r}=await Promise.resolve().then(()=>(TV(),wV)),n=t.forceLegacyMathML||!EV()&&t.legacyMathML?"htmlAndMathml":"mathml";return e.split(rd).map(i=>Pi(i)?`
        ${i}
        `:`
        ${i}
        `).join("").replace(F7,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),Yt={getRows:K4t,sanitizeText:Zr,sanitizeTextOrArray:J4t,hasBreaks:t3t,splitBreaks:e3t,lineBreakRegex:rd,removeScript:CV,getUrl:n3t,evaluate:Tr,getMax:i3t,getMin:a3t}});var l3t,c3t,Pr,No,Jn=R(()=>{"use strict";ce();l3t=o(function(e,t){for(let r of t)e.attr(r[0],r[1])},"d3Attrs"),c3t=o(function(e,t,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${t}px;`)):(n.set("height",e),n.set("width",t)),n},"calculateSvgSizeAttrs"),Pr=o(function(e,t,r,n){let i=c3t(t,r,n);l3t(e,i)},"configureSvgSize"),No=o(function(e,t,r,n){let i=t.node().getBBox(),a=i.width,s=i.height;V.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;V.info(`Graph bounds: ${l}x${u}`,e),l=a+r*2,u=s+r*2,V.info(`Calculated bounds: ${l}x${u}`),Pr(t,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;t.attr("viewBox",h)},"setupGraphViewbox")});var Y4,u3t,AV,_V,z7=R(()=>{"use strict";ce();Y4={},u3t=o((e,t,r)=>{let n="";return e in Y4&&Y4[e]?n=Y4[e](r):V.warn(`No theme found for ${e}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${t} +`},"getStyles"),AV=o((e,t)=>{t!==void 0&&(Y4[e]=t)},"addStylesForDiagram"),_V=u3t});var xy={};xr(xy,{clear:()=>Ar,getAccDescription:()=>zr,getAccTitle:()=>Br,getDiagramTitle:()=>Jr,setAccDescription:()=>Fr,setAccTitle:()=>Mr,setDiagramTitle:()=>cn});var $7,G7,V7,U7,Ar,Mr,Br,Fr,zr,cn,Jr,Ci=R(()=>{"use strict";hr();js();$7="",G7="",V7="",U7=o(e=>Zr(e,Nr()),"sanitizeText"),Ar=o(()=>{$7="",V7="",G7=""},"clear"),Mr=o(e=>{$7=U7(e).replace(/^\s+/g,"")},"setAccTitle"),Br=o(()=>$7,"getAccTitle"),Fr=o(e=>{V7=U7(e).replace(/\n\s+/g,` +`)},"setAccDescription"),zr=o(()=>V7,"getAccDescription"),cn=o(e=>{G7=U7(e)},"setDiagramTitle"),Jr=o(()=>G7,"getDiagramTitle")});var LV,h3t,pt,W7,X4,f3t,Y7,d3t,q4,id,by,H7,Ue=R(()=>{"use strict";jf();ce();js();hr();Jn();z7();Ci();LV=V,h3t=J1,pt=Nr,W7=v4,X4=hh,f3t=o(e=>Zr(e,pt()),"sanitizeText"),Y7=No,d3t=o(()=>xy,"getCommonDb"),q4={},id=o((e,t,r)=>{q4[e]&&LV.warn(`Diagram with id ${e} already registered. Overwriting.`),q4[e]=t,r&&_S(e,r),AV(e,t.styles),t.injectUtils?.(LV,h3t,pt,f3t,Y7,d3t(),()=>{})},"registerDiagram"),by=o(e=>{if(e in q4)return q4[e];throw new H7(e)},"getDiagram"),H7=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}});var ml,xh,Ja,pl,uc,wy,q7,X7,j4,K4,DV,p3t,m3t,g3t,y3t,v3t,x3t,b3t,w3t,T3t,k3t,E3t,C3t,S3t,A3t,_3t,L3t,D3t,RV,R3t,N3t,NV,M3t,I3t,O3t,P3t,bh,B3t,F3t,z3t,$3t,G3t,Ty,j7=R(()=>{"use strict";Ue();hr();Ci();ml=[],xh=[""],Ja="global",pl="",uc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],wy=[],q7="",X7=!1,j4=4,K4=2,p3t=o(function(){return DV},"getC4Type"),m3t=o(function(e){DV=Zr(e,pt())},"setC4Type"),g3t=o(function(e,t,r,n,i,a,s,l,u){if(e==null||t===void 0||t===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=wy.find(d=>d.from===t&&d.to===r);if(f?h=f:wy.push(h),h.type=e,h.from=t,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=bh()},"addRel"),y3t=o(function(e,t,r,n,i,a,s){if(t===null||r===null)return;let l={},u=ml.find(h=>h.alias===t);if(u&&t===u.alias?l=u:(l.alias=t,ml.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:e},l.parentBoundary=Ja,l.wrap=bh()},"addPersonOrSystem"),v3t=o(function(e,t,r,n,i,a,s,l){if(t===null||r===null)return;let u={},h=ml.find(f=>f.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,ml.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=bh(),u.typeC4Shape={text:e},u.parentBoundary=Ja},"addContainer"),x3t=o(function(e,t,r,n,i,a,s,l){if(t===null||r===null)return;let u={},h=ml.find(f=>f.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,ml.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=bh(),u.typeC4Shape={text:e},u.parentBoundary=Ja},"addComponent"),b3t=o(function(e,t,r,n,i){if(e===null||t===null)return;let a={},s=uc.find(l=>l.alias===e);if(s&&e===s.alias?a=s:(a.alias=e,uc.push(a)),t==null?a.label={text:""}:a.label={text:t},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Ja,a.wrap=bh(),pl=Ja,Ja=e,xh.push(pl)},"addPersonOrSystemBoundary"),w3t=o(function(e,t,r,n,i){if(e===null||t===null)return;let a={},s=uc.find(l=>l.alias===e);if(s&&e===s.alias?a=s:(a.alias=e,uc.push(a)),t==null?a.label={text:""}:a.label={text:t},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Ja,a.wrap=bh(),pl=Ja,Ja=e,xh.push(pl)},"addContainerBoundary"),T3t=o(function(e,t,r,n,i,a,s,l){if(t===null||r===null)return;let u={},h=uc.find(f=>f.alias===t);if(h&&t===h.alias?u=h:(u.alias=t,uc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=e,u.parentBoundary=Ja,u.wrap=bh(),pl=Ja,Ja=t,xh.push(pl)},"addDeploymentNode"),k3t=o(function(){Ja=pl,xh.pop(),pl=xh.pop(),xh.push(pl)},"popBoundaryParseStack"),E3t=o(function(e,t,r,n,i,a,s,l,u,h,f){let d=ml.find(p=>p.alias===t);if(!(d===void 0&&(d=uc.find(p=>p.alias===t),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),C3t=o(function(e,t,r,n,i,a,s){let l=wy.find(u=>u.from===t&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),S3t=o(function(e,t,r){let n=j4,i=K4;if(typeof t=="object"){let a=Object.values(t)[0];n=parseInt(a)}else n=parseInt(t);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(j4=n),i>=1&&(K4=i)},"updateLayoutConfig"),A3t=o(function(){return j4},"getC4ShapeInRow"),_3t=o(function(){return K4},"getC4BoundaryInRow"),L3t=o(function(){return Ja},"getCurrentBoundaryParse"),D3t=o(function(){return pl},"getParentBoundaryParse"),RV=o(function(e){return e==null?ml:ml.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),R3t=o(function(e){return ml.find(t=>t.alias===e)},"getC4Shape"),N3t=o(function(e){return Object.keys(RV(e))},"getC4ShapeKeys"),NV=o(function(e){return e==null?uc:uc.filter(t=>t.parentBoundary===e)},"getBoundaries"),M3t=NV,I3t=o(function(){return wy},"getRels"),O3t=o(function(){return q7},"getTitle"),P3t=o(function(e){X7=e},"setWrap"),bh=o(function(){return X7},"autoWrap"),B3t=o(function(){ml=[],uc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pl="",Ja="global",xh=[""],wy=[],xh=[""],q7="",X7=!1,j4=4,K4=2},"clear"),F3t={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},z3t={FILLED:0,OPEN:1},$3t={LEFTOF:0,RIGHTOF:1,OVER:2},G3t=o(function(e){q7=Zr(e,pt())},"setTitle"),Ty={addPersonOrSystem:y3t,addPersonOrSystemBoundary:b3t,addContainer:v3t,addContainerBoundary:w3t,addComponent:x3t,addDeploymentNode:T3t,popBoundaryParseStack:k3t,addRel:g3t,updateElStyle:E3t,updateRelStyle:C3t,updateLayoutConfig:S3t,autoWrap:bh,setWrap:P3t,getC4ShapeArray:RV,getC4Shape:R3t,getC4ShapeKeys:N3t,getBoundaries:NV,getBoundarys:M3t,getCurrentBoundaryParse:L3t,getParentBoundaryParse:D3t,getRels:I3t,getTitle:O3t,getC4Type:p3t,getC4ShapeInRow:A3t,getC4BoundaryInRow:_3t,setAccTitle:Mr,getAccTitle:Br,getAccDescription:zr,setAccDescription:Fr,getConfig:o(()=>pt().c4,"getConfig"),clear:B3t,LINETYPE:F3t,ARROWTYPE:z3t,PLACEMENT:$3t,setTitle:G3t,setC4Type:m3t}});function ad(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}var K7=R(()=>{"use strict";o(ad,"ascending")});function Q7(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}var MV=R(()=>{"use strict";o(Q7,"descending")});function sd(e){let t,r,n;e.length!==2?(t=ad,r=o((l,u)=>ad(e(l),u),"compare2"),n=o((l,u)=>e(l)-u,"delta")):(t=e===ad||e===Q7?e:V3t,r=e,n=e);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function V3t(){return 0}var Z7=R(()=>{"use strict";K7();MV();o(sd,"bisector");o(V3t,"zero")});function J7(e){return e===null?NaN:+e}var IV=R(()=>{"use strict";o(J7,"number")});var OV,PV,U3t,H3t,tA,BV=R(()=>{"use strict";K7();Z7();IV();OV=sd(ad),PV=OV.right,U3t=OV.left,H3t=sd(J7).center,tA=PV});function FV({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):r}function W3t({_intern:e,_key:t},r){let n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function Y3t({_intern:e,_key:t},r){let n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function q3t(e){return e!==null&&typeof e=="object"?e.valueOf():e}var Lp,zV=R(()=>{"use strict";Lp=class extends Map{static{o(this,"InternMap")}constructor(t,r=q3t){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(let[n,i]of t)this.set(n,i)}get(t){return super.get(FV(this,t))}has(t){return super.has(FV(this,t))}set(t,r){return super.set(W3t(this,t),r)}delete(t){return super.delete(Y3t(this,t))}};o(FV,"intern_get");o(W3t,"intern_set");o(Y3t,"intern_delete");o(q3t,"keyof")});function Q4(e,t,r){let n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=X3t?10:a>=j3t?5:a>=K3t?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(e*h),u=Math.round(t*h),l/ht&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(e/h),u=Math.round(t/h),l*ht&&--u),u0))return[];if(e===t)return[e];let n=t=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";X3t=Math.sqrt(50),j3t=Math.sqrt(10),K3t=Math.sqrt(2);o(Q4,"tickSpec");o(Z4,"ticks");o(ky,"tickIncrement");o(Dp,"tickStep")});function J4(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r=i)&&(r=i)}return r}var GV=R(()=>{"use strict";o(J4,"max")});function t3(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var VV=R(()=>{"use strict";o(t3,"min")});function e3(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n{"use strict";o(e3,"range")});var wh=R(()=>{"use strict";BV();Z7();GV();VV();UV();$V();zV()});function eA(e){return e}var HV=R(()=>{"use strict";o(eA,"default")});function Q3t(e){return"translate("+e+",0)"}function Z3t(e){return"translate(0,"+e+")"}function J3t(e){return t=>+e(t)}function t5t(e,t){return t=Math.max(0,e.bandwidth()-t*2)/2,e.round()&&(t=Math.round(t)),r=>+e(r)+t}function e5t(){return!this.__axis}function YV(e,t){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=e===n3||e===r3?-1:1,f=e===r3||e===rA?"x":"y",d=e===n3||e===nA?Q3t:Z3t;function p(m){var g=n??(t.ticks?t.ticks.apply(t,r):t.domain()),y=i??(t.tickFormat?t.tickFormat.apply(t,r):eA),v=Math.max(a,0)+l,x=t.range(),b=+x[0]+u,w=+x[x.length-1]+u,S=(t.bandwidth?t5t:J3t)(t.copy(),u),T=m.selection?m.selection():m,E=T.selectAll(".domain").data([null]),_=T.selectAll(".tick").data(g,t).order(),A=_.exit(),L=_.enter().append("g").attr("class","tick"),M=_.select("line"),N=_.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_=_.merge(L),M=M.merge(L.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),N=N.merge(L.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",e===n3?"0em":e===nA?"0.71em":"0.32em")),m!==T&&(E=E.transition(m),_=_.transition(m),M=M.transition(m),N=N.transition(m),A=A.transition(m).attr("opacity",WV).attr("transform",function(k){return isFinite(k=S(k))?d(k+u):this.getAttribute("transform")}),L.attr("opacity",WV).attr("transform",function(k){var I=this.parentNode.__axis;return d((I&&isFinite(I=I(k))?I:S(k))+u)})),A.remove(),E.attr("d",e===r3||e===rA?s?"M"+h*s+","+b+"H"+u+"V"+w+"H"+h*s:"M"+u+","+b+"V"+w:s?"M"+b+","+h*s+"V"+u+"H"+w+"V"+h*s:"M"+b+","+u+"H"+w),_.attr("opacity",1).attr("transform",function(k){return d(S(k)+u)}),M.attr(f+"2",h*a),N.attr(f,h*v).text(y),T.filter(e5t).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===rA?"start":e===r3?"end":"middle"),T.each(function(){this.__axis=S})}return o(p,"axis"),p.scale=function(m){return arguments.length?(t=m,p):t},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function iA(e){return YV(n3,e)}function aA(e){return YV(nA,e)}var n3,rA,nA,r3,WV,qV=R(()=>{"use strict";HV();n3=1,rA=2,nA=3,r3=4,WV=1e-6;o(Q3t,"translateX");o(Z3t,"translateY");o(J3t,"number");o(t5t,"center");o(e5t,"entering");o(YV,"axis");o(iA,"axisTop");o(aA,"axisBottom")});var XV=R(()=>{"use strict";qV()});function KV(){for(var e=0,t=arguments.length,r={},n;e=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function i5t(e,t){for(var r=0,n=e.length,i;r{"use strict";r5t={value:o(()=>{},"value")};o(KV,"dispatch");o(i3,"Dispatch");o(n5t,"parseTypenames");i3.prototype=KV.prototype={constructor:i3,on:o(function(e,t){var r=this._,n=n5t(e+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";QV()});var a3,lA,cA=R(()=>{"use strict";a3="http://www.w3.org/1999/xhtml",lA={svg:"http://www.w3.org/2000/svg",xhtml:a3,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function hc(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),lA.hasOwnProperty(t)?{space:lA[t],local:e}:e}var s3=R(()=>{"use strict";cA();o(hc,"default")});function a5t(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===a3&&t.documentElement.namespaceURI===a3?t.createElement(e):t.createElementNS(r,e)}}function s5t(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ey(e){var t=hc(e);return(t.local?s5t:a5t)(t)}var uA=R(()=>{"use strict";s3();cA();o(a5t,"creatorInherit");o(s5t,"creatorFixed");o(Ey,"default")});function o5t(){}function Th(e){return e==null?o5t:function(){return this.querySelector(e)}}var o3=R(()=>{"use strict";o(o5t,"none");o(Th,"default")});function hA(e){typeof e!="function"&&(e=Th(e));for(var t=this._groups,r=t.length,n=new Array(r),i=0;i{"use strict";gl();o3();o(hA,"default")});function fA(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}var JV=R(()=>{"use strict";o(fA,"array")});function l5t(){return[]}function Rp(e){return e==null?l5t:function(){return this.querySelectorAll(e)}}var dA=R(()=>{"use strict";o(l5t,"empty");o(Rp,"default")});function c5t(e){return function(){return fA(e.apply(this,arguments))}}function pA(e){typeof e=="function"?e=c5t(e):e=Rp(e);for(var t=this._groups,r=t.length,n=[],i=[],a=0;a{"use strict";gl();JV();dA();o(c5t,"arrayAll");o(pA,"default")});function Np(e){return function(){return this.matches(e)}}function l3(e){return function(t){return t.matches(e)}}var Cy=R(()=>{"use strict";o(Np,"default");o(l3,"childMatcher")});function h5t(e){return function(){return u5t.call(this.children,e)}}function f5t(){return this.firstElementChild}function mA(e){return this.select(e==null?f5t:h5t(typeof e=="function"?e:l3(e)))}var u5t,eU=R(()=>{"use strict";Cy();u5t=Array.prototype.find;o(h5t,"childFind");o(f5t,"childFirst");o(mA,"default")});function p5t(){return Array.from(this.children)}function m5t(e){return function(){return d5t.call(this.children,e)}}function gA(e){return this.selectAll(e==null?p5t:m5t(typeof e=="function"?e:l3(e)))}var d5t,rU=R(()=>{"use strict";Cy();d5t=Array.prototype.filter;o(p5t,"children");o(m5t,"childrenFilter");o(gA,"default")});function yA(e){typeof e!="function"&&(e=Np(e));for(var t=this._groups,r=t.length,n=new Array(r),i=0;i{"use strict";gl();Cy();o(yA,"default")});function Sy(e){return new Array(e.length)}var vA=R(()=>{"use strict";o(Sy,"default")});function xA(){return new ai(this._enter||this._groups.map(Sy),this._parents)}function Ay(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}var bA=R(()=>{"use strict";vA();gl();o(xA,"default");o(Ay,"EnterNode");Ay.prototype={constructor:Ay,appendChild:o(function(e){return this._parent.insertBefore(e,this._next)},"appendChild"),insertBefore:o(function(e,t){return this._parent.insertBefore(e,t)},"insertBefore"),querySelector:o(function(e){return this._parent.querySelector(e)},"querySelector"),querySelectorAll:o(function(e){return this._parent.querySelectorAll(e)},"querySelectorAll")}});function wA(e){return function(){return e}}var iU=R(()=>{"use strict";o(wA,"default")});function g5t(e,t,r,n,i,a){for(var s=0,l,u=t.length,h=a.length;s=w&&(w=b+1);!(T=v[w])&&++w{"use strict";gl();bA();iU();o(g5t,"bindIndex");o(y5t,"bindKey");o(v5t,"datum");o(TA,"default");o(x5t,"arraylike")});function kA(){return new ai(this._exit||this._groups.map(Sy),this._parents)}var sU=R(()=>{"use strict";vA();gl();o(kA,"default")});function EA(e,t,r){var n=this.enter(),i=this,a=this.exit();return typeof e=="function"?(n=e(n),n&&(n=n.selection())):n=n.append(e+""),t!=null&&(i=t(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var oU=R(()=>{"use strict";o(EA,"default")});function CA(e){for(var t=e.selection?e.selection():e,r=this._groups,n=t._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";gl();o(CA,"default")});function SA(){for(var e=this._groups,t=-1,r=e.length;++t=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var cU=R(()=>{"use strict";o(SA,"default")});function AA(e){e||(e=b5t);function t(d,p){return d&&p?e(d.__data__,p.__data__):!d-!p}o(t,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;at?1:e>=t?0:NaN}var uU=R(()=>{"use strict";gl();o(AA,"default");o(b5t,"ascending")});function _A(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}var hU=R(()=>{"use strict";o(_A,"default")});function LA(){return Array.from(this)}var fU=R(()=>{"use strict";o(LA,"default")});function DA(){for(var e=this._groups,t=0,r=e.length;t{"use strict";o(DA,"default")});function RA(){let e=0;for(let t of this)++e;return e}var pU=R(()=>{"use strict";o(RA,"default")});function NA(){return!this.node()}var mU=R(()=>{"use strict";o(NA,"default")});function MA(e){for(var t=this._groups,r=0,n=t.length;r{"use strict";o(MA,"default")});function w5t(e){return function(){this.removeAttribute(e)}}function T5t(e){return function(){this.removeAttributeNS(e.space,e.local)}}function k5t(e,t){return function(){this.setAttribute(e,t)}}function E5t(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function C5t(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function S5t(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function IA(e,t){var r=hc(e);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((t==null?r.local?T5t:w5t:typeof t=="function"?r.local?S5t:C5t:r.local?E5t:k5t)(r,t))}var yU=R(()=>{"use strict";s3();o(w5t,"attrRemove");o(T5t,"attrRemoveNS");o(k5t,"attrConstant");o(E5t,"attrConstantNS");o(C5t,"attrFunction");o(S5t,"attrFunctionNS");o(IA,"default")});function _y(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}var OA=R(()=>{"use strict";o(_y,"default")});function A5t(e){return function(){this.style.removeProperty(e)}}function _5t(e,t,r){return function(){this.style.setProperty(e,t,r)}}function L5t(e,t,r){return function(){var n=t.apply(this,arguments);n==null?this.style.removeProperty(e):this.style.setProperty(e,n,r)}}function PA(e,t,r){return arguments.length>1?this.each((t==null?A5t:typeof t=="function"?L5t:_5t)(e,t,r??"")):kh(this.node(),e)}function kh(e,t){return e.style.getPropertyValue(t)||_y(e).getComputedStyle(e,null).getPropertyValue(t)}var BA=R(()=>{"use strict";OA();o(A5t,"styleRemove");o(_5t,"styleConstant");o(L5t,"styleFunction");o(PA,"default");o(kh,"styleValue")});function D5t(e){return function(){delete this[e]}}function R5t(e,t){return function(){this[e]=t}}function N5t(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function FA(e,t){return arguments.length>1?this.each((t==null?D5t:typeof t=="function"?N5t:R5t)(e,t)):this.node()[e]}var vU=R(()=>{"use strict";o(D5t,"propertyRemove");o(R5t,"propertyConstant");o(N5t,"propertyFunction");o(FA,"default")});function xU(e){return e.trim().split(/^|\s+/)}function zA(e){return e.classList||new bU(e)}function bU(e){this._node=e,this._names=xU(e.getAttribute("class")||"")}function wU(e,t){for(var r=zA(e),n=-1,i=t.length;++n{"use strict";o(xU,"classArray");o(zA,"classList");o(bU,"ClassList");bU.prototype={add:o(function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(e){return this._names.indexOf(e)>=0},"contains")};o(wU,"classedAdd");o(TU,"classedRemove");o(M5t,"classedTrue");o(I5t,"classedFalse");o(O5t,"classedFunction");o($A,"default")});function P5t(){this.textContent=""}function B5t(e){return function(){this.textContent=e}}function F5t(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function GA(e){return arguments.length?this.each(e==null?P5t:(typeof e=="function"?F5t:B5t)(e)):this.node().textContent}var EU=R(()=>{"use strict";o(P5t,"textRemove");o(B5t,"textConstant");o(F5t,"textFunction");o(GA,"default")});function z5t(){this.innerHTML=""}function $5t(e){return function(){this.innerHTML=e}}function G5t(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function VA(e){return arguments.length?this.each(e==null?z5t:(typeof e=="function"?G5t:$5t)(e)):this.node().innerHTML}var CU=R(()=>{"use strict";o(z5t,"htmlRemove");o($5t,"htmlConstant");o(G5t,"htmlFunction");o(VA,"default")});function V5t(){this.nextSibling&&this.parentNode.appendChild(this)}function UA(){return this.each(V5t)}var SU=R(()=>{"use strict";o(V5t,"raise");o(UA,"default")});function U5t(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function HA(){return this.each(U5t)}var AU=R(()=>{"use strict";o(U5t,"lower");o(HA,"default")});function WA(e){var t=typeof e=="function"?e:Ey(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}var _U=R(()=>{"use strict";uA();o(WA,"default")});function H5t(){return null}function YA(e,t){var r=typeof e=="function"?e:Ey(e),n=t==null?H5t:typeof t=="function"?t:Th(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var LU=R(()=>{"use strict";uA();o3();o(H5t,"constantNull");o(YA,"default")});function W5t(){var e=this.parentNode;e&&e.removeChild(this)}function qA(){return this.each(W5t)}var DU=R(()=>{"use strict";o(W5t,"remove");o(qA,"default")});function Y5t(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function q5t(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function XA(e){return this.select(e?q5t:Y5t)}var RU=R(()=>{"use strict";o(Y5t,"selection_cloneShallow");o(q5t,"selection_cloneDeep");o(XA,"default")});function jA(e){return arguments.length?this.property("__data__",e):this.node().__data__}var NU=R(()=>{"use strict";o(jA,"default")});function X5t(e){return function(t){e.call(this,t,this.__data__)}}function j5t(e){return e.trim().split(/^|\s+/).map(function(t){var r="",n=t.indexOf(".");return n>=0&&(r=t.slice(n+1),t=t.slice(0,n)),{type:t,name:r}})}function K5t(e){return function(){var t=this.__on;if(t){for(var r=0,n=-1,i=t.length,a;r{"use strict";o(X5t,"contextListener");o(j5t,"parseTypenames");o(K5t,"onRemove");o(Q5t,"onAdd");o(KA,"default")});function IU(e,t,r){var n=_y(e),i=n.CustomEvent;typeof i=="function"?i=new i(t,r):(i=n.document.createEvent("Event"),r?(i.initEvent(t,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Z5t(e,t){return function(){return IU(this,e,t)}}function J5t(e,t){return function(){return IU(this,e,t.apply(this,arguments))}}function QA(e,t){return this.each((typeof t=="function"?J5t:Z5t)(e,t))}var OU=R(()=>{"use strict";OA();o(IU,"dispatchEvent");o(Z5t,"dispatchConstant");o(J5t,"dispatchFunction");o(QA,"default")});function*ZA(){for(var e=this._groups,t=0,r=e.length;t{"use strict";o(ZA,"default")});function ai(e,t){this._groups=e,this._parents=t}function BU(){return new ai([[document.documentElement]],JA)}function twt(){return this}var JA,mu,gl=R(()=>{"use strict";ZV();tU();eU();rU();nU();aU();bA();sU();oU();lU();cU();uU();hU();fU();dU();pU();mU();gU();yU();BA();vU();kU();EU();CU();SU();AU();_U();LU();DU();RU();NU();MU();OU();PU();JA=[null];o(ai,"Selection");o(BU,"selection");o(twt,"selection_selection");ai.prototype=BU.prototype={constructor:ai,select:hA,selectAll:pA,selectChild:mA,selectChildren:gA,filter:yA,data:TA,enter:xA,exit:kA,join:EA,merge:CA,selection:twt,order:SA,sort:AA,call:_A,nodes:LA,node:DA,size:RA,empty:NA,each:MA,attr:IA,style:PA,property:FA,classed:$A,text:GA,html:VA,raise:UA,lower:HA,append:WA,insert:YA,remove:qA,clone:XA,datum:jA,on:KA,dispatch:QA,[Symbol.iterator]:ZA};mu=BU});function Gt(e){return typeof e=="string"?new ai([[document.querySelector(e)]],[document.documentElement]):new ai([[e]],JA)}var FU=R(()=>{"use strict";gl();o(Gt,"default")});var yl=R(()=>{"use strict";Cy();s3();FU();gl();o3();dA();BA()});var zU=R(()=>{"use strict"});function Eh(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Mp(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}var t8=R(()=>{"use strict";o(Eh,"default");o(Mp,"extend")});function Ch(){}function GU(){return this.rgb().formatHex()}function lwt(){return this.rgb().formatHex8()}function cwt(){return XU(this).formatHsl()}function VU(){return this.rgb().formatRgb()}function xl(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=ewt.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?UU(t):r===3?new fa(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?c3(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?c3(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=rwt.exec(e))?new fa(t[1],t[2],t[3],1):(t=nwt.exec(e))?new fa(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=iwt.exec(e))?c3(t[1],t[2],t[3],t[4]):(t=awt.exec(e))?c3(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=swt.exec(e))?YU(t[1],t[2]/100,t[3]/100,1):(t=owt.exec(e))?YU(t[1],t[2]/100,t[3]/100,t[4]):$U.hasOwnProperty(e)?UU($U[e]):e==="transparent"?new fa(NaN,NaN,NaN,0):null}function UU(e){return new fa(e>>16&255,e>>8&255,e&255,1)}function c3(e,t,r,n){return n<=0&&(e=t=r=NaN),new fa(e,t,r,n)}function r8(e){return e instanceof Ch||(e=xl(e)),e?(e=e.rgb(),new fa(e.r,e.g,e.b,e.opacity)):new fa}function Op(e,t,r,n){return arguments.length===1?r8(e):new fa(e,t,r,n??1)}function fa(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function HU(){return`#${od(this.r)}${od(this.g)}${od(this.b)}`}function uwt(){return`#${od(this.r)}${od(this.g)}${od(this.b)}${od((isNaN(this.opacity)?1:this.opacity)*255)}`}function WU(){let e=f3(this.opacity);return`${e===1?"rgb(":"rgba("}${ld(this.r)}, ${ld(this.g)}, ${ld(this.b)}${e===1?")":`, ${e})`}`}function f3(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ld(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function od(e){return e=ld(e),(e<16?"0":"")+e.toString(16)}function YU(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new vl(e,t,r,n)}function XU(e){if(e instanceof vl)return new vl(e.h,e.s,e.l,e.opacity);if(e instanceof Ch||(e=xl(e)),!e)return new vl;if(e instanceof vl)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(t===a?s=(r-n)/l+(r0&&u<1?0:s,new vl(s,l,u,e.opacity)}function jU(e,t,r,n){return arguments.length===1?XU(e):new vl(e,t,r,n??1)}function vl(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function qU(e){return e=(e||0)%360,e<0?e+360:e}function u3(e){return Math.max(0,Math.min(1,e||0))}function e8(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}var Ly,h3,Ip,Dy,fc,ewt,rwt,nwt,iwt,awt,swt,owt,$U,n8=R(()=>{"use strict";t8();o(Ch,"Color");Ly=.7,h3=1/Ly,Ip="\\s*([+-]?\\d+)\\s*",Dy="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",fc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ewt=/^#([0-9a-f]{3,8})$/,rwt=new RegExp(`^rgb\\(${Ip},${Ip},${Ip}\\)$`),nwt=new RegExp(`^rgb\\(${fc},${fc},${fc}\\)$`),iwt=new RegExp(`^rgba\\(${Ip},${Ip},${Ip},${Dy}\\)$`),awt=new RegExp(`^rgba\\(${fc},${fc},${fc},${Dy}\\)$`),swt=new RegExp(`^hsl\\(${Dy},${fc},${fc}\\)$`),owt=new RegExp(`^hsla\\(${Dy},${fc},${fc},${Dy}\\)$`),$U={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Eh(Ch,xl,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:GU,formatHex:GU,formatHex8:lwt,formatHsl:cwt,formatRgb:VU,toString:VU});o(GU,"color_formatHex");o(lwt,"color_formatHex8");o(cwt,"color_formatHsl");o(VU,"color_formatRgb");o(xl,"color");o(UU,"rgbn");o(c3,"rgba");o(r8,"rgbConvert");o(Op,"rgb");o(fa,"Rgb");Eh(fa,Op,Mp(Ch,{brighter(e){return e=e==null?h3:Math.pow(h3,e),new fa(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ly:Math.pow(Ly,e),new fa(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new fa(ld(this.r),ld(this.g),ld(this.b),f3(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:HU,formatHex:HU,formatHex8:uwt,formatRgb:WU,toString:WU}));o(HU,"rgb_formatHex");o(uwt,"rgb_formatHex8");o(WU,"rgb_formatRgb");o(f3,"clampa");o(ld,"clampi");o(od,"hex");o(YU,"hsla");o(XU,"hslConvert");o(jU,"hsl");o(vl,"Hsl");Eh(vl,jU,Mp(Ch,{brighter(e){return e=e==null?h3:Math.pow(h3,e),new vl(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ly:Math.pow(Ly,e),new vl(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new fa(e8(e>=240?e-240:e+120,i,n),e8(e,i,n),e8(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new vl(qU(this.h),u3(this.s),u3(this.l),f3(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=f3(this.opacity);return`${e===1?"hsl(":"hsla("}${qU(this.h)}, ${u3(this.s)*100}%, ${u3(this.l)*100}%${e===1?")":`, ${e})`}`}}));o(qU,"clamph");o(u3,"clampt");o(e8,"hsl2rgb")});var KU,QU,ZU=R(()=>{"use strict";KU=Math.PI/180,QU=180/Math.PI});function iH(e){if(e instanceof dc)return new dc(e.l,e.a,e.b,e.opacity);if(e instanceof gu)return aH(e);e instanceof fa||(e=r8(e));var t=o8(e.r),r=o8(e.g),n=o8(e.b),i=i8((.2225045*t+.7168786*r+.0606169*n)/tH),a,s;return t===r&&r===n?a=s=i:(a=i8((.4360747*t+.3850649*r+.1430804*n)/JU),s=i8((.0139322*t+.0971045*r+.7141733*n)/eH)),new dc(116*i-16,500*(a-i),200*(i-s),e.opacity)}function l8(e,t,r,n){return arguments.length===1?iH(e):new dc(e,t,r,n??1)}function dc(e,t,r,n){this.l=+e,this.a=+t,this.b=+r,this.opacity=+n}function i8(e){return e>hwt?Math.pow(e,1/3):e/nH+rH}function a8(e){return e>Pp?e*e*e:nH*(e-rH)}function s8(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function o8(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function fwt(e){if(e instanceof gu)return new gu(e.h,e.c,e.l,e.opacity);if(e instanceof dc||(e=iH(e)),e.a===0&&e.b===0)return new gu(NaN,0{"use strict";t8();n8();ZU();d3=18,JU=.96422,tH=1,eH=.82521,rH=4/29,Pp=6/29,nH=3*Pp*Pp,hwt=Pp*Pp*Pp;o(iH,"labConvert");o(l8,"lab");o(dc,"Lab");Eh(dc,l8,Mp(Ch,{brighter(e){return new dc(this.l+d3*(e??1),this.a,this.b,this.opacity)},darker(e){return new dc(this.l-d3*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,r=isNaN(this.b)?e:e-this.b/200;return t=JU*a8(t),e=tH*a8(e),r=eH*a8(r),new fa(s8(3.1338561*t-1.6168667*e-.4906146*r),s8(-.9787684*t+1.9161415*e+.033454*r),s8(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}}));o(i8,"xyz2lab");o(a8,"lab2xyz");o(s8,"lrgb2rgb");o(o8,"rgb2lrgb");o(fwt,"hclConvert");o(Ry,"hcl");o(gu,"Hcl");o(aH,"hcl2lab");Eh(gu,Ry,Mp(Ch,{brighter(e){return new gu(this.h,this.c,this.l+d3*(e??1),this.opacity)},darker(e){return new gu(this.h,this.c,this.l-d3*(e??1),this.opacity)},rgb(){return aH(this).rgb()}}))});var Bp=R(()=>{"use strict";n8();sH()});function c8(e,t,r,n,i){var a=e*e,s=a*e;return((1-3*e+3*a-s)*t+(4-6*a+3*s)*r+(1+3*e+3*a-3*s)*n+s*i)/6}function u8(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),i=e[n],a=e[n+1],s=n>0?e[n-1]:2*i-a,l=n{"use strict";o(c8,"basis");o(u8,"default")});function f8(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),i=e[(n+t-1)%t],a=e[n%t],s=e[(n+1)%t],l=e[(n+2)%t];return c8((r-n/t)*t,i,a,s,l)}}var oH=R(()=>{"use strict";h8();o(f8,"default")});var Fp,d8=R(()=>{"use strict";Fp=o(e=>()=>e,"default")});function lH(e,t){return function(r){return e+r*t}}function dwt(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function cH(e,t){var r=t-e;return r?lH(e,r>180||r<-180?r-360*Math.round(r/360):r):Fp(isNaN(e)?t:e)}function uH(e){return(e=+e)==1?yu:function(t,r){return r-t?dwt(t,r,e):Fp(isNaN(t)?r:t)}}function yu(e,t){var r=t-e;return r?lH(e,r):Fp(isNaN(e)?t:e)}var p8=R(()=>{"use strict";d8();o(lH,"linear");o(dwt,"exponential");o(cH,"hue");o(uH,"gamma");o(yu,"nogamma")});function hH(e){return function(t){var r=t.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";Bp();h8();oH();p8();cd=o(function e(t){var r=uH(t);function n(i,a){var s=r((i=Op(i)).r,(a=Op(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=yu(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=e,n},"rgbGamma")(1);o(hH,"rgbSpline");pwt=hH(u8),mwt=hH(f8)});function g8(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;i{"use strict";o(g8,"default");o(fH,"isNumberArray")});function pH(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";p3();o(pH,"genericArray")});function y8(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}var gH=R(()=>{"use strict";o(y8,"default")});function Zi(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var Ny=R(()=>{"use strict";o(Zi,"default")});function v8(e,t){var r={},n={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?r[i]=Sh(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var yH=R(()=>{"use strict";p3();o(v8,"default")});function gwt(e){return function(){return e}}function ywt(e){return function(t){return e(t)+""}}function zp(e,t){var r=b8.lastIndex=x8.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(e=e+"",t=t+"";(n=b8.exec(e))&&(i=x8.exec(t));)(a=i.index)>r&&(a=t.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Zi(n,i)})),r=x8.lastIndex;return r{"use strict";Ny();b8=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,x8=new RegExp(b8.source,"g");o(gwt,"zero");o(ywt,"one");o(zp,"default")});function Sh(e,t){var r=typeof t,n;return t==null||r==="boolean"?Fp(t):(r==="number"?Zi:r==="string"?(n=xl(t))?(t=n,cd):zp:t instanceof xl?cd:t instanceof Date?y8:fH(t)?g8:Array.isArray(t)?pH:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?v8:Zi)(e,t)}var p3=R(()=>{"use strict";Bp();m8();mH();gH();Ny();yH();w8();d8();dH();o(Sh,"default")});function m3(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var vH=R(()=>{"use strict";o(m3,"default")});function y3(e,t,r,n,i,a){var s,l,u;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(u=e*r+t*n)&&(r-=e*u,n-=t*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),e*n{"use strict";xH=180/Math.PI,g3={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(y3,"default")});function wH(e){let t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?g3:y3(t.a,t.b,t.c,t.d,t.e,t.f)}function TH(e){return e==null?g3:(v3||(v3=document.createElementNS("http://www.w3.org/2000/svg","g")),v3.setAttribute("transform",e),(e=v3.transform.baseVal.consolidate())?(e=e.matrix,y3(e.a,e.b,e.c,e.d,e.e,e.f)):g3)}var v3,kH=R(()=>{"use strict";bH();o(wH,"parseCss");o(TH,"parseSvg")});function EH(e,t,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,t,null,r);g.push({i:y-4,x:Zi(h,d)},{i:y-2,x:Zi(f,p)})}else(d||p)&&m.push("translate("+d+t+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Zi(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Zi(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Zi(h,d)},{i:y-2,x:Zi(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=e(h),f=e(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";Ny();kH();o(EH,"interpolateTransform");T8=EH(wH,"px, ","px)","deg)"),k8=EH(TH,", ",")",")")});function SH(e){return function(t,r){var n=e((t=Ry(t)).h,(r=Ry(r)).h),i=yu(t.c,r.c),a=yu(t.l,r.l),s=yu(t.opacity,r.opacity);return function(l){return t.h=n(l),t.c=i(l),t.l=a(l),t.opacity=s(l),t+""}}}var E8,vwt,AH=R(()=>{"use strict";Bp();p8();o(SH,"hcl");E8=SH(cH),vwt=SH(yu)});var $p=R(()=>{"use strict";p3();Ny();vH();w8();CH();m8();AH()});function Fy(){return ud||(DH(xwt),ud=Py.now()+w3)}function xwt(){ud=0}function By(){this._call=this._time=this._next=null}function T3(e,t,r){var n=new By;return n.restart(e,t,r),n}function RH(){Fy(),++Gp;for(var e=x3,t;e;)(t=ud-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gp}function _H(){ud=(b3=Py.now())+w3,Gp=Iy=0;try{RH()}finally{Gp=0,wwt(),ud=0}}function bwt(){var e=Py.now(),t=e-b3;t>LH&&(w3-=t,b3=e)}function wwt(){for(var e,t=x3,r,n=1/0;t;)t._call?(n>t._time&&(n=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:x3=r);Oy=e,C8(n)}function C8(e){if(!Gp){Iy&&(Iy=clearTimeout(Iy));var t=e-ud;t>24?(e<1/0&&(Iy=setTimeout(_H,e-Py.now()-w3)),My&&(My=clearInterval(My))):(My||(b3=Py.now(),My=setInterval(bwt,LH)),Gp=1,DH(_H))}}var Gp,Iy,My,LH,x3,Oy,b3,ud,w3,Py,DH,S8=R(()=>{"use strict";Gp=0,Iy=0,My=0,LH=1e3,b3=0,ud=0,w3=0,Py=typeof performance=="object"&&performance.now?performance:Date,DH=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};o(Fy,"now");o(xwt,"clearNow");o(By,"Timer");By.prototype=T3.prototype={constructor:By,restart:o(function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?Fy():+r)+(t==null?0:+t),!this._next&&Oy!==this&&(Oy?Oy._next=this:x3=this,Oy=this),this._call=e,this._time=r,C8()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,C8())},"stop")};o(T3,"timer");o(RH,"timerFlush");o(_H,"wake");o(bwt,"poke");o(wwt,"nap");o(C8,"sleep")});function zy(e,t,r){var n=new By;return t=t==null?0:+t,n.restart(i=>{n.stop(),e(i+t)},t,r),n}var NH=R(()=>{"use strict";S8();o(zy,"default")});var k3=R(()=>{"use strict";S8();NH()});function vu(e,t,r,n,i,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;Ewt(e,r,{name:t,index:n,group:i,on:Twt,tween:kwt,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:OH})}function Gy(e,t){var r=Bi(e,t);if(r.state>OH)throw new Error("too late; already scheduled");return r}function da(e,t){var r=Bi(e,t);if(r.state>E3)throw new Error("too late; already running");return r}function Bi(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function Ewt(e,t,r){var n=e.__transition,i;n[t]=r,r.timer=T3(a,0,r.time);function a(h){r.state=MH,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==MH)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===E3)return zy(s);m.state===IH?(m.state=$y,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete n[f]):+f{"use strict";oA();k3();Twt=sA("start","end","cancel","interrupt"),kwt=[],OH=0,MH=1,C3=2,E3=3,IH=4,S3=5,$y=6;o(vu,"default");o(Gy,"init");o(da,"set");o(Bi,"get");o(Ewt,"create")});function Vy(e,t){var r=e.__transition,n,i,a=!0,s;if(r){t=t==null?null:t+"";for(s in r){if((n=r[s]).name!==t){a=!1;continue}i=n.state>C3&&n.state{"use strict";ws();o(Vy,"default")});function A8(e){return this.each(function(){Vy(this,e)})}var BH=R(()=>{"use strict";PH();o(A8,"default")});function Cwt(e,t){var r,n;return function(){var i=da(this,e),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";ws();o(Cwt,"tweenRemove");o(Swt,"tweenFunction");o(_8,"default");o(Vp,"tweenValue")});function Hy(e,t){var r;return(typeof t=="number"?Zi:t instanceof xl?cd:(r=xl(t))?(t=r,cd):zp)(e,t)}var L8=R(()=>{"use strict";Bp();$p();o(Hy,"default")});function Awt(e){return function(){this.removeAttribute(e)}}function _wt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Lwt(e,t,r){var n,i=r+"",a;return function(){var s=this.getAttribute(e);return s===i?null:s===n?a:a=t(n=s,r)}}function Dwt(e,t,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(e.space,e.local);return s===i?null:s===n?a:a=t(n=s,r)}}function Rwt(e,t,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(e):(s=this.getAttribute(e),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=t(n=s,l)))}}function Nwt(e,t,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=t(n=s,l)))}}function D8(e,t){var r=hc(e),n=r==="transform"?k8:Hy;return this.attrTween(e,typeof t=="function"?(r.local?Nwt:Rwt)(r,n,Vp(this,"attr."+e,t)):t==null?(r.local?_wt:Awt)(r):(r.local?Dwt:Lwt)(r,n,t))}var FH=R(()=>{"use strict";$p();yl();Uy();L8();o(Awt,"attrRemove");o(_wt,"attrRemoveNS");o(Lwt,"attrConstant");o(Dwt,"attrConstantNS");o(Rwt,"attrFunction");o(Nwt,"attrFunctionNS");o(D8,"default")});function Mwt(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function Iwt(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function Owt(e,t){var r,n;function i(){var a=t.apply(this,arguments);return a!==n&&(r=(n=a)&&Iwt(e,a)),r}return o(i,"tween"),i._value=t,i}function Pwt(e,t){var r,n;function i(){var a=t.apply(this,arguments);return a!==n&&(r=(n=a)&&Mwt(e,a)),r}return o(i,"tween"),i._value=t,i}function R8(e,t){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;var n=hc(e);return this.tween(r,(n.local?Owt:Pwt)(n,t))}var zH=R(()=>{"use strict";yl();o(Mwt,"attrInterpolate");o(Iwt,"attrInterpolateNS");o(Owt,"attrTweenNS");o(Pwt,"attrTween");o(R8,"default")});function Bwt(e,t){return function(){Gy(this,e).delay=+t.apply(this,arguments)}}function Fwt(e,t){return t=+t,function(){Gy(this,e).delay=t}}function N8(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Bwt:Fwt)(t,e)):Bi(this.node(),t).delay}var $H=R(()=>{"use strict";ws();o(Bwt,"delayFunction");o(Fwt,"delayConstant");o(N8,"default")});function zwt(e,t){return function(){da(this,e).duration=+t.apply(this,arguments)}}function $wt(e,t){return t=+t,function(){da(this,e).duration=t}}function M8(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?zwt:$wt)(t,e)):Bi(this.node(),t).duration}var GH=R(()=>{"use strict";ws();o(zwt,"durationFunction");o($wt,"durationConstant");o(M8,"default")});function Gwt(e,t){if(typeof t!="function")throw new Error;return function(){da(this,e).ease=t}}function I8(e){var t=this._id;return arguments.length?this.each(Gwt(t,e)):Bi(this.node(),t).ease}var VH=R(()=>{"use strict";ws();o(Gwt,"easeConstant");o(I8,"default")});function Vwt(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;da(this,e).ease=r}}function O8(e){if(typeof e!="function")throw new Error;return this.each(Vwt(this._id,e))}var UH=R(()=>{"use strict";ws();o(Vwt,"easeVarying");o(O8,"default")});function P8(e){typeof e!="function"&&(e=Np(e));for(var t=this._groups,r=t.length,n=new Array(r),i=0;i{"use strict";yl();hd();o(P8,"default")});function B8(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,r=e._groups,n=t.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";hd();o(B8,"default")});function Uwt(e){return(e+"").trim().split(/^|\s+/).every(function(t){var r=t.indexOf(".");return r>=0&&(t=t.slice(0,r)),!t||t==="start"})}function Hwt(e,t,r){var n,i,a=Uwt(t)?Gy:da;return function(){var s=a(this,e),l=s.on;l!==n&&(i=(n=l).copy()).on(t,r),s.on=i}}function F8(e,t){var r=this._id;return arguments.length<2?Bi(this.node(),r).on.on(e):this.each(Hwt(r,e,t))}var YH=R(()=>{"use strict";ws();o(Uwt,"start");o(Hwt,"onFunction");o(F8,"default")});function Wwt(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function z8(){return this.on("end.remove",Wwt(this._id))}var qH=R(()=>{"use strict";o(Wwt,"removeFunction");o(z8,"default")});function $8(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Th(e));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";yl();hd();ws();o($8,"default")});function G8(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Rp(e));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";yl();hd();ws();o(G8,"default")});function V8(){return new Ywt(this._groups,this._parents)}var Ywt,KH=R(()=>{"use strict";yl();Ywt=mu.prototype.constructor;o(V8,"default")});function qwt(e,t){var r,n,i;return function(){var a=kh(this,e),s=(this.style.removeProperty(e),kh(this,e));return a===s?null:a===r&&s===n?i:i=t(r=a,n=s)}}function QH(e){return function(){this.style.removeProperty(e)}}function Xwt(e,t,r){var n,i=r+"",a;return function(){var s=kh(this,e);return s===i?null:s===n?a:a=t(n=s,r)}}function jwt(e,t,r){var n,i,a;return function(){var s=kh(this,e),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(e),kh(this,e))),s===u?null:s===n&&u===i?a:(i=u,a=t(n=s,l))}}function Kwt(e,t){var r,n,i,a="style."+t,s="end."+a,l;return function(){var u=da(this,e),h=u.on,f=u.value[a]==null?l||(l=QH(t)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function U8(e,t,r){var n=(e+="")=="transform"?T8:Hy;return t==null?this.styleTween(e,qwt(e,n)).on("end.style."+e,QH(e)):typeof t=="function"?this.styleTween(e,jwt(e,n,Vp(this,"style."+e,t))).each(Kwt(this._id,e)):this.styleTween(e,Xwt(e,n,t),r).on("end.style."+e,null)}var ZH=R(()=>{"use strict";$p();yl();ws();Uy();L8();o(qwt,"styleNull");o(QH,"styleRemove");o(Xwt,"styleConstant");o(jwt,"styleFunction");o(Kwt,"styleMaybeRemove");o(U8,"default")});function Qwt(e,t,r){return function(n){this.style.setProperty(e,t.call(this,n),r)}}function Zwt(e,t,r){var n,i;function a(){var s=t.apply(this,arguments);return s!==i&&(n=(i=s)&&Qwt(e,s,r)),n}return o(a,"tween"),a._value=t,a}function H8(e,t,r){var n="style."+(e+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,Zwt(e,t,r??""))}var JH=R(()=>{"use strict";o(Qwt,"styleInterpolate");o(Zwt,"styleTween");o(H8,"default")});function Jwt(e){return function(){this.textContent=e}}function tTt(e){return function(){var t=e(this);this.textContent=t??""}}function W8(e){return this.tween("text",typeof e=="function"?tTt(Vp(this,"text",e)):Jwt(e==null?"":e+""))}var tW=R(()=>{"use strict";Uy();o(Jwt,"textConstant");o(tTt,"textFunction");o(W8,"default")});function eTt(e){return function(t){this.textContent=e.call(this,t)}}function rTt(e){var t,r;function n(){var i=e.apply(this,arguments);return i!==r&&(t=(r=i)&&eTt(i)),t}return o(n,"tween"),n._value=e,n}function Y8(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,rTt(e))}var eW=R(()=>{"use strict";o(eTt,"textInterpolate");o(rTt,"textTween");o(Y8,"default")});function q8(){for(var e=this._name,t=this._id,r=A3(),n=this._groups,i=n.length,a=0;a{"use strict";hd();ws();o(q8,"default")});function X8(){var e,t,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=da(this,n),f=h.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(u)),h.on=t}),i===0&&a()})}var nW=R(()=>{"use strict";ws();o(X8,"default")});function ts(e,t,r,n){this._groups=e,this._parents=t,this._name=r,this._id=n}function iW(e){return mu().transition(e)}function A3(){return++nTt}var nTt,xu,hd=R(()=>{"use strict";yl();FH();zH();$H();GH();VH();UH();HH();WH();YH();qH();XH();jH();KH();ZH();JH();tW();eW();rW();Uy();nW();nTt=0;o(ts,"Transition");o(iW,"transition");o(A3,"newId");xu=mu.prototype;ts.prototype=iW.prototype={constructor:ts,select:$8,selectAll:G8,selectChild:xu.selectChild,selectChildren:xu.selectChildren,filter:P8,merge:B8,selection:V8,transition:q8,call:xu.call,nodes:xu.nodes,node:xu.node,size:xu.size,empty:xu.empty,each:xu.each,on:F8,attr:D8,attrTween:R8,style:U8,styleTween:H8,text:W8,textTween:Y8,remove:z8,tween:_8,delay:N8,duration:M8,ease:I8,easeVarying:O8,end:X8,[Symbol.iterator]:xu[Symbol.iterator]}});function _3(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var aW=R(()=>{"use strict";o(_3,"cubicInOut")});var j8=R(()=>{"use strict";aW()});function aTt(e,t){for(var r;!(r=e.__transition)||!(r=r[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return r}function K8(e){var t,r;e instanceof ts?(t=e._id,e=e._name):(t=A3(),(r=iTt).time=Fy(),e=e==null?null:e+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";hd();ws();j8();k3();iTt={time:null,delay:0,duration:250,ease:_3};o(aTt,"inherit");o(K8,"default")});var oW=R(()=>{"use strict";yl();BH();sW();mu.prototype.interrupt=A8;mu.prototype.transition=K8});var L3=R(()=>{"use strict";oW()});var lW=R(()=>{"use strict"});var cW=R(()=>{"use strict"});var uW=R(()=>{"use strict"});function hW(e){return[+e[0],+e[1]]}function sTt(e){return[hW(e[0]),hW(e[1])]}function Q8(e){return{type:e}}var bge,wge,Tge,kge,Ege,Cge,fW=R(()=>{"use strict";L3();lW();cW();uW();({abs:bge,max:wge,min:Tge}=Math);o(hW,"number1");o(sTt,"number2");kge={name:"x",handles:["w","e"].map(Q8),input:o(function(e,t){return e==null?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},"input"),output:o(function(e){return e&&[e[0][0],e[1][0]]},"output")},Ege={name:"y",handles:["n","s"].map(Q8),input:o(function(e,t){return e==null?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},"input"),output:o(function(e){return e&&[e[0][1],e[1][1]]},"output")},Cge={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Q8),input:o(function(e){return e==null?null:sTt(e)},"input"),output:o(function(e){return e},"output")};o(Q8,"type")});var dW=R(()=>{"use strict";fW()});function pW(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return pW;let r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";Z8=Math.PI,J8=2*Z8,fd=1e-6,oTt=J8-fd;o(pW,"append");o(lTt,"appendRound");dd=class{static{o(this,"Path")}constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?pW:lTt(t)}moveTo(t,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,r){this._append`L${this._x1=+t},${this._y1=+r}`}quadraticCurveTo(t,r,n,i){this._append`Q${+t},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,r,n,i,a,s){this._append`C${+t},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(t,r,n,i,a){if(t=+t,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-t,h=i-r,f=s-t,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=t},${this._y1=r}`;else if(p>fd)if(!(Math.abs(d*u-h*f)>fd)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),w=a*Math.tan((Z8-Math.acos((y+p-v)/(2*x*b)))/2),S=w/b,T=w/x;Math.abs(S-1)>fd&&this._append`L${t+S*f},${r+S*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=t+T*u},${this._y1=r+T*h}`}}arc(t,r,n,i,a,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=t+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>fd||Math.abs(this._y1-f)>fd)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%J8+J8),p>oTt?this._append`A${n},${n},0,1,${d},${t-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>fd&&this._append`A${n},${n},0,${+(p>=Z8)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(mW,"path");mW.prototype=dd.prototype});var t_=R(()=>{"use strict";gW()});var yW=R(()=>{"use strict"});var vW=R(()=>{"use strict"});var xW=R(()=>{"use strict"});var bW=R(()=>{"use strict"});var wW=R(()=>{"use strict"});var TW=R(()=>{"use strict"});var kW=R(()=>{"use strict"});function e_(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function pd(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}var Wy=R(()=>{"use strict";o(e_,"default");o(pd,"formatDecimalParts")});function bl(e){return e=pd(Math.abs(e)),e?e[1]:NaN}var Yy=R(()=>{"use strict";Wy();o(bl,"default")});function r_(e,t){return function(r,n){for(var i=r.length,a=[],s=0,l=e[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=e[s=(s+1)%e.length];return a.reverse().join(t)}}var EW=R(()=>{"use strict";o(r_,"default")});function n_(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var CW=R(()=>{"use strict";o(n_,"default")});function Ah(e){if(!(t=cTt.exec(e)))throw new Error("invalid format: "+e);var t;return new D3({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function D3(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}var cTt,i_=R(()=>{"use strict";cTt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Ah,"formatSpecifier");Ah.prototype=D3.prototype;o(D3,"FormatSpecifier");D3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function a_(e){t:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var SW=R(()=>{"use strict";o(a_,"default")});function o_(e,t){var r=pd(e,t);if(!r)return e+"";var n=r[0],i=r[1],a=i-(s_=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+pd(e,Math.max(0,t+a-1))[0]}var s_,l_=R(()=>{"use strict";Wy();o(o_,"default")});function R3(e,t){var r=pd(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var AW=R(()=>{"use strict";Wy();o(R3,"default")});var c_,_W=R(()=>{"use strict";Wy();l_();AW();c_={"%":o((e,t)=>(e*100).toFixed(t),"%"),b:o(e=>Math.round(e).toString(2),"b"),c:o(e=>e+"","c"),d:e_,e:o((e,t)=>e.toExponential(t),"e"),f:o((e,t)=>e.toFixed(t),"f"),g:o((e,t)=>e.toPrecision(t),"g"),o:o(e=>Math.round(e).toString(8),"o"),p:o((e,t)=>R3(e*100,t),"p"),r:R3,s:o_,X:o(e=>Math.round(e).toString(16).toUpperCase(),"X"),x:o(e=>Math.round(e).toString(16),"x")}});function N3(e){return e}var LW=R(()=>{"use strict";o(N3,"default")});function u_(e){var t=e.grouping===void 0||e.thousands===void 0?N3:r_(DW.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?N3:n_(DW.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"\u2212":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function h(d){d=Ah(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,w=d.precision,S=d.trim,T=d.type;T==="n"?(b=!0,T="g"):c_[T]||(w===void 0&&(w=12),S=!0,T="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var E=y==="$"?r:y==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",_=y==="$"?n:/[%p]/.test(T)?s:"",A=c_[T],L=/[defgprs%]/.test(T);w=w===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function M(N){var k=E,I=_,C,O,D;if(T==="c")I=A(N)+I,N="";else{N=+N;var P=N<0||1/N<0;if(N=isNaN(N)?u:A(Math.abs(N),w),S&&(N=a_(N)),P&&+N==0&&g!=="+"&&(P=!1),k=(P?g==="("?g:l:g==="-"||g==="("?"":g)+k,I=(T==="s"?RW[8+s_/3]:"")+I+(P&&g==="("?")":""),L){for(C=-1,O=N.length;++CD||D>57){I=(D===46?i+N.slice(C+1):N.slice(C))+I,N=N.slice(0,C);break}}}b&&!v&&(N=t(N,1/0));var F=k.length+N.length+I.length,B=F>1)+k+N+I+B.slice(F);break;default:N=B+k+N+I;break}return a(N)}return o(M,"format"),M.toString=function(){return d+""},M}o(h,"newFormat");function f(d,p){var m=h((d=Ah(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(bl(p)/3)))*3,y=Math.pow(10,-g),v=RW[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var DW,RW,NW=R(()=>{"use strict";Yy();EW();CW();i_();SW();_W();l_();LW();DW=Array.prototype.map,RW=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(u_,"default")});function h_(e){return M3=u_(e),I3=M3.format,O3=M3.formatPrefix,M3}var M3,I3,O3,MW=R(()=>{"use strict";NW();h_({thousands:",",grouping:[3],currency:["$",""]});o(h_,"defaultLocale")});function P3(e){return Math.max(0,-bl(Math.abs(e)))}var IW=R(()=>{"use strict";Yy();o(P3,"default")});function B3(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(bl(t)/3)))*3-bl(Math.abs(e)))}var OW=R(()=>{"use strict";Yy();o(B3,"default")});function F3(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,bl(t)-bl(e))+1}var PW=R(()=>{"use strict";Yy();o(F3,"default")});var f_=R(()=>{"use strict";MW();i_();IW();OW();PW()});var BW=R(()=>{"use strict"});var FW=R(()=>{"use strict"});var zW=R(()=>{"use strict"});var $W=R(()=>{"use strict"});function _h(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var qy=R(()=>{"use strict";o(_h,"initRange")});function bu(){var e=new Lp,t=[],r=[],n=d_;function i(a){let s=e.get(a);if(s===void 0){if(n!==d_)return n;e.set(a,s=t.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return t.slice();t=[],e=new Lp;for(let s of a)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return bu(t,r).unknown(n)},_h.apply(i,arguments),i}var d_,p_=R(()=>{"use strict";wh();qy();d_=Symbol("implicit");o(bu,"ordinal")});function Up(){var e=bu().unknown(void 0),t=e.domain,r=e.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete e.unknown;function d(){var p=t().length,m=i{"use strict";wh();qy();p_();o(Up,"band")});function m_(e){return function(){return e}}var VW=R(()=>{"use strict";o(m_,"constants")});function g_(e){return+e}var UW=R(()=>{"use strict";o(g_,"number")});function Hp(e){return e}function y_(e,t){return(t-=e=+e)?function(r){return(r-e)/t}:m_(isNaN(t)?NaN:.5)}function uTt(e,t){var r;return e>t&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function hTt(e,t,r){var n=e[0],i=e[1],a=t[0],s=t[1];return i2?fTt:hTt,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(e.map(n),t,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(t,e.map(n),Zi)))(p)))},d.domain=function(p){return arguments.length?(e=Array.from(p,g_),f()):e.slice()},d.range=function(p){return arguments.length?(t=Array.from(p),f()):t.slice()},d.rangeRound=function(p){return t=Array.from(p),r=m3,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Hp,f()):s!==Hp},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function Xy(){return dTt()(Hp,Hp)}var HW,v_=R(()=>{"use strict";wh();$p();VW();UW();HW=[0,1];o(Hp,"identity");o(y_,"normalize");o(uTt,"clamper");o(hTt,"bimap");o(fTt,"polymap");o(z3,"copy");o(dTt,"transformer");o(Xy,"continuous")});function x_(e,t,r,n){var i=Dp(e,t,r),a;switch(n=Ah(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=B3(i,s))&&(n.precision=a),O3(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=F3(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=P3(i))&&(n.precision=a-(n.type==="%")*2);break}}return I3(n)}var WW=R(()=>{"use strict";wh();f_();o(x_,"tickFormat")});function pTt(e){var t=e.domain;return e.ticks=function(r){var n=t();return Z4(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return x_(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=ky(s,l,r),h===u)return n[i]=s,n[a]=l,t(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return e},e}function wl(){var e=Xy();return e.copy=function(){return z3(e,wl())},_h.apply(e,arguments),pTt(e)}var YW=R(()=>{"use strict";wh();v_();qy();WW();o(pTt,"linearish");o(wl,"linear")});function b_(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],s;return a{"use strict";o(b_,"nice")});function vn(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(t(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),t(a,l),e(a);while(hvn(s=>{if(s>=s)for(;e(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;t(s,-1),!a(s););else for(;--l>=0;)for(;t(s,1),!a(s););}),r&&(i.count=(a,s)=>(w_.setTime(+a),T_.setTime(+s),e(w_),e(T_),Math.floor(r(w_,T_))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var w_,T_,wu=R(()=>{"use strict";w_=new Date,T_=new Date;o(vn,"timeInterval")});var pc,XW,k_=R(()=>{"use strict";wu();pc=vn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);pc.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?vn(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):pc);XW=pc.range});var Zs,jW,E_=R(()=>{"use strict";wu();Zs=vn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*1e3)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds()),jW=Zs.range});var Tu,mTt,$3,gTt,C_=R(()=>{"use strict";wu();Tu=vn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getMinutes()),mTt=Tu.range,$3=vn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*6e4)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes()),gTt=$3.range});var ku,yTt,G3,vTt,S_=R(()=>{"use strict";wu();ku=vn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*1e3-e.getMinutes()*6e4)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getHours()),yTt=ku.range,G3=vn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*36e5)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours()),vTt=G3.range});var Mo,xTt,Ky,bTt,V3,wTt,A_=R(()=>{"use strict";wu();Mo=vn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1),xTt=Mo.range,Ky=vn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1),bTt=Ky.range,V3=vn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5)),wTt=V3.range});function yd(e){return vn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}function vd(e){return vn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/6048e5)}var Tl,Lh,U3,H3,gc,W3,Y3,QW,TTt,kTt,ETt,CTt,STt,ATt,xd,Wp,ZW,JW,Dh,tY,eY,rY,_Tt,LTt,DTt,RTt,NTt,MTt,__=R(()=>{"use strict";wu();o(yd,"timeWeekday");Tl=yd(0),Lh=yd(1),U3=yd(2),H3=yd(3),gc=yd(4),W3=yd(5),Y3=yd(6),QW=Tl.range,TTt=Lh.range,kTt=U3.range,ETt=H3.range,CTt=gc.range,STt=W3.range,ATt=Y3.range;o(vd,"utcWeekday");xd=vd(0),Wp=vd(1),ZW=vd(2),JW=vd(3),Dh=vd(4),tY=vd(5),eY=vd(6),rY=xd.range,_Tt=Wp.range,LTt=ZW.range,DTt=JW.range,RTt=Dh.range,NTt=tY.range,MTt=eY.range});var Eu,ITt,q3,OTt,L_=R(()=>{"use strict";wu();Eu=vn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth()),ITt=Eu.range,q3=vn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth()),OTt=q3.range});var Js,PTt,kl,BTt,D_=R(()=>{"use strict";wu();Js=vn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Js.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:vn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});PTt=Js.range,kl=vn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());kl.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:vn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});BTt=kl.range});function iY(e,t,r,n,i,a){let s=[[Zs,1,1e3],[Zs,5,5*1e3],[Zs,15,15*1e3],[Zs,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[t,1,2592e6],[t,3,3*2592e6],[e,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return e.every(Dp(h/31536e6,f/31536e6,d));if(m===0)return pc.every(Math.max(Dp(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";wh();k_();E_();C_();S_();A_();__();L_();D_();o(iY,"ticker");[zTt,$Tt]=iY(kl,q3,xd,V3,G3,$3),[R_,N_]=iY(Js,Eu,Tl,Mo,ku,Tu)});var X3=R(()=>{"use strict";k_();E_();C_();S_();A_();__();L_();D_();aY()});function M_(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function I_(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Qy(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function O_(e){var t=e.dateTime,r=e.date,n=e.time,i=e.periods,a=e.days,s=e.shortDays,l=e.months,u=e.shortMonths,h=Zy(i),f=Jy(i),d=Zy(a),p=Jy(a),m=Zy(s),g=Jy(s),y=Zy(l),v=Jy(l),x=Zy(u),b=Jy(u),w={a:P,A:F,b:B,B:G,c:null,d:hY,e:hY,f:ckt,g:xkt,G:wkt,H:skt,I:okt,j:lkt,L:gY,m:ukt,M:hkt,p:z,q:W,Q:pY,s:mY,S:fkt,u:dkt,U:pkt,V:mkt,w:gkt,W:ykt,x:null,X:null,y:vkt,Y:bkt,Z:Tkt,"%":dY},S={a:Q,A:j,b:at,B:X,c:null,d:fY,e:fY,f:Skt,g:Pkt,G:Fkt,H:kkt,I:Ekt,j:Ckt,L:vY,m:Akt,M:_kt,p:J,q:Z,Q:pY,s:mY,S:Lkt,u:Dkt,U:Rkt,V:Nkt,w:Mkt,W:Ikt,x:null,X:null,y:Okt,Y:Bkt,Z:zkt,"%":dY},T={a:M,A:N,b:k,B:I,c:C,d:cY,e:cY,f:rkt,g:lY,G:oY,H:uY,I:uY,j:ZTt,L:ekt,m:QTt,M:JTt,p:L,q:KTt,Q:ikt,s:akt,S:tkt,u:WTt,U:YTt,V:qTt,w:HTt,W:XTt,x:O,X:D,y:lY,Y:oY,Z:jTt,"%":nkt};w.x=E(r,w),w.X=E(n,w),w.c=E(t,w),S.x=E(r,S),S.X=E(n,S),S.c=E(t,S);function E(H,q){return function(K){var ot=[],ct=-1,ut=0,et=H.length,Mt,it,wt;for(K instanceof Date||(K=new Date(+K));++ct53)return null;"w"in ot||(ot.w=1),"Z"in ot?(ut=I_(Qy(ot.y,0,1)),et=ut.getUTCDay(),ut=et>4||et===0?Wp.ceil(ut):Wp(ut),ut=Ky.offset(ut,(ot.V-1)*7),ot.y=ut.getUTCFullYear(),ot.m=ut.getUTCMonth(),ot.d=ut.getUTCDate()+(ot.w+6)%7):(ut=M_(Qy(ot.y,0,1)),et=ut.getDay(),ut=et>4||et===0?Lh.ceil(ut):Lh(ut),ut=Mo.offset(ut,(ot.V-1)*7),ot.y=ut.getFullYear(),ot.m=ut.getMonth(),ot.d=ut.getDate()+(ot.w+6)%7)}else("W"in ot||"U"in ot)&&("w"in ot||(ot.w="u"in ot?ot.u%7:"W"in ot?1:0),et="Z"in ot?I_(Qy(ot.y,0,1)).getUTCDay():M_(Qy(ot.y,0,1)).getDay(),ot.m=0,ot.d="W"in ot?(ot.w+6)%7+ot.W*7-(et+5)%7:ot.w+ot.U*7-(et+6)%7);return"Z"in ot?(ot.H+=ot.Z/100|0,ot.M+=ot.Z%100,I_(ot)):M_(ot)}}o(_,"newParse");function A(H,q,K,ot){for(var ct=0,ut=q.length,et=K.length,Mt,it;ct=et)return-1;if(Mt=q.charCodeAt(ct++),Mt===37){if(Mt=q.charAt(ct++),it=T[Mt in sY?q.charAt(ct++):Mt],!it||(ot=it(H,K,ot))<0)return-1}else if(Mt!=K.charCodeAt(ot++))return-1}return ot}o(A,"parseSpecifier");function L(H,q,K){var ot=h.exec(q.slice(K));return ot?(H.p=f.get(ot[0].toLowerCase()),K+ot[0].length):-1}o(L,"parsePeriod");function M(H,q,K){var ot=m.exec(q.slice(K));return ot?(H.w=g.get(ot[0].toLowerCase()),K+ot[0].length):-1}o(M,"parseShortWeekday");function N(H,q,K){var ot=d.exec(q.slice(K));return ot?(H.w=p.get(ot[0].toLowerCase()),K+ot[0].length):-1}o(N,"parseWeekday");function k(H,q,K){var ot=x.exec(q.slice(K));return ot?(H.m=b.get(ot[0].toLowerCase()),K+ot[0].length):-1}o(k,"parseShortMonth");function I(H,q,K){var ot=y.exec(q.slice(K));return ot?(H.m=v.get(ot[0].toLowerCase()),K+ot[0].length):-1}o(I,"parseMonth");function C(H,q,K){return A(H,t,q,K)}o(C,"parseLocaleDateTime");function O(H,q,K){return A(H,r,q,K)}o(O,"parseLocaleDate");function D(H,q,K){return A(H,n,q,K)}o(D,"parseLocaleTime");function P(H){return s[H.getDay()]}o(P,"formatShortWeekday");function F(H){return a[H.getDay()]}o(F,"formatWeekday");function B(H){return u[H.getMonth()]}o(B,"formatShortMonth");function G(H){return l[H.getMonth()]}o(G,"formatMonth");function z(H){return i[+(H.getHours()>=12)]}o(z,"formatPeriod");function W(H){return 1+~~(H.getMonth()/3)}o(W,"formatQuarter");function Q(H){return s[H.getUTCDay()]}o(Q,"formatUTCShortWeekday");function j(H){return a[H.getUTCDay()]}o(j,"formatUTCWeekday");function at(H){return u[H.getUTCMonth()]}o(at,"formatUTCShortMonth");function X(H){return l[H.getUTCMonth()]}o(X,"formatUTCMonth");function J(H){return i[+(H.getUTCHours()>=12)]}o(J,"formatUTCPeriod");function Z(H){return 1+~~(H.getUTCMonth()/3)}return o(Z,"formatUTCQuarter"),{format:o(function(H){var q=E(H+="",w);return q.toString=function(){return H},q},"format"),parse:o(function(H){var q=_(H+="",!1);return q.toString=function(){return H},q},"parse"),utcFormat:o(function(H){var q=E(H+="",S);return q.toString=function(){return H},q},"utcFormat"),utcParse:o(function(H){var q=_(H+="",!0);return q.toString=function(){return H},q},"utcParse")}}function Hr(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function HTt(e,t,r){var n=Ji.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function WTt(e,t,r){var n=Ji.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function YTt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function qTt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function XTt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function oY(e,t,r){var n=Ji.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function lY(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function jTt(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function KTt(e,t,r){var n=Ji.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function QTt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function cY(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function ZTt(e,t,r){var n=Ji.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function uY(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function JTt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function tkt(e,t,r){var n=Ji.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function ekt(e,t,r){var n=Ji.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function rkt(e,t,r){var n=Ji.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function nkt(e,t,r){var n=GTt.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function ikt(e,t,r){var n=Ji.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function akt(e,t,r){var n=Ji.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function hY(e,t){return Hr(e.getDate(),t,2)}function skt(e,t){return Hr(e.getHours(),t,2)}function okt(e,t){return Hr(e.getHours()%12||12,t,2)}function lkt(e,t){return Hr(1+Mo.count(Js(e),e),t,3)}function gY(e,t){return Hr(e.getMilliseconds(),t,3)}function ckt(e,t){return gY(e,t)+"000"}function ukt(e,t){return Hr(e.getMonth()+1,t,2)}function hkt(e,t){return Hr(e.getMinutes(),t,2)}function fkt(e,t){return Hr(e.getSeconds(),t,2)}function dkt(e){var t=e.getDay();return t===0?7:t}function pkt(e,t){return Hr(Tl.count(Js(e)-1,e),t,2)}function yY(e){var t=e.getDay();return t>=4||t===0?gc(e):gc.ceil(e)}function mkt(e,t){return e=yY(e),Hr(gc.count(Js(e),e)+(Js(e).getDay()===4),t,2)}function gkt(e){return e.getDay()}function ykt(e,t){return Hr(Lh.count(Js(e)-1,e),t,2)}function vkt(e,t){return Hr(e.getFullYear()%100,t,2)}function xkt(e,t){return e=yY(e),Hr(e.getFullYear()%100,t,2)}function bkt(e,t){return Hr(e.getFullYear()%1e4,t,4)}function wkt(e,t){var r=e.getDay();return e=r>=4||r===0?gc(e):gc.ceil(e),Hr(e.getFullYear()%1e4,t,4)}function Tkt(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Hr(t/60|0,"0",2)+Hr(t%60,"0",2)}function fY(e,t){return Hr(e.getUTCDate(),t,2)}function kkt(e,t){return Hr(e.getUTCHours(),t,2)}function Ekt(e,t){return Hr(e.getUTCHours()%12||12,t,2)}function Ckt(e,t){return Hr(1+Ky.count(kl(e),e),t,3)}function vY(e,t){return Hr(e.getUTCMilliseconds(),t,3)}function Skt(e,t){return vY(e,t)+"000"}function Akt(e,t){return Hr(e.getUTCMonth()+1,t,2)}function _kt(e,t){return Hr(e.getUTCMinutes(),t,2)}function Lkt(e,t){return Hr(e.getUTCSeconds(),t,2)}function Dkt(e){var t=e.getUTCDay();return t===0?7:t}function Rkt(e,t){return Hr(xd.count(kl(e)-1,e),t,2)}function xY(e){var t=e.getUTCDay();return t>=4||t===0?Dh(e):Dh.ceil(e)}function Nkt(e,t){return e=xY(e),Hr(Dh.count(kl(e),e)+(kl(e).getUTCDay()===4),t,2)}function Mkt(e){return e.getUTCDay()}function Ikt(e,t){return Hr(Wp.count(kl(e)-1,e),t,2)}function Okt(e,t){return Hr(e.getUTCFullYear()%100,t,2)}function Pkt(e,t){return e=xY(e),Hr(e.getUTCFullYear()%100,t,2)}function Bkt(e,t){return Hr(e.getUTCFullYear()%1e4,t,4)}function Fkt(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Dh(e):Dh.ceil(e),Hr(e.getUTCFullYear()%1e4,t,4)}function zkt(){return"+0000"}function dY(){return"%"}function pY(e){return+e}function mY(e){return Math.floor(+e/1e3)}var sY,Ji,GTt,VTt,bY=R(()=>{"use strict";X3();o(M_,"localDate");o(I_,"utcDate");o(Qy,"newDate");o(O_,"formatLocale");sY={"-":"",_:" ",0:"0"},Ji=/^\s*\d+/,GTt=/^%/,VTt=/[\\^$*+?|[\]().{}]/g;o(Hr,"pad");o(UTt,"requote");o(Zy,"formatRe");o(Jy,"formatLookup");o(HTt,"parseWeekdayNumberSunday");o(WTt,"parseWeekdayNumberMonday");o(YTt,"parseWeekNumberSunday");o(qTt,"parseWeekNumberISO");o(XTt,"parseWeekNumberMonday");o(oY,"parseFullYear");o(lY,"parseYear");o(jTt,"parseZone");o(KTt,"parseQuarter");o(QTt,"parseMonthNumber");o(cY,"parseDayOfMonth");o(ZTt,"parseDayOfYear");o(uY,"parseHour24");o(JTt,"parseMinutes");o(tkt,"parseSeconds");o(ekt,"parseMilliseconds");o(rkt,"parseMicroseconds");o(nkt,"parseLiteralPercent");o(ikt,"parseUnixTimestamp");o(akt,"parseUnixTimestampSeconds");o(hY,"formatDayOfMonth");o(skt,"formatHour24");o(okt,"formatHour12");o(lkt,"formatDayOfYear");o(gY,"formatMilliseconds");o(ckt,"formatMicroseconds");o(ukt,"formatMonthNumber");o(hkt,"formatMinutes");o(fkt,"formatSeconds");o(dkt,"formatWeekdayNumberMonday");o(pkt,"formatWeekNumberSunday");o(yY,"dISO");o(mkt,"formatWeekNumberISO");o(gkt,"formatWeekdayNumberSunday");o(ykt,"formatWeekNumberMonday");o(vkt,"formatYear");o(xkt,"formatYearISO");o(bkt,"formatFullYear");o(wkt,"formatFullYearISO");o(Tkt,"formatZone");o(fY,"formatUTCDayOfMonth");o(kkt,"formatUTCHour24");o(Ekt,"formatUTCHour12");o(Ckt,"formatUTCDayOfYear");o(vY,"formatUTCMilliseconds");o(Skt,"formatUTCMicroseconds");o(Akt,"formatUTCMonthNumber");o(_kt,"formatUTCMinutes");o(Lkt,"formatUTCSeconds");o(Dkt,"formatUTCWeekdayNumberMonday");o(Rkt,"formatUTCWeekNumberSunday");o(xY,"UTCdISO");o(Nkt,"formatUTCWeekNumberISO");o(Mkt,"formatUTCWeekdayNumberSunday");o(Ikt,"formatUTCWeekNumberMonday");o(Okt,"formatUTCYear");o(Pkt,"formatUTCYearISO");o(Bkt,"formatUTCFullYear");o(Fkt,"formatUTCFullYearISO");o(zkt,"formatUTCZone");o(dY,"formatLiteralPercent");o(pY,"formatUnixTimestamp");o(mY,"formatUnixTimestampSeconds")});function P_(e){return Yp=O_(e),bd=Yp.format,wY=Yp.parse,TY=Yp.utcFormat,kY=Yp.utcParse,Yp}var Yp,bd,wY,TY,kY,EY=R(()=>{"use strict";bY();P_({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(P_,"defaultLocale")});var B_=R(()=>{"use strict";EY()});function $kt(e){return new Date(e)}function Gkt(e){return e instanceof Date?+e:+new Date(+e)}function CY(e,t,r,n,i,a,s,l,u,h){var f=Xy(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),w=h("%B"),S=h("%Y");function T(E){return(u(E){"use strict";X3();B_();v_();qy();qW();o($kt,"date");o(Gkt,"number");o(CY,"calendar");o(j3,"time")});var AY=R(()=>{"use strict";GW();YW();p_();SY()});function F_(e){for(var t=e.length/6|0,r=new Array(t),n=0;n{"use strict";o(F_,"default")});var z_,LY=R(()=>{"use strict";_Y();z_=F_("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var DY=R(()=>{"use strict";LY()});function zn(e){return o(function(){return e},"constant")}var K3=R(()=>{"use strict";o(zn,"default")});function NY(e){return e>1?0:e<-1?qp:Math.acos(e)}function G_(e){return e>=1?tv:e<=-1?-tv:Math.asin(e)}var $_,pa,Rh,RY,Q3,El,wd,ta,qp,tv,Xp,Z3=R(()=>{"use strict";$_=Math.abs,pa=Math.atan2,Rh=Math.cos,RY=Math.max,Q3=Math.min,El=Math.sin,wd=Math.sqrt,ta=1e-12,qp=Math.PI,tv=qp/2,Xp=2*qp;o(NY,"acos");o(G_,"asin")});function J3(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new dd(t)}var V_=R(()=>{"use strict";t_();o(J3,"withPath")});function Vkt(e){return e.innerRadius}function Ukt(e){return e.outerRadius}function Hkt(e){return e.startAngle}function Wkt(e){return e.endAngle}function Ykt(e){return e&&e.padAngle}function qkt(e,t,r,n,i,a,s,l){var u=r-e,h=n-t,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pC*C+O*O&&(A=M,L=N),{cx:A,cy:L,x01:-f,y01:-d,x11:A*(i/T-1),y11:L*(i/T-1)}}function Cl(){var e=Vkt,t=Ukt,r=zn(0),n=null,i=Hkt,a=Wkt,s=Ykt,l=null,u=J3(h);function h(){var f,d,p=+e.apply(this,arguments),m=+t.apply(this,arguments),g=i.apply(this,arguments)-tv,y=a.apply(this,arguments)-tv,v=$_(y-g),x=y>g;if(l||(l=f=u()),mta))l.moveTo(0,0);else if(v>Xp-ta)l.moveTo(m*Rh(g),m*El(g)),l.arc(0,0,m,g,y,!x),p>ta&&(l.moveTo(p*Rh(y),p*El(y)),l.arc(0,0,p,y,g,x));else{var b=g,w=y,S=g,T=y,E=v,_=v,A=s.apply(this,arguments)/2,L=A>ta&&(n?+n.apply(this,arguments):wd(p*p+m*m)),M=Q3($_(m-p)/2,+r.apply(this,arguments)),N=M,k=M,I,C;if(L>ta){var O=G_(L/p*El(A)),D=G_(L/m*El(A));(E-=O*2)>ta?(O*=x?1:-1,S+=O,T-=O):(E=0,S=T=(g+y)/2),(_-=D*2)>ta?(D*=x?1:-1,b+=D,w-=D):(_=0,b=w=(g+y)/2)}var P=m*Rh(b),F=m*El(b),B=p*Rh(T),G=p*El(T);if(M>ta){var z=m*Rh(w),W=m*El(w),Q=p*Rh(S),j=p*El(S),at;if(vta?k>ta?(I=t5(Q,j,P,F,m,k,x),C=t5(z,W,B,G,m,k,x),l.moveTo(I.cx+I.x01,I.cy+I.y01),kta)||!(E>ta)?l.lineTo(B,G):N>ta?(I=t5(B,G,z,W,p,-N,x),C=t5(P,F,Q,j,p,-N,x),l.lineTo(I.cx+I.x01,I.cy+I.y01),N{"use strict";K3();Z3();V_();o(Vkt,"arcInnerRadius");o(Ukt,"arcOuterRadius");o(Hkt,"arcStartAngle");o(Wkt,"arcEndAngle");o(Ykt,"arcPadAngle");o(qkt,"intersect");o(t5,"cornerTangents");o(Cl,"default")});function ev(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}var t2e,U_=R(()=>{"use strict";t2e=Array.prototype.slice;o(ev,"default")});function IY(e){this._context=e}function Cu(e){return new IY(e)}var H_=R(()=>{"use strict";o(IY,"Linear");IY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}},"point")};o(Cu,"default")});function OY(e){return e[0]}function PY(e){return e[1]}var BY=R(()=>{"use strict";o(OY,"x");o(PY,"y")});function ma(e,t){var r=zn(!0),n=null,i=Cu,a=null,s=J3(l);e=typeof e=="function"?e:e===void 0?OY:zn(e),t=typeof t=="function"?t:t===void 0?PY:zn(t);function l(u){var h,f=(u=ev(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";U_();K3();H_();V_();BY();o(ma,"default")});function W_(e,t){return te?1:t>=e?0:NaN}var zY=R(()=>{"use strict";o(W_,"default")});function Y_(e){return e}var $Y=R(()=>{"use strict";o(Y_,"default")});function e5(){var e=Y_,t=W_,r=null,n=zn(0),i=zn(Xp),a=zn(0);function s(l){var u,h=(l=ev(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(Xp,Math.max(-Xp,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),w=b*(v<0?-1:1),S;for(u=0;u0&&(p+=S);for(t!=null?m.sort(function(T,E){return t(g[T],g[E])}):r!=null&&m.sort(function(T,E){return r(l[T],l[E])}),u=0,d=p?(v-h*w)/p:0;u0?S*d:0)+w,g[f]={data:l[f],index:u,value:S,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(e=typeof l=="function"?l:zn(+l),s):e},s.sortValues=function(l){return arguments.length?(t=l,r=null,s):t},s.sort=function(l){return arguments.length?(r=l,t=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:zn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:zn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:zn(+l),s):a},s}var GY=R(()=>{"use strict";U_();K3();zY();$Y();Z3();o(e5,"default")});function q_(e){return new r5(e,!0)}function X_(e){return new r5(e,!1)}var r5,VY=R(()=>{"use strict";r5=class{static{o(this,"Bump")}constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}};o(q_,"bumpX");o(X_,"bumpY")});function to(){}var rv=R(()=>{"use strict";o(to,"default")});function jp(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function nv(e){this._context=e}function Ts(e){return new nv(e)}var iv=R(()=>{"use strict";o(jp,"point");o(nv,"Basis");nv.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:jp(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:jp(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(Ts,"default")});function UY(e){this._context=e}function n5(e){return new UY(e)}var HY=R(()=>{"use strict";rv();iv();o(UY,"BasisClosed");UY.prototype={areaStart:to,areaEnd:to,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:jp(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(n5,"default")});function WY(e){this._context=e}function i5(e){return new WY(e)}var YY=R(()=>{"use strict";iv();o(WY,"BasisOpen");WY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:jp(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t},"point")};o(i5,"default")});function qY(e,t){this._basis=new nv(e),this._beta=t}var j_,XY=R(()=>{"use strict";iv();o(qY,"Bundle");qY.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var e=this._x,t=this._y,r=e.length-1;if(r>0)for(var n=e[0],i=t[0],a=e[r]-n,s=t[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*e[l]+(1-this._beta)*(n+u*a),this._beta*t[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(e,t){this._x.push(+e),this._y.push(+t)},"point")};j_=o(function e(t){function r(n){return t===1?new nv(n):new qY(n,t)}return o(r,"bundle"),r.beta=function(n){return e(+n)},r},"custom")(.85)});function Kp(e,t,r){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-r),e._x2,e._y2)}function a5(e,t){this._context=e,this._k=(1-t)/6}var K_,av=R(()=>{"use strict";o(Kp,"point");o(a5,"Cardinal");a5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Kp(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:Kp(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};K_=o(function e(t){function r(n){return new a5(n,t)}return o(r,"cardinal"),r.tension=function(n){return e(+n)},r},"custom")(0)});function s5(e,t){this._context=e,this._k=(1-t)/6}var Q_,Z_=R(()=>{"use strict";rv();av();o(s5,"CardinalClosed");s5.prototype={areaStart:to,areaEnd:to,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Kp(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};Q_=o(function e(t){function r(n){return new s5(n,t)}return o(r,"cardinal"),r.tension=function(n){return e(+n)},r},"custom")(0)});function o5(e,t){this._context=e,this._k=(1-t)/6}var J_,t9=R(()=>{"use strict";av();o(o5,"CardinalOpen");o5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Kp(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};J_=o(function e(t){function r(n){return new o5(n,t)}return o(r,"cardinal"),r.tension=function(n){return e(+n)},r},"custom")(0)});function sv(e,t,r){var n=e._x1,i=e._y1,a=e._x2,s=e._y2;if(e._l01_a>ta){var l=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);n=(n*l-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,i=(i*l-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>ta){var h=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,f=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*h+e._x1*e._l23_2a-t*e._l12_2a)/f,s=(s*h+e._y1*e._l23_2a-r*e._l12_2a)/f}e._context.bezierCurveTo(n,i,a,s,e._x2,e._y2)}function jY(e,t){this._context=e,this._alpha=t}var e9,l5=R(()=>{"use strict";Z3();av();o(sv,"point");o(jY,"CatmullRom");jY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:sv(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};e9=o(function e(t){function r(n){return t?new jY(n,t):new a5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return e(+n)},r},"custom")(.5)});function KY(e,t){this._context=e,this._alpha=t}var r9,QY=R(()=>{"use strict";Z_();rv();l5();o(KY,"CatmullRomClosed");KY.prototype={areaStart:to,areaEnd:to,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:sv(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};r9=o(function e(t){function r(n){return t?new KY(n,t):new s5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return e(+n)},r},"custom")(.5)});function ZY(e,t){this._context=e,this._alpha=t}var n9,JY=R(()=>{"use strict";t9();l5();o(ZY,"CatmullRomOpen");ZY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){if(e=+e,t=+t,this._point){var r=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:sv(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t},"point")};n9=o(function e(t){function r(n){return t?new ZY(n,t):new o5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return e(+n)},r},"custom")(.5)});function tq(e){this._context=e}function c5(e){return new tq(e)}var eq=R(()=>{"use strict";rv();o(tq,"LinearClosed");tq.prototype={areaStart:to,areaEnd:to,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))},"point")};o(c5,"default")});function rq(e){return e<0?-1:1}function nq(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),s=(r-e._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(rq(a)+rq(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function iq(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function i9(e,t,r){var n=e._x0,i=e._y0,a=e._x1,s=e._y1,l=(a-n)/3;e._context.bezierCurveTo(n+l,i+l*t,a-l,s-l*r,a,s)}function u5(e){this._context=e}function aq(e){this._context=new sq(e)}function sq(e){this._context=e}function a9(e){return new u5(e)}function s9(e){return new aq(e)}var oq=R(()=>{"use strict";o(rq,"sign");o(nq,"slope3");o(iq,"slope2");o(i9,"point");o(u5,"MonotoneX");u5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:i9(this,this._t0,iq(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,i9(this,iq(this,r=nq(this,e,t)),r);break;default:i9(this,this._t0,r=nq(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}},"point")};o(aq,"MonotoneY");(aq.prototype=Object.create(u5.prototype)).point=function(e,t){u5.prototype.point.call(this,t,e)};o(sq,"ReflectContext");sq.prototype={moveTo:o(function(e,t){this._context.moveTo(t,e)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(e,t){this._context.lineTo(t,e)},"lineTo"),bezierCurveTo:o(function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)},"bezierCurveTo")};o(a9,"monotoneX");o(s9,"monotoneY")});function cq(e){this._context=e}function lq(e){var t,r=e.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=e[0]+2*e[1],t=1;t=0;--t)i[t]=(s[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t{"use strict";o(cq,"Natural");cq.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=lq(e),i=lq(t),a=0,s=1;s{"use strict";o(f5,"Step");f5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t},"point")};o(d5,"default");o(o9,"stepBefore");o(l9,"stepAfter")});var fq=R(()=>{"use strict";MY();FY();GY();HY();YY();iv();VY();XY();Z_();t9();av();QY();JY();l5();eq();H_();oq();uq();hq()});var dq=R(()=>{"use strict"});var pq=R(()=>{"use strict"});function Nh(e,t,r){this.k=e,this.x=t,this.y=r}function u9(e){for(;!e.__zoom;)if(!(e=e.parentNode))return c9;return e.__zoom}var c9,h9=R(()=>{"use strict";o(Nh,"Transform");Nh.prototype={constructor:Nh,scale:o(function(e){return e===1?this:new Nh(this.k*e,this.x,this.y)},"scale"),translate:o(function(e,t){return e===0&t===0?this:new Nh(this.k,this.x+this.k*e,this.y+this.k*t)},"translate"),apply:o(function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},"apply"),applyX:o(function(e){return e*this.k+this.x},"applyX"),applyY:o(function(e){return e*this.k+this.y},"applyY"),invert:o(function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},"invert"),invertX:o(function(e){return(e-this.x)/this.k},"invertX"),invertY:o(function(e){return(e-this.y)/this.k},"invertY"),rescaleX:o(function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},"rescaleX"),rescaleY:o(function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};c9=new Nh(1,0,0);u9.prototype=Nh.prototype;o(u9,"transform")});var mq=R(()=>{"use strict"});var gq=R(()=>{"use strict";L3();dq();pq();h9();mq()});var yq=R(()=>{"use strict";gq();h9()});var ur=R(()=>{"use strict";wh();XV();dW();yW();Bp();vW();xW();oA();zU();bW();j8();wW();kW();f_();BW();FW();$p();t_();zW();TW();$W();AY();DY();yl();fq();X3();B_();k3();L3();yq()});var vq=Ti(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.BLANK_URL=ea.relativeFirstCharacters=ea.whitespaceEscapeCharsRegex=ea.urlSchemeRegex=ea.ctrlCharactersRegex=ea.htmlCtrlEntityRegex=ea.htmlEntitiesRegex=ea.invalidProtocolRegex=void 0;ea.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;ea.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;ea.htmlCtrlEntityRegex=/&(newline|tab);/gi;ea.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;ea.urlSchemeRegex=/^.+(:|:)/gim;ea.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;ea.relativeFirstCharacters=[".","/"];ea.BLANK_URL="about:blank"});var Qp=Ti(p5=>{"use strict";Object.defineProperty(p5,"__esModule",{value:!0});p5.sanitizeUrl=void 0;var Ia=vq();function Xkt(e){return Ia.relativeFirstCharacters.indexOf(e[0])>-1}o(Xkt,"isRelativeUrlWithoutProtocol");function jkt(e){var t=e.replace(Ia.ctrlCharactersRegex,"");return t.replace(Ia.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(jkt,"decodeHtmlCharacters");function Kkt(e){return URL.canParse(e)}o(Kkt,"isValidUrl");function xq(e){try{return decodeURIComponent(e)}catch{return e}}o(xq,"decodeURI");function Qkt(e){if(!e)return Ia.BLANK_URL;var t,r=xq(e.trim());do r=jkt(r).replace(Ia.htmlCtrlEntityRegex,"").replace(Ia.ctrlCharactersRegex,"").replace(Ia.whitespaceEscapeCharsRegex,"").trim(),r=xq(r),t=r.match(Ia.ctrlCharactersRegex)||r.match(Ia.htmlEntitiesRegex)||r.match(Ia.htmlCtrlEntityRegex)||r.match(Ia.whitespaceEscapeCharsRegex);while(t&&t.length>0);var n=r;if(!n)return Ia.BLANK_URL;if(Xkt(n))return n;var i=n.trimStart(),a=i.match(Ia.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Ia.invalidProtocolRegex.test(s))return Ia.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!Kkt(l))return Ia.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(Qkt,"sanitizeUrl");p5.sanitizeUrl=Qkt});var f9,Td,m5,bq,wq,Tq,Sl,ov,lv=R(()=>{"use strict";f9=Qi(Qp(),1);hr();Td=o((e,t)=>{let r=e.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(let n in t.attrs)r.attr(n,t.attrs[n]);return t.class&&r.attr("class",t.class),r},"drawRect"),m5=o((e,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};Td(e,r).lower()},"drawBackgroundRect"),bq=o((e,t)=>{let r=t.text.replace(rd," "),n=e.append("text");n.attr("x",t.x),n.attr("y",t.y),n.attr("class","legend"),n.style("text-anchor",t.anchor),t.class&&n.attr("class",t.class);let i=n.append("tspan");return i.attr("x",t.x+t.textMargin*2),i.text(r),n},"drawText"),wq=o((e,t,r,n)=>{let i=e.append("image");i.attr("x",t),i.attr("y",r);let a=(0,f9.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),Tq=o((e,t,r,n)=>{let i=e.append("use");i.attr("x",t),i.attr("y",r);let a=(0,f9.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Sl=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),ov=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var kq,d9,Eq,Zkt,Jkt,tEt,eEt,rEt,nEt,iEt,aEt,sEt,oEt,lEt,cEt,Su,Al,Cq=R(()=>{"use strict";hr();lv();kq=Qi(Qp(),1),d9=o(function(e,t){return Td(e,t)},"drawRect"),Eq=o(function(e,t,r,n,i,a){let s=e.append("image");s.attr("width",t),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,kq.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),Zkt=o((e,t,r)=>{let n=e.append("g"),i=0;for(let a of t){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();Su(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),Su(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),Jkt=o(function(e,t,r){let n=e.append("g"),i=t.bgColor?t.bgColor:"none",a=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(l={"stroke-width":1});let u={x:t.x,y:t.y,fill:i,stroke:a,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:l};d9(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,Su(r)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},h),t.type&&t.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,Su(r)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},h)),t.descr&&t.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,Su(r)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},h))},"drawBoundary"),tEt=o(function(e,t,r){let n=t.bgColor?t.bgColor:r[t.typeC4Shape.text+"_bg_color"],i=t.borderColor?t.borderColor:r[t.typeC4Shape.text+"_border_color"],a=t.fontColor?t.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=e.append("g");l.attr("class","person-man");let u=Sl();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=t.x,u.y=t.y,u.fill=n,u.width=t.width,u.height=t.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},d9(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let h=cEt(r,t.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":Eq(l,48,48,t.x+t.width/2-24,t.y+t.image.Y,s);break}let f=r[t.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,Su(r)(t.label.text,l,t.x,t.y+t.label.Y,t.width,t.height,{fill:a},f),f=r[t.typeC4Shape.text+"Font"](),f.fontColor=a,t.techn&&t.techn?.text!==""?Su(r)(t.techn.text,l,t.x,t.y+t.techn.Y,t.width,t.height,{fill:a,"font-style":"italic"},f):t.type&&t.type.text!==""&&Su(r)(t.type.text,l,t.x,t.y+t.type.Y,t.width,t.height,{fill:a,"font-style":"italic"},f),t.descr&&t.descr.text!==""&&(f=r.personFont(),f.fontColor=a,Su(r)(t.descr.text,l,t.x,t.y+t.descr.Y,t.width,t.height,{fill:a},f)),t.height},"drawC4Shape"),eEt=o(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),rEt=o(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),nEt=o(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),iEt=o(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),aEt=o(function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),sEt=o(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),oEt=o(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),lEt=o(function(e){let r=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),cEt=o((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"getC4ShapeFont"),Su=function(){function e(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(e,"byText");function t(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(Yt.lineBreakRegex);for(let v=0;v{"use strict";uEt=typeof global=="object"&&global&&global.Object===Object&&global,y5=uEt});var hEt,fEt,si,Io=R(()=>{"use strict";p9();hEt=typeof self=="object"&&self&&self.Object===Object&&self,fEt=y5||hEt||Function("return this")(),si=fEt});var dEt,ra,kd=R(()=>{"use strict";Io();dEt=si.Symbol,ra=dEt});function gEt(e){var t=pEt.call(e,cv),r=e[cv];try{e[cv]=void 0;var n=!0}catch{}var i=mEt.call(e);return n&&(t?e[cv]=r:delete e[cv]),i}var Sq,pEt,mEt,cv,Aq,_q=R(()=>{"use strict";kd();Sq=Object.prototype,pEt=Sq.hasOwnProperty,mEt=Sq.toString,cv=ra?ra.toStringTag:void 0;o(gEt,"getRawTag");Aq=gEt});function xEt(e){return vEt.call(e)}var yEt,vEt,Lq,Dq=R(()=>{"use strict";yEt=Object.prototype,vEt=yEt.toString;o(xEt,"objectToString");Lq=xEt});function TEt(e){return e==null?e===void 0?wEt:bEt:Rq&&Rq in Object(e)?Aq(e):Lq(e)}var bEt,wEt,Rq,ga,Au=R(()=>{"use strict";kd();_q();Dq();bEt="[object Null]",wEt="[object Undefined]",Rq=ra?ra.toStringTag:void 0;o(TEt,"baseGetTag");ga=TEt});function kEt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xn,eo=R(()=>{"use strict";o(kEt,"isObject");xn=kEt});function _Et(e){if(!xn(e))return!1;var t=ga(e);return t==CEt||t==SEt||t==EEt||t==AEt}var EEt,CEt,SEt,AEt,Si,uv=R(()=>{"use strict";Au();eo();EEt="[object AsyncFunction]",CEt="[object Function]",SEt="[object GeneratorFunction]",AEt="[object Proxy]";o(_Et,"isFunction");Si=_Et});var LEt,v5,Nq=R(()=>{"use strict";Io();LEt=si["__core-js_shared__"],v5=LEt});function DEt(e){return!!Mq&&Mq in e}var Mq,Iq,Oq=R(()=>{"use strict";Nq();Mq=function(){var e=/[^.]+$/.exec(v5&&v5.keys&&v5.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();o(DEt,"isMasked");Iq=DEt});function MEt(e){if(e!=null){try{return NEt.call(e)}catch{}try{return e+""}catch{}}return""}var REt,NEt,_u,m9=R(()=>{"use strict";REt=Function.prototype,NEt=REt.toString;o(MEt,"toSource");_u=MEt});function GEt(e){if(!xn(e)||Iq(e))return!1;var t=Si(e)?$Et:OEt;return t.test(_u(e))}var IEt,OEt,PEt,BEt,FEt,zEt,$Et,Pq,Bq=R(()=>{"use strict";uv();Oq();eo();m9();IEt=/[\\^$.*+?()[\]{}|]/g,OEt=/^\[object .+?Constructor\]$/,PEt=Function.prototype,BEt=Object.prototype,FEt=PEt.toString,zEt=BEt.hasOwnProperty,$Et=RegExp("^"+FEt.call(zEt).replace(IEt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(GEt,"baseIsNative");Pq=GEt});function VEt(e,t){return e?.[t]}var Fq,zq=R(()=>{"use strict";o(VEt,"getValue");Fq=VEt});function UEt(e,t){var r=Fq(e,t);return Pq(r)?r:void 0}var ks,Mh=R(()=>{"use strict";Bq();zq();o(UEt,"getNative");ks=UEt});var HEt,Lu,hv=R(()=>{"use strict";Mh();HEt=ks(Object,"create"),Lu=HEt});function WEt(){this.__data__=Lu?Lu(null):{},this.size=0}var $q,Gq=R(()=>{"use strict";hv();o(WEt,"hashClear");$q=WEt});function YEt(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Vq,Uq=R(()=>{"use strict";o(YEt,"hashDelete");Vq=YEt});function KEt(e){var t=this.__data__;if(Lu){var r=t[e];return r===qEt?void 0:r}return jEt.call(t,e)?t[e]:void 0}var qEt,XEt,jEt,Hq,Wq=R(()=>{"use strict";hv();qEt="__lodash_hash_undefined__",XEt=Object.prototype,jEt=XEt.hasOwnProperty;o(KEt,"hashGet");Hq=KEt});function JEt(e){var t=this.__data__;return Lu?t[e]!==void 0:ZEt.call(t,e)}var QEt,ZEt,Yq,qq=R(()=>{"use strict";hv();QEt=Object.prototype,ZEt=QEt.hasOwnProperty;o(JEt,"hashHas");Yq=JEt});function e6t(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Lu&&t===void 0?t6t:t,this}var t6t,Xq,jq=R(()=>{"use strict";hv();t6t="__lodash_hash_undefined__";o(e6t,"hashSet");Xq=e6t});function Zp(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";Gq();Uq();Wq();qq();jq();o(Zp,"Hash");Zp.prototype.clear=$q;Zp.prototype.delete=Vq;Zp.prototype.get=Hq;Zp.prototype.has=Yq;Zp.prototype.set=Xq;g9=Zp});function r6t(){this.__data__=[],this.size=0}var Qq,Zq=R(()=>{"use strict";o(r6t,"listCacheClear");Qq=r6t});function n6t(e,t){return e===t||e!==e&&t!==t}var Oo,Ed=R(()=>{"use strict";o(n6t,"eq");Oo=n6t});function i6t(e,t){for(var r=e.length;r--;)if(Oo(e[r][0],t))return r;return-1}var Ih,fv=R(()=>{"use strict";Ed();o(i6t,"assocIndexOf");Ih=i6t});function o6t(e){var t=this.__data__,r=Ih(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():s6t.call(t,r,1),--this.size,!0}var a6t,s6t,Jq,tX=R(()=>{"use strict";fv();a6t=Array.prototype,s6t=a6t.splice;o(o6t,"listCacheDelete");Jq=o6t});function l6t(e){var t=this.__data__,r=Ih(t,e);return r<0?void 0:t[r][1]}var eX,rX=R(()=>{"use strict";fv();o(l6t,"listCacheGet");eX=l6t});function c6t(e){return Ih(this.__data__,e)>-1}var nX,iX=R(()=>{"use strict";fv();o(c6t,"listCacheHas");nX=c6t});function u6t(e,t){var r=this.__data__,n=Ih(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var aX,sX=R(()=>{"use strict";fv();o(u6t,"listCacheSet");aX=u6t});function Jp(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";Zq();tX();rX();iX();sX();o(Jp,"ListCache");Jp.prototype.clear=Qq;Jp.prototype.delete=Jq;Jp.prototype.get=eX;Jp.prototype.has=nX;Jp.prototype.set=aX;Oh=Jp});var h6t,Ph,x5=R(()=>{"use strict";Mh();Io();h6t=ks(si,"Map"),Ph=h6t});function f6t(){this.size=0,this.__data__={hash:new g9,map:new(Ph||Oh),string:new g9}}var oX,lX=R(()=>{"use strict";Kq();dv();x5();o(f6t,"mapCacheClear");oX=f6t});function d6t(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var cX,uX=R(()=>{"use strict";o(d6t,"isKeyable");cX=d6t});function p6t(e,t){var r=e.__data__;return cX(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Bh,pv=R(()=>{"use strict";uX();o(p6t,"getMapData");Bh=p6t});function m6t(e){var t=Bh(this,e).delete(e);return this.size-=t?1:0,t}var hX,fX=R(()=>{"use strict";pv();o(m6t,"mapCacheDelete");hX=m6t});function g6t(e){return Bh(this,e).get(e)}var dX,pX=R(()=>{"use strict";pv();o(g6t,"mapCacheGet");dX=g6t});function y6t(e){return Bh(this,e).has(e)}var mX,gX=R(()=>{"use strict";pv();o(y6t,"mapCacheHas");mX=y6t});function v6t(e,t){var r=Bh(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var yX,vX=R(()=>{"use strict";pv();o(v6t,"mapCacheSet");yX=v6t});function tm(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{"use strict";lX();fX();pX();gX();vX();o(tm,"MapCache");tm.prototype.clear=oX;tm.prototype.delete=hX;tm.prototype.get=dX;tm.prototype.has=mX;tm.prototype.set=yX;Cd=tm});function y9(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(x6t);var r=o(function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(y9.Cache||Cd),r}var x6t,em,v9=R(()=>{"use strict";b5();x6t="Expected a function";o(y9,"memoize");y9.Cache=Cd;em=y9});function b6t(){this.__data__=new Oh,this.size=0}var xX,bX=R(()=>{"use strict";dv();o(b6t,"stackClear");xX=b6t});function w6t(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var wX,TX=R(()=>{"use strict";o(w6t,"stackDelete");wX=w6t});function T6t(e){return this.__data__.get(e)}var kX,EX=R(()=>{"use strict";o(T6t,"stackGet");kX=T6t});function k6t(e){return this.__data__.has(e)}var CX,SX=R(()=>{"use strict";o(k6t,"stackHas");CX=k6t});function C6t(e,t){var r=this.__data__;if(r instanceof Oh){var n=r.__data__;if(!Ph||n.length{"use strict";dv();x5();b5();E6t=200;o(C6t,"stackSet");AX=C6t});function rm(e){var t=this.__data__=new Oh(e);this.size=t.size}var yc,mv=R(()=>{"use strict";dv();bX();TX();EX();SX();_X();o(rm,"Stack");rm.prototype.clear=xX;rm.prototype.delete=wX;rm.prototype.get=kX;rm.prototype.has=CX;rm.prototype.set=AX;yc=rm});var S6t,nm,x9=R(()=>{"use strict";Mh();S6t=function(){try{var e=ks(Object,"defineProperty");return e({},"",{}),e}catch{}}(),nm=S6t});function A6t(e,t,r){t=="__proto__"&&nm?nm(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var vc,im=R(()=>{"use strict";x9();o(A6t,"baseAssignValue");vc=A6t});function _6t(e,t,r){(r!==void 0&&!Oo(e[t],r)||r===void 0&&!(t in e))&&vc(e,t,r)}var gv,b9=R(()=>{"use strict";im();Ed();o(_6t,"assignMergeValue");gv=_6t});function L6t(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),l=s.length;l--;){var u=s[e?l:++i];if(r(a[u],u,a)===!1)break}return t}}var LX,DX=R(()=>{"use strict";o(L6t,"createBaseFor");LX=L6t});var D6t,am,w5=R(()=>{"use strict";DX();D6t=LX(),am=D6t});function N6t(e,t){if(t)return e.slice();var r=e.length,n=MX?MX(r):new e.constructor(r);return e.copy(n),n}var IX,RX,R6t,NX,MX,T5,w9=R(()=>{"use strict";Io();IX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,RX=IX&&typeof module=="object"&&module&&!module.nodeType&&module,R6t=RX&&RX.exports===IX,NX=R6t?si.Buffer:void 0,MX=NX?NX.allocUnsafe:void 0;o(N6t,"cloneBuffer");T5=N6t});var M6t,sm,T9=R(()=>{"use strict";Io();M6t=si.Uint8Array,sm=M6t});function I6t(e){var t=new e.constructor(e.byteLength);return new sm(t).set(new sm(e)),t}var om,k5=R(()=>{"use strict";T9();o(I6t,"cloneArrayBuffer");om=I6t});function O6t(e,t){var r=t?om(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var E5,k9=R(()=>{"use strict";k5();o(O6t,"cloneTypedArray");E5=O6t});function P6t(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r{"use strict";o(P6t,"copyArray");C5=P6t});var OX,B6t,PX,BX=R(()=>{"use strict";eo();OX=Object.create,B6t=function(){function e(){}return o(e,"object"),function(t){if(!xn(t))return{};if(OX)return OX(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}(),PX=B6t});function F6t(e,t){return function(r){return e(t(r))}}var S5,C9=R(()=>{"use strict";o(F6t,"overArg");S5=F6t});var z6t,lm,A5=R(()=>{"use strict";C9();z6t=S5(Object.getPrototypeOf,Object),lm=z6t});function G6t(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||$6t;return e===r}var $6t,xc,cm=R(()=>{"use strict";$6t=Object.prototype;o(G6t,"isPrototype");xc=G6t});function V6t(e){return typeof e.constructor=="function"&&!xc(e)?PX(lm(e)):{}}var _5,S9=R(()=>{"use strict";BX();A5();cm();o(V6t,"initCloneObject");_5=V6t});function U6t(e){return e!=null&&typeof e=="object"}var ti,Po=R(()=>{"use strict";o(U6t,"isObjectLike");ti=U6t});function W6t(e){return ti(e)&&ga(e)==H6t}var H6t,A9,FX=R(()=>{"use strict";Au();Po();H6t="[object Arguments]";o(W6t,"baseIsArguments");A9=W6t});var zX,Y6t,q6t,X6t,_l,um=R(()=>{"use strict";FX();Po();zX=Object.prototype,Y6t=zX.hasOwnProperty,q6t=zX.propertyIsEnumerable,X6t=A9(function(){return arguments}())?A9:function(e){return ti(e)&&Y6t.call(e,"callee")&&!q6t.call(e,"callee")},_l=X6t});var j6t,Le,Hn=R(()=>{"use strict";j6t=Array.isArray,Le=j6t});function Q6t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=K6t}var K6t,hm,L5=R(()=>{"use strict";K6t=9007199254740991;o(Q6t,"isLength");hm=Q6t});function Z6t(e){return e!=null&&hm(e.length)&&!Si(e)}var oi,Bo=R(()=>{"use strict";uv();L5();o(Z6t,"isArrayLike");oi=Z6t});function J6t(e){return ti(e)&&oi(e)}var Sd,D5=R(()=>{"use strict";Bo();Po();o(J6t,"isArrayLikeObject");Sd=J6t});function tCt(){return!1}var $X,GX=R(()=>{"use strict";o(tCt,"stubFalse");$X=tCt});var HX,VX,eCt,UX,rCt,nCt,Ll,fm=R(()=>{"use strict";Io();GX();HX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,VX=HX&&typeof module=="object"&&module&&!module.nodeType&&module,eCt=VX&&VX.exports===HX,UX=eCt?si.Buffer:void 0,rCt=UX?UX.isBuffer:void 0,nCt=rCt||$X,Ll=nCt});function cCt(e){if(!ti(e)||ga(e)!=iCt)return!1;var t=lm(e);if(t===null)return!0;var r=oCt.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&WX.call(r)==lCt}var iCt,aCt,sCt,WX,oCt,lCt,YX,qX=R(()=>{"use strict";Au();A5();Po();iCt="[object Object]",aCt=Function.prototype,sCt=Object.prototype,WX=aCt.toString,oCt=sCt.hasOwnProperty,lCt=WX.call(Object);o(cCt,"isPlainObject");YX=cCt});function ICt(e){return ti(e)&&hm(e.length)&&!!$n[ga(e)]}var uCt,hCt,fCt,dCt,pCt,mCt,gCt,yCt,vCt,xCt,bCt,wCt,TCt,kCt,ECt,CCt,SCt,ACt,_Ct,LCt,DCt,RCt,NCt,MCt,$n,XX,jX=R(()=>{"use strict";Au();L5();Po();uCt="[object Arguments]",hCt="[object Array]",fCt="[object Boolean]",dCt="[object Date]",pCt="[object Error]",mCt="[object Function]",gCt="[object Map]",yCt="[object Number]",vCt="[object Object]",xCt="[object RegExp]",bCt="[object Set]",wCt="[object String]",TCt="[object WeakMap]",kCt="[object ArrayBuffer]",ECt="[object DataView]",CCt="[object Float32Array]",SCt="[object Float64Array]",ACt="[object Int8Array]",_Ct="[object Int16Array]",LCt="[object Int32Array]",DCt="[object Uint8Array]",RCt="[object Uint8ClampedArray]",NCt="[object Uint16Array]",MCt="[object Uint32Array]",$n={};$n[CCt]=$n[SCt]=$n[ACt]=$n[_Ct]=$n[LCt]=$n[DCt]=$n[RCt]=$n[NCt]=$n[MCt]=!0;$n[uCt]=$n[hCt]=$n[kCt]=$n[fCt]=$n[ECt]=$n[dCt]=$n[pCt]=$n[mCt]=$n[gCt]=$n[yCt]=$n[vCt]=$n[xCt]=$n[bCt]=$n[wCt]=$n[TCt]=!1;o(ICt,"baseIsTypedArray");XX=ICt});function OCt(e){return function(t){return e(t)}}var Fo,Ad=R(()=>{"use strict";o(OCt,"baseUnary");Fo=OCt});var KX,yv,PCt,_9,BCt,zo,vv=R(()=>{"use strict";p9();KX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yv=KX&&typeof module=="object"&&module&&!module.nodeType&&module,PCt=yv&&yv.exports===KX,_9=PCt&&y5.process,BCt=function(){try{var e=yv&&yv.require&&yv.require("util").types;return e||_9&&_9.binding&&_9.binding("util")}catch{}}(),zo=BCt});var QX,FCt,Fh,xv=R(()=>{"use strict";jX();Ad();vv();QX=zo&&zo.isTypedArray,FCt=QX?Fo(QX):XX,Fh=FCt});function zCt(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var bv,L9=R(()=>{"use strict";o(zCt,"safeGet");bv=zCt});function VCt(e,t,r){var n=e[t];(!(GCt.call(e,t)&&Oo(n,r))||r===void 0&&!(t in e))&&vc(e,t,r)}var $Ct,GCt,bc,dm=R(()=>{"use strict";im();Ed();$Ct=Object.prototype,GCt=$Ct.hasOwnProperty;o(VCt,"assignValue");bc=VCt});function UCt(e,t,r,n){var i=!r;r||(r={});for(var a=-1,s=t.length;++a{"use strict";dm();im();o(UCt,"copyObject");$o=UCt});function HCt(e,t){for(var r=-1,n=Array(e);++r{"use strict";o(HCt,"baseTimes");ZX=HCt});function qCt(e,t){var r=typeof e;return t=t??WCt,!!t&&(r=="number"||r!="symbol"&&YCt.test(e))&&e>-1&&e%1==0&&e{"use strict";WCt=9007199254740991,YCt=/^(?:0|[1-9]\d*)$/;o(qCt,"isIndex");zh=qCt});function KCt(e,t){var r=Le(e),n=!r&&_l(e),i=!r&&!n&&Ll(e),a=!r&&!n&&!i&&Fh(e),s=r||n||i||a,l=s?ZX(e.length,String):[],u=l.length;for(var h in e)(t||jCt.call(e,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||zh(h,u)))&&l.push(h);return l}var XCt,jCt,R5,D9=R(()=>{"use strict";JX();um();Hn();fm();wv();xv();XCt=Object.prototype,jCt=XCt.hasOwnProperty;o(KCt,"arrayLikeKeys");R5=KCt});function QCt(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var tj,ej=R(()=>{"use strict";o(QCt,"nativeKeysIn");tj=QCt});function tSt(e){if(!xn(e))return tj(e);var t=xc(e),r=[];for(var n in e)n=="constructor"&&(t||!JCt.call(e,n))||r.push(n);return r}var ZCt,JCt,rj,nj=R(()=>{"use strict";eo();cm();ej();ZCt=Object.prototype,JCt=ZCt.hasOwnProperty;o(tSt,"baseKeysIn");rj=tSt});function eSt(e){return oi(e)?R5(e,!0):rj(e)}var Es,$h=R(()=>{"use strict";D9();nj();Bo();o(eSt,"keysIn");Es=eSt});function rSt(e){return $o(e,Es(e))}var ij,aj=R(()=>{"use strict";_d();$h();o(rSt,"toPlainObject");ij=rSt});function nSt(e,t,r,n,i,a,s){var l=bv(e,r),u=bv(t,r),h=s.get(u);if(h){gv(e,r,h);return}var f=a?a(l,u,r+"",e,t,s):void 0,d=f===void 0;if(d){var p=Le(u),m=!p&&Ll(u),g=!p&&!m&&Fh(u);f=u,p||m||g?Le(l)?f=l:Sd(l)?f=C5(l):m?(d=!1,f=T5(u,!0)):g?(d=!1,f=E5(u,!0)):f=[]:YX(u)||_l(u)?(f=l,_l(l)?f=ij(l):(!xn(l)||Si(l))&&(f=_5(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),gv(e,r,f)}var sj,oj=R(()=>{"use strict";b9();w9();k9();E9();S9();um();Hn();D5();fm();uv();eo();qX();xv();L9();aj();o(nSt,"baseMergeDeep");sj=nSt});function lj(e,t,r,n,i){e!==t&&am(t,function(a,s){if(i||(i=new yc),xn(a))sj(e,t,s,r,lj,n,i);else{var l=n?n(bv(e,s),a,s+"",e,t,i):void 0;l===void 0&&(l=a),gv(e,s,l)}},Es)}var cj,uj=R(()=>{"use strict";mv();b9();w5();oj();eo();$h();L9();o(lj,"baseMerge");cj=lj});function iSt(e){return e}var na,Du=R(()=>{"use strict";o(iSt,"identity");na=iSt});function aSt(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var hj,fj=R(()=>{"use strict";o(aSt,"apply");hj=aSt});function sSt(e,t,r){return t=dj(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=dj(n.length-t,0),s=Array(a);++i{"use strict";fj();dj=Math.max;o(sSt,"overRest");N5=sSt});function oSt(e){return function(){return e}}var Cs,N9=R(()=>{"use strict";o(oSt,"constant");Cs=oSt});var lSt,pj,mj=R(()=>{"use strict";N9();x9();Du();lSt=nm?function(e,t){return nm(e,"toString",{configurable:!0,enumerable:!1,value:Cs(t),writable:!0})}:na,pj=lSt});function fSt(e){var t=0,r=0;return function(){var n=hSt(),i=uSt-(n-r);if(r=n,i>0){if(++t>=cSt)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var cSt,uSt,hSt,gj,yj=R(()=>{"use strict";cSt=800,uSt=16,hSt=Date.now;o(fSt,"shortOut");gj=fSt});var dSt,M5,M9=R(()=>{"use strict";mj();yj();dSt=gj(pj),M5=dSt});function pSt(e,t){return M5(N5(e,t,na),e+"")}var wc,pm=R(()=>{"use strict";Du();R9();M9();o(pSt,"baseRest");wc=pSt});function mSt(e,t,r){if(!xn(r))return!1;var n=typeof t;return(n=="number"?oi(r)&&zh(t,r.length):n=="string"&&t in r)?Oo(r[t],e):!1}var ro,Ld=R(()=>{"use strict";Ed();Bo();wv();eo();o(mSt,"isIterateeCall");ro=mSt});function gSt(e){return wc(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=e.length>3&&typeof a=="function"?(i--,a):void 0,s&&ro(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++n{"use strict";pm();Ld();o(gSt,"createAssigner");I5=gSt});var ySt,Gh,O9=R(()=>{"use strict";uj();I9();ySt=I5(function(e,t,r){cj(e,t,r)}),Gh=ySt});function mm(e,t){if(!e)return t;let r=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return vSt[r]??t}function TSt(e,t){let r=e.trim();if(r)return t.securityLevel!=="loose"?(0,bj.sanitizeUrl)(r):r}function kj(e,t){return!e||!t?0:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function ESt(e){let t,r=0;e.forEach(i=>{r+=kj(i,t),t=i});let n=r/2;return F9(e,n)}function CSt(e){return e.length===1?e[0]:ESt(e)}function ASt(e,t,r){let n=structuredClone(r);V.info("our points",n),t!=="start_left"&&t!=="start_right"&&n.reverse();let i=25+e,a=F9(n,i),s=10+e*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return t==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):t==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):t==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function gm(e){let t="",r="";for(let n of e)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":t=t+n+";");return{style:t,labelStyle:r}}function _St(e){let t="",r="0123456789abcdef",n=r.length;for(let i=0;i{"use strict";bj=Qi(Qp(),1);ur();hr();US();ce();jf();yp();v9();O9();l4();B9="\u200B",vSt={curveBasis:Ts,curveBasisClosed:n5,curveBasisOpen:i5,curveBumpX:q_,curveBumpY:X_,curveBundle:j_,curveCardinalClosed:Q_,curveCardinalOpen:J_,curveCardinal:K_,curveCatmullRomClosed:r9,curveCatmullRomOpen:n9,curveCatmullRom:e9,curveLinear:Cu,curveLinearClosed:c5,curveMonotoneX:a9,curveMonotoneY:s9,curveNatural:h5,curveStep:d5,curveStepAfter:l9,curveStepBefore:o9},xSt=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,bSt=o(function(e,t){let r=wj(e,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);bp(s),n=Vn(n,[...s])}else n=r.args;if(!n)return;let i=gp(e,t),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),wj=o(function(e,t=null){try{let r=new RegExp(`[%]{2}(?![{]${xSt.source})(?=[}][%]{2}).* +`,"ig");e=e.trim().replace(r,"").replace(/'/gm,'"'),V.debug(`Detecting diagram directive${t!==null?" type:"+t:""} based on the text:${e}`);let n,i=[];for(;(n=qf.exec(e))!==null;)if(n.index===qf.lastIndex&&qf.lastIndex++,n&&!t||t&&n[1]?.match(t)||t&&n[2]?.match(t)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:e,args:null}:i.length===1?i[0]:i}catch(r){return V.error(`ERROR: ${r.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}},"detectDirective"),Tj=o(function(e){return e.replace(qf,"")},"removeDirectives"),wSt=o(function(e,t){for(let[r,n]of t.entries())if(n.match(e))return r;return-1},"isSubstringInArray");o(mm,"interpolateToCurve");o(TSt,"formatUrl");kSt=o((e,...t)=>{let r=e.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,t);return Math.round(e*r)/r},"roundNumber"),F9=o((e,t)=>{let r,n=t;for(let i of e){if(r){let a=kj(i,r);if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:vj((1-s)*r.x+s*i.x,5),y:vj((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),SSt=o((e,t,r)=>{V.info(`our points ${JSON.stringify(t)}`),t[0]!==r&&(t=t.reverse());let i=F9(t,25),a=e?10:5,s=Math.atan2(t[0].y-i.y,t[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(t[0].x+i.x)/2,l.y=-Math.cos(s)*a+(t[0].y+i.y)/2,l},"calcCardinalityPosition");o(ASt,"calcTerminalLabelPosition");o(gm,"getStylesFromArray");xj=0,z9=o(()=>(xj++,"id-"+Math.random().toString(36).substr(2,12)+"-"+xj),"generateId");o(_St,"makeRandomHex");$9=o(e=>_St(e.length),"random"),LSt=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),DSt=o(function(e,t){let r=t.text.replace(Yt.lineBreakRegex," "),[,n]=Tc(t.fontSize),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.style("text-anchor",t.anchor),i.style("font-family",t.fontFamily),i.style("font-size",n),i.style("font-weight",t.fontWeight),i.attr("fill",t.fill),t.class!==void 0&&i.attr("class",t.class);let a=i.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.attr("fill",t.fill),a.text(r),i},"drawSimpleText"),G9=em((e,t,r)=>{if(!e||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
        "},r),Yt.lineBreakRegex.test(e)))return e;let n=e.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=Dl(`${s} `,r),h=Dl(a,r);if(u>t){let{hyphenatedStrings:p,remainingWord:m}=RSt(s,t,"-",r);i.push(a,...p),a=m}else h+u>=t?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(e,t,r)=>`${e}${t}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),RSt=em((e,t,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...e],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(Dl(h,n)>=t){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(e,t,r="-",n)=>`${e}${t}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(P5,"calculateTextHeight");o(Dl,"calculateTextWidth");V9=em((e,t)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=t;if(!e)return{width:0,height:0};let[,a]=Tc(r),s=["sans-serif",n],l=e.split(Yt.lineBreakRegex),u=[],h=Gt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=LSt();v.text=y||B9;let x=DSt(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`),P9=class{constructor(t=!1,r){this.count=0;this.count=r?r.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},NSt=o(function(e){return O5=O5||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),O5.innerHTML=e,unescape(O5.textContent)},"entityDecode");o(U9,"isDetailedError");MSt=o((e,t,r,n)=>{if(!n)return;let i=e.node()?.getBBox();i&&e.append("text").text(n).attr("x",i.x+i.width/2).attr("y",-r).attr("class",t)},"insertTitle"),Tc=o(e=>{if(typeof e=="number")return[e,e+"px"];let t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]},"parseFontSize");o(Ss,"cleanAndMerge");Oe={assignWithDepth:Vn,wrapLabel:G9,calculateTextHeight:P5,calculateTextWidth:Dl,calculateTextDimensions:V9,cleanAndMerge:Ss,detectInit:bSt,detectDirective:wj,isSubstringInArray:wSt,interpolateToCurve:mm,calcLabelPosition:CSt,calcCardinalityPosition:SSt,calcTerminalLabelPosition:ASt,formatUrl:TSt,getStylesFromArray:gm,generateId:z9,random:$9,runFunc:kSt,entityDecode:NSt,insertTitle:MSt,parseFontSize:Tc,InitIDGenerator:P9},Ej=o(function(e){let t=e;return t=t.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),t=t.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),t},"encodeEntities"),no=o(function(e){return e.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),B5=o((e,t,{counter:r=0,prefix:n,suffix:i})=>`${n?`${n}_`:""}${e}_${t}_${r}${i?`_${i}`:""}`,"getEdgeId")});function Rl(e,t,r,n,i){if(!t[e].width)if(r)t[e].text=G9(t[e].text,i,n),t[e].textLines=t[e].text.split(Yt.lineBreakRegex).length,t[e].width=i,t[e].height=P5(t[e].text,n);else{let a=t[e].text.split(Yt.lineBreakRegex);t[e].textLines=a.length;let s=0;t[e].height=0,t[e].width=0;for(let l of a)t[e].width=Math.max(Dl(l,n),t[e].width),s=P5(l,n),t[e].height=t[e].height+s}}function Lj(e,t,r,n,i){let a=new G5(i);a.data.widthLimit=r.data.widthLimit/Math.min(H9,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&$e.wrap,f=F5($e);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Rl("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=F5($e);Rl("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=F5($e);g.fontSize=g.fontSize-2,Rl("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%H9===0){let g=r.data.startx+$e.diagramMarginX,y=r.data.stopy+$e.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+$e.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&_j(a,e,d,p),t=l.alias;let m=i.db.getBoundarys(t);m.length>0&&Lj(e,t,a,m,i),l.alias!=="global"&&Aj(e,l,a),r.data.stopy=Math.max(a.data.stopy+$e.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+$e.c4ShapeMargin,r.data.stopx),z5=Math.max(z5,r.data.stopx),$5=Math.max($5,r.data.stopy)}}var z5,$5,Sj,H9,$e,G5,W9,Tv,F5,ISt,Aj,_j,As,Cj,OSt,PSt,BSt,Y9,Dj=R(()=>{"use strict";ur();Cq();ce();LS();hr();j7();Ue();yp();_r();Jn();z5=0,$5=0,Sj=4,H9=2;ty.yy=Ty;$e={},G5=class{static{o(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,W9(t.db.getConfig())}setData(t,r,n,i){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(t,r,n,i){t[r]===void 0?t[r]=n:t[r]=i(n,t[r])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+t.margin*2,n=r+t.width,i=this.nextData.starty+t.margin*2,a=i+t.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>Sj)&&(r=this.nextData.startx+t.margin+$e.nextLinePaddingX,i=this.nextData.stopy+t.margin*2,this.nextData.stopx=n=r+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+t.height,this.nextData.cnt=1),t.x=r,t.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},W9(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},W9=o(function(e){Vn($e,e),e.fontFamily&&($e.personFontFamily=$e.systemFontFamily=$e.messageFontFamily=e.fontFamily),e.fontSize&&($e.personFontSize=$e.systemFontSize=$e.messageFontSize=e.fontSize),e.fontWeight&&($e.personFontWeight=$e.systemFontWeight=$e.messageFontWeight=e.fontWeight)},"setConf"),Tv=o((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"c4ShapeFont"),F5=o(e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),"boundaryFont"),ISt=o(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont");o(Rl,"calcC4ShapeTextWH");Aj=o(function(e,t,r){t.x=r.data.startx,t.y=r.data.starty,t.width=r.data.stopx-r.data.startx,t.height=r.data.stopy-r.data.starty,t.label.y=$e.c4ShapeMargin-35;let n=t.wrap&&$e.wrap,i=F5($e);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=Dl(t.label.text,i);Rl("label",t,n,i,a),Al.drawBoundary(e,t,$e)},"drawBoundary"),_j=o(function(e,t,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=Tv($e,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=Dl("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=$e.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&$e.wrap,h=$e.width-$e.c4ShapePadding*2,f=Tv($e,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Rl("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=Tv($e,s.typeC4Shape.text);Rl("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=Tv($e,s.techn.text);Rl("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=Tv($e,s.typeC4Shape.text);Rl("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+$e.c4ShapePadding,s.width=Math.max(s.width||$e.width,p,$e.width),s.height=Math.max(s.height||$e.height,d,$e.height),s.margin=s.margin||$e.c4ShapeMargin,e.insert(s),Al.drawC4Shape(t,s,$e)}e.bumpLastMargin($e.c4ShapeMargin)},"drawC4ShapeArray"),As=class{static{o(this,"Point")}constructor(t,r){this.x=t,this.y=r}},Cj=o(function(e,t){let r=e.x,n=e.y,i=t.x,a=t.y,s=r+e.width/2,l=n+e.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=e.height/e.width,p=null;return n==a&&ri?p=new As(r,l):r==i&&na&&(p=new As(s,n)),r>i&&n=f?p=new As(r,l+f*e.width/2):p=new As(s-u/h*e.height/2,n+e.height):r=f?p=new As(r+e.width,l+f*e.width/2):p=new As(s+u/h*e.height/2,n+e.height):ra?d>=f?p=new As(r+e.width,l-f*e.width/2):p=new As(s+e.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new As(r,l-e.width/2*f):p=new As(s-e.height/2*u/h,n)),p},"getIntersectPoint"),OSt=o(function(e,t){let r={x:0,y:0};r.x=t.x+t.width/2,r.y=t.y+t.height/2;let n=Cj(e,r);r.x=e.x+e.width/2,r.y=e.y+e.height/2;let i=Cj(t,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),PSt=o(function(e,t,r,n){let i=0;for(let a of t){i=i+1;let s=a.wrap&&$e.wrap,l=ISt($e);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=Dl(a.label.text,l);Rl("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=Dl(a.techn.text,l),Rl("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=Dl(a.descr.text,l),Rl("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=OSt(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}Al.drawRels(e,t,$e)},"drawRels");o(Lj,"drawInsideBoundary");BSt=o(function(e,t,r,n){$e=pt().c4;let i=pt().securityLevel,a;i==="sandbox"&&(a=Gt("#i"+t));let s=i==="sandbox"?Gt(a.nodes()[0].contentDocument.body):Gt("body"),l=n.db;n.db.setWrap($e.wrap),Sj=l.getC4ShapeInRow(),H9=l.getC4BoundaryInRow(),V.debug(`C:${JSON.stringify($e,null,2)}`);let u=i==="sandbox"?s.select(`[id="${t}"]`):Gt(`[id="${t}"]`);Al.insertComputerIcon(u),Al.insertDatabaseIcon(u),Al.insertClockIcon(u);let h=new G5(n);h.setData($e.diagramMarginX,$e.diagramMarginX,$e.diagramMarginY,$e.diagramMarginY),h.data.widthLimit=screen.availWidth,z5=$e.diagramMarginX,$5=$e.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundarys("");Lj(u,"",h,d,n),Al.insertArrowHead(u),Al.insertArrowEnd(u),Al.insertArrowCrossHead(u),Al.insertArrowFilledHead(u),PSt(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=z5,h.data.stopy=$5;let p=h.data,g=p.stopy-p.starty+2*$e.diagramMarginY,v=p.stopx-p.startx+2*$e.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*$e.diagramMarginX).attr("y",p.starty+$e.diagramMarginY),Pr(u,g,v,$e.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-$e.diagramMarginX+" -"+($e.diagramMarginY+x)+" "+v+" "+(g+x)),V.debug("models:",p)},"draw"),Y9={drawPersonOrSystemArray:_j,drawBoundary:Aj,setConf:W9,draw:BSt}});var FSt,Rj,Nj=R(()=>{"use strict";FSt=o(e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,"getStyles"),Rj=FSt});var Mj={};xr(Mj,{diagram:()=>zSt});var zSt,Ij=R(()=>{"use strict";LS();j7();Dj();Nj();zSt={parser:t$,db:Ty,renderer:Y9,styles:Rj,init:o(({c4:e,wrap:t})=>{Y9.setConf(e),Ty.setWrap(t)},"init")}});function Zj(e){return typeof e>"u"||e===null}function USt(e){return typeof e=="object"&&e!==null}function HSt(e){return Array.isArray(e)?e:Zj(e)?[]:[e]}function WSt(e,t){var r,n,i,a;if(t)for(a=Object.keys(t),r=0,n=a.length;rl&&(a=" ... ",t=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+e.slice(t,r).replace(/\t/g,"\u2192")+s,pos:n-t+a.length}}function X9(e,t){return Fi.repeat(" ",t-e.length)+e}function t7t(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(e.buffer);)i.push(a.index),n.push(a.index+a[0].length),e.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(e.line+t.linesAfter,i.length).toString().length,d=t.maxLength-(t.indent+f+3);for(u=1;u<=t.linesBefore&&!(s-u<0);u++)h=q9(e.buffer,n[s-u],i[s-u],e.position-(n[s]-n[s-u]),d),l=Fi.repeat(" ",t.indent)+X9((e.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=q9(e.buffer,n[s],i[s],e.position,d),l+=Fi.repeat(" ",t.indent)+X9((e.line+1).toString(),f)+" | "+h.str+` +`,l+=Fi.repeat("-",t.indent+f+3+h.pos)+`^ +`,u=1;u<=t.linesAfter&&!(s+u>=i.length);u++)h=q9(e.buffer,n[s+u],i[s+u],e.position-(n[s]-n[s+u]),d),l+=Fi.repeat(" ",t.indent)+X9((e.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function i7t(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function a7t(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(r7t.indexOf(r)===-1)throw new _s('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=i7t(t.styleAliases||null),n7t.indexOf(this.kind)===-1)throw new _s('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}function Bj(e,t){var r=[];return e[t].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function s7t(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,r;function n(i){i.multi?(e.multi[i.kind].push(i),e.multi.fallback.push(i)):e[i.kind][i.tag]=e.fallback[i.tag]=i}for(o(n,"collectType"),t=0,r=arguments.length;t=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:r*parseFloat(t,10)}function R7t(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Fi.isNegativeZero(e))return"-0.0";return r=e.toString(10),D7t.test(r)?r.replace("e",".e"):r}function N7t(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Fi.isNegativeZero(e))}function O7t(e){return e===null?!1:eK.exec(e)!==null||rK.exec(e)!==null}function P7t(e){var t,r,n,i,a,s,l,u=0,h=null,f,d,p;if(t=eK.exec(e),t===null&&(t=rK.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(r,n,i));if(a=+t[4],s=+t[5],l=+t[6],t[7]){for(u=t[7].slice(0,3);u.length<3;)u+="0";u=+u}return t[9]&&(f=+t[10],d=+(t[11]||0),h=(f*60+d)*6e4,t[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function B7t(e){return e.toISOString()}function z7t(e){return e==="<<"||e===null}function G7t(e){if(e===null)return!1;var t,r,n=0,i=e.length,a=eL;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8===0}function V7t(e){var t,r,n=e.replace(/[\r\n=]/g,""),i=n.length,a=eL,s=0,l=[];for(t=0;t>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(t));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function U7t(e){var t="",r=0,n,i,a=e.length,s=eL;for(n=0;n>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]),r=(r<<8)+e[n];return i=a%3,i===0?(t+=s[r>>18&63],t+=s[r>>12&63],t+=s[r>>6&63],t+=s[r&63]):i===2?(t+=s[r>>10&63],t+=s[r>>4&63],t+=s[r<<2&63],t+=s[64]):i===1&&(t+=s[r>>2&63],t+=s[r<<4&63],t+=s[64],t+=s[64]),t}function H7t(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}function X7t(e){if(e===null)return!0;var t=[],r,n,i,a,s,l=e;for(r=0,n=l.length;r>10)+55296,(e-65536&1023)+56320)}function dAt(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||nK,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function uK(e,t){var r={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return r.snippet=e7t(r),new _s(t,r)}function je(e,t){throw uK(e,t)}function H5(e,t){e.onWarning&&e.onWarning.call(null,uK(e,t))}function Vh(e,t,r,n){var i,a,s,l;if(t1&&(e.result+=Fi.repeat(` +`,t-1))}function pAt(e,t,r){var n,i,a,s,l,u,h,f,d=e.kind,p=e.result,m;if(m=e.input.charCodeAt(e.position),Ls(m)||vm(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=e.input.charCodeAt(e.position+1),Ls(i)||r&&vm(i)))return!1;for(e.kind="scalar",e.result="",a=s=e.position,l=!1;m!==0;){if(m===58){if(i=e.input.charCodeAt(e.position+1),Ls(i)||r&&vm(i))break}else if(m===35){if(n=e.input.charCodeAt(e.position-1),Ls(n))break}else{if(e.position===e.lineStart&&q5(e)||r&&vm(m))break;if(kc(m))if(u=e.line,h=e.lineStart,f=e.lineIndent,Ai(e,!1,-1),e.lineIndent>=t){l=!0,m=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=u,e.lineStart=h,e.lineIndent=f;break}}l&&(Vh(e,a,s,!1),nL(e,e.line-u),a=s=e.position,l=!1),Rd(m)||(s=e.position+1),m=e.input.charCodeAt(++e.position)}return Vh(e,a,s,!1),e.result?!0:(e.kind=d,e.result=p,!1)}function mAt(e,t){var r,n,i;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(Vh(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)n=e.position,e.position++,i=e.position;else return!0;else kc(r)?(Vh(e,n,i,!0),nL(e,Ai(e,!1,t)),n=i=e.position):e.position===e.lineStart&&q5(e)?je(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);je(e,"unexpected end of the stream within a single quoted scalar")}function gAt(e,t){var r,n,i,a,s,l;if(l=e.input.charCodeAt(e.position),l!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;(l=e.input.charCodeAt(e.position))!==0;){if(l===34)return Vh(e,r,e.position,!0),e.position++,!0;if(l===92){if(Vh(e,r,e.position,!0),l=e.input.charCodeAt(++e.position),kc(l))Ai(e,!1,t);else if(l<256&&lK[l])e.result+=cK[l],e.position++;else if((s=uAt(l))>0){for(i=s,a=0;i>0;i--)l=e.input.charCodeAt(++e.position),(s=cAt(l))>=0?a=(a<<4)+s:je(e,"expected hexadecimal character");e.result+=fAt(a),e.position++}else je(e,"unknown escape sequence");r=n=e.position}else kc(l)?(Vh(e,r,n,!0),nL(e,Ai(e,!1,t)),r=n=e.position):e.position===e.lineStart&&q5(e)?je(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}je(e,"unexpected end of the stream within a double quoted scalar")}function yAt(e,t){var r=!0,n,i,a,s=e.tag,l,u=e.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=e.input.charCodeAt(e.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=l),b=e.input.charCodeAt(++e.position);b!==0;){if(Ai(e,!0,t),b=e.input.charCodeAt(e.position),b===f)return e.position++,e.tag=s,e.anchor=u,e.kind=m?"mapping":"sequence",e.result=l,!0;r?b===44&&je(e,"expected the node content, but found ','"):je(e,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=e.input.charCodeAt(e.position+1),Ls(h)&&(d=p=!0,e.position++,Ai(e,!0,t))),n=e.line,i=e.lineStart,a=e.position,bm(e,t,V5,!1,!0),v=e.tag,y=e.result,Ai(e,!0,t),b=e.input.charCodeAt(e.position),(p||e.line===n)&&b===58&&(d=!0,b=e.input.charCodeAt(++e.position),Ai(e,!0,t),bm(e,t,V5,!1,!0),x=e.result),m?xm(e,l,g,v,y,x,n,i,a):d?l.push(xm(e,null,g,v,y,x,n,i,a)):l.push(y),Ai(e,!0,t),b=e.input.charCodeAt(e.position),b===44?(r=!0,b=e.input.charCodeAt(++e.position)):r=!1}je(e,"unexpected end of the stream within a flow collection")}function vAt(e,t){var r,n,i=j9,a=!1,s=!1,l=t,u=0,h=!1,f,d;if(d=e.input.charCodeAt(e.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)j9===i?i=d===43?Fj:aAt:je(e,"repeat of a chomping mode identifier");else if((f=hAt(d))>=0)f===0?je(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?je(e,"repeat of an indentation width identifier"):(l=t+f-1,s=!0);else break;if(Rd(d)){do d=e.input.charCodeAt(++e.position);while(Rd(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!kc(d)&&d!==0)}for(;d!==0;){for(rL(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!s||e.lineIndentl&&(l=e.lineIndent),kc(d)){u++;continue}if(e.lineIndentt)&&u!==0)je(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(v&&(s=e.line,l=e.lineStart,u=e.position),bm(e,t,U5,!0,i)&&(v?g=e.result:y=e.result),v||(xm(e,d,p,m,g,y,s,l,u),m=g=y=null),Ai(e,!0,-1),b=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>t)&&b!==0)je(e,"bad indentation of a mapping entry");else if(e.lineIndentt?u=1:e.lineIndent===t?u=0:e.lineIndentt?u=1:e.lineIndent===t?u=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,p=e.implicitTypes.length;d"),e.result!==null&&g.kind!==e.kind&&je(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+g.kind+'", not "'+e.kind+'"'),g.resolve(e.result,e.tag)?(e.result=g.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):je(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||f}function kAt(e){var t=e.position,r,n,i,a=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(Ai(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(a=!0,s=e.input.charCodeAt(++e.position),r=e.position;s!==0&&!Ls(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(r,e.position),i=[],n.length<1&&je(e,"directive name must not be less than one character in length");s!==0;){for(;Rd(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!kc(s));break}if(kc(s))break;for(r=e.position;s!==0&&!Ls(s);)s=e.input.charCodeAt(++e.position);i.push(e.input.slice(r,e.position))}s!==0&&rL(e),Uh.call(Gj,n)?Gj[n](e,n,i):H5(e,'unknown document directive "'+n+'"')}if(Ai(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,Ai(e,!0,-1)):a&&je(e,"directives end mark is expected"),bm(e,e.lineIndent-1,U5,!1,!0),Ai(e,!0,-1),e.checkLineBreaks&&oAt.test(e.input.slice(t,e.position))&&H5(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&q5(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,Ai(e,!0,-1));return}if(e.position"u"&&(r=t,t=null);var n=hK(e,r);if(typeof t!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&t+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function bK(e){var t=/^\n* /;return t.test(e)}function JAt(e,t,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=QAt(kv(e,0))&&ZAt(kv(e,e.length-1));if(t||s)for(u=0;u=65536?u+=2:u++){if(h=kv(e,u),!Av(h))return ym;y=y&&Yj(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=kv(e,u),h===Cv)d=!0,m&&(p=p||u-g-1>n&&e[g+1]!==" ",g=u);else if(!Av(h))return ym;y=y&&Yj(h,f,l),f=h}p=p||m&&u-g-1>n&&e[g+1]!==" "}return!d&&!p?y&&!s&&!i(e)?wK:a===Sv?ym:J9:r>9&&bK(e)?ym:s?a===Sv?ym:J9:p?kK:TK}function t8t(e,t,r,n,i){e.dump=function(){if(t.length===0)return e.quotingType===Sv?'""':"''";if(!e.noCompatMode&&(HAt.indexOf(t)!==-1||WAt.test(t)))return e.quotingType===Sv?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,r),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=n||e.flowLevel>-1&&r>=e.flowLevel;function u(h){return KAt(e,h)}switch(o(u,"testAmbiguity"),JAt(t,l,e.indent,s,u,e.quotingType,e.forceQuotes&&!n,i)){case wK:return t;case J9:return"'"+t.replace(/'/g,"''")+"'";case TK:return"|"+qj(t,e.indent)+Xj(Hj(t,a));case kK:return">"+qj(t,e.indent)+Xj(Hj(e8t(t,s),a));case ym:return'"'+r8t(t)+'"';default:throw new _s("impossible error: invalid scalar style")}}()}function qj(e,t){var r=bK(e)?String(t):"",n=e[e.length-1]===` +`,i=n&&(e[e.length-2]===` +`||e===` +`),a=i?"+":n?"":"-";return r+a+` +`}function Xj(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function e8t(e,t){for(var r=/(\n+)([^\n]*)/g,n=function(){var h=e.indexOf(` +`);return h=h!==-1?h:e.length,r.lastIndex=h,jj(e.slice(0,h),t)}(),i=e[0]===` +`||e[0]===" ",a,s;s=r.exec(e);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+jj(u,t),i=a}return n}function jj(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(e);)l=n.index,l-i>t&&(a=s>i?s:l,u+=` +`+e.slice(i,a),i=a+1),s=l;return u+=` +`,e.length-i>t&&s>i?u+=e.slice(i,s)+` +`+e.slice(s+1):u+=e.slice(i),u.slice(1)}function r8t(e){for(var t="",r=0,n,i=0;i=65536?i+=2:i++)r=kv(e,i),n=Pa[r],!n&&Av(r)?(t+=e[i],r>=65536&&(t+=e[i+1])):t+=n||qAt(r);return t}function n8t(e,t,r){var n="",i=e.tag,a,s,l;for(a=0,s=r.length;a"u"&&Ru(e,t,null,!1,!1))&&(n!==""&&(n+=","+(e.condenseFlow?"":" ")),n+=e.dump);e.tag=i,e.dump="["+n+"]"}function Kj(e,t,r,n){var i="",a=e.tag,s,l,u;for(s=0,l=r.length;s"u"&&Ru(e,t+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=Z9(e,t)),e.dump&&Cv===e.dump.charCodeAt(0)?i+="-":i+="- ",i+=e.dump);e.tag=a,e.dump=i||"[]"}function i8t(e,t,r){var n="",i=e.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ru(e,t,h,!1,!1)&&(f+=e.dump,n+=f));e.tag=i,e.dump="{"+n+"}"}function a8t(e,t,r,n){var i="",a=e.tag,s=Object.keys(r),l,u,h,f,d,p;if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys=="function")s.sort(e.sortKeys);else if(e.sortKeys)throw new _s("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(e.dump&&Cv===e.dump.charCodeAt(0)?p+="?":p+="? "),p+=e.dump,d&&(p+=Z9(e,t)),Ru(e,t+1,f,!0,d)&&(e.dump&&Cv===e.dump.charCodeAt(0)?p+=":":p+=": ",p+=e.dump,i+=p));e.tag=a,e.dump=i||"{}"}function Qj(e,t,r){var n,i,a,s,l,u;for(i=r?e.explicitTypes:e.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');e.dump=n}return!0}return!1}function Ru(e,t,r,n,i,a,s){e.tag=null,e.dump=r,Qj(e,r,!1)||Qj(e,r,!0);var l=dK.call(e.dump),u=n,h;n&&(n=e.flowLevel<0||e.flowLevel>t);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=e.duplicates.indexOf(r),p=d!==-1),(e.tag!==null&&e.tag!=="?"||p||e.indent!==2&&t>0)&&(i=!1),p&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(f&&p&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(e.dump).length!==0?(a8t(e,t,e.dump,i),p&&(e.dump="&ref_"+d+e.dump)):(i8t(e,t,e.dump),p&&(e.dump="&ref_"+d+" "+e.dump));else if(l==="[object Array]")n&&e.dump.length!==0?(e.noArrayIndent&&!s&&t>0?Kj(e,t-1,e.dump,i):Kj(e,t,e.dump,i),p&&(e.dump="&ref_"+d+e.dump)):(n8t(e,t,e.dump),p&&(e.dump="&ref_"+d+" "+e.dump));else if(l==="[object String]")e.tag!=="?"&&t8t(e,e.dump,t,a,u);else{if(l==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new _s("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(h=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",e.dump=h+" "+e.dump)}return!0}function s8t(e,t){var r=[],n=[],i,a;for(tL(e,r,n),i=0,a=n.length;i{"use strict";o(Zj,"isNothing");o(USt,"isObject");o(HSt,"toArray");o(WSt,"extend");o(YSt,"repeat");o(qSt,"isNegativeZero");XSt=Zj,jSt=USt,KSt=HSt,QSt=YSt,ZSt=qSt,JSt=WSt,Fi={isNothing:XSt,isObject:jSt,toArray:KSt,repeat:QSt,isNegativeZero:ZSt,extend:JSt};o(Jj,"formatError");o(Ev,"YAMLException$1");Ev.prototype=Object.create(Error.prototype);Ev.prototype.constructor=Ev;Ev.prototype.toString=o(function(t){return this.name+": "+Jj(this,t)},"toString");_s=Ev;o(q9,"getLine");o(X9,"padStart");o(t7t,"makeSnippet");e7t=t7t,r7t=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],n7t=["scalar","sequence","mapping"];o(i7t,"compileStyleAliases");o(a7t,"Type$1");Oa=a7t;o(Bj,"compileList");o(s7t,"compileMap");o(K9,"Schema$1");K9.prototype.extend=o(function(t){var r=[],n=[];if(t instanceof Oa)n.push(t);else if(Array.isArray(t))n=n.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(r=r.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit));else throw new _s("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof Oa))throw new _s("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new _s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new _s("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof Oa))throw new _s("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(K9.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=Bj(i,"implicit"),i.compiledExplicit=Bj(i,"explicit"),i.compiledTypeMap=s7t(i.compiledImplicit,i.compiledExplicit),i},"extend");o7t=K9,l7t=new Oa("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(e){return e!==null?e:""},"construct")}),c7t=new Oa("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(e){return e!==null?e:[]},"construct")}),u7t=new Oa("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(e){return e!==null?e:{}},"construct")}),h7t=new o7t({explicit:[l7t,c7t,u7t]});o(f7t,"resolveYamlNull");o(d7t,"constructYamlNull");o(p7t,"isNull");m7t=new Oa("tag:yaml.org,2002:null",{kind:"scalar",resolve:f7t,construct:d7t,predicate:p7t,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(g7t,"resolveYamlBoolean");o(y7t,"constructYamlBoolean");o(v7t,"isBoolean");x7t=new Oa("tag:yaml.org,2002:bool",{kind:"scalar",resolve:g7t,construct:y7t,predicate:v7t,represent:{lowercase:o(function(e){return e?"true":"false"},"lowercase"),uppercase:o(function(e){return e?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(e){return e?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(b7t,"isHexCode");o(w7t,"isOctCode");o(T7t,"isDecCode");o(k7t,"resolveYamlInteger");o(E7t,"constructYamlInteger");o(C7t,"isInteger");S7t=new Oa("tag:yaml.org,2002:int",{kind:"scalar",resolve:k7t,construct:E7t,predicate:C7t,represent:{binary:o(function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},"binary"),octal:o(function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},"octal"),decimal:o(function(e){return e.toString(10)},"decimal"),hexadecimal:o(function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),A7t=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(_7t,"resolveYamlFloat");o(L7t,"constructYamlFloat");D7t=/^[-+]?[0-9]+e/;o(R7t,"representYamlFloat");o(N7t,"isFloat");M7t=new Oa("tag:yaml.org,2002:float",{kind:"scalar",resolve:_7t,construct:L7t,predicate:N7t,represent:R7t,defaultStyle:"lowercase"}),tK=h7t.extend({implicit:[m7t,x7t,S7t,M7t]}),I7t=tK,eK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),rK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(O7t,"resolveYamlTimestamp");o(P7t,"constructYamlTimestamp");o(B7t,"representYamlTimestamp");F7t=new Oa("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:O7t,construct:P7t,instanceOf:Date,represent:B7t});o(z7t,"resolveYamlMerge");$7t=new Oa("tag:yaml.org,2002:merge",{kind:"scalar",resolve:z7t}),eL=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(G7t,"resolveYamlBinary");o(V7t,"constructYamlBinary");o(U7t,"representYamlBinary");o(H7t,"isBinary");W7t=new Oa("tag:yaml.org,2002:binary",{kind:"scalar",resolve:G7t,construct:V7t,predicate:H7t,represent:U7t}),Y7t=Object.prototype.hasOwnProperty,q7t=Object.prototype.toString;o(X7t,"resolveYamlOmap");o(j7t,"constructYamlOmap");K7t=new Oa("tag:yaml.org,2002:omap",{kind:"sequence",resolve:X7t,construct:j7t}),Q7t=Object.prototype.toString;o(Z7t,"resolveYamlPairs");o(J7t,"constructYamlPairs");tAt=new Oa("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Z7t,construct:J7t}),eAt=Object.prototype.hasOwnProperty;o(rAt,"resolveYamlSet");o(nAt,"constructYamlSet");iAt=new Oa("tag:yaml.org,2002:set",{kind:"mapping",resolve:rAt,construct:nAt}),nK=I7t.extend({implicit:[F7t,$7t],explicit:[W7t,K7t,tAt,iAt]}),Uh=Object.prototype.hasOwnProperty,V5=1,iK=2,aK=3,U5=4,j9=1,aAt=2,Fj=3,sAt=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,oAt=/[\x85\u2028\u2029]/,lAt=/[,\[\]\{\}]/,sK=/^(?:!|!!|![a-z\-]+!)$/i,oK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(zj,"_class");o(kc,"is_EOL");o(Rd,"is_WHITE_SPACE");o(Ls,"is_WS_OR_EOL");o(vm,"is_FLOW_INDICATOR");o(cAt,"fromHexCode");o(uAt,"escapedHexLen");o(hAt,"fromDecimalCode");o($j,"simpleEscapeSequence");o(fAt,"charFromCodepoint");lK=new Array(256),cK=new Array(256);for(Dd=0;Dd<256;Dd++)lK[Dd]=$j(Dd)?1:0,cK[Dd]=$j(Dd);o(dAt,"State$1");o(uK,"generateError");o(je,"throwError");o(H5,"throwWarning");Gj={YAML:o(function(t,r,n){var i,a,s;t.version!==null&&je(t,"duplication of %YAML directive"),n.length!==1&&je(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&je(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&je(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=s<2,s!==1&&s!==2&&H5(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(t,r,n){var i,a;n.length!==2&&je(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],sK.test(i)||je(t,"ill-formed tag handle (first argument) of the TAG directive"),Uh.call(t.tagMap,i)&&je(t,'there is a previously declared suffix for "'+i+'" tag handle'),oK.test(a)||je(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{je(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a},"handleTagDirective")};o(Vh,"captureSegment");o(Vj,"mergeMappings");o(xm,"storeMappingPair");o(rL,"readLineBreak");o(Ai,"skipSeparationSpace");o(q5,"testDocumentSeparator");o(nL,"writeFoldedLines");o(pAt,"readPlainScalar");o(mAt,"readSingleQuotedScalar");o(gAt,"readDoubleQuotedScalar");o(yAt,"readFlowCollection");o(vAt,"readBlockScalar");o(Uj,"readBlockSequence");o(xAt,"readBlockMapping");o(bAt,"readTagProperty");o(wAt,"readAnchorProperty");o(TAt,"readAlias");o(bm,"composeNode");o(kAt,"readDocument");o(hK,"loadDocuments");o(EAt,"loadAll$1");o(CAt,"load$1");SAt=EAt,AAt=CAt,fK={loadAll:SAt,load:AAt},dK=Object.prototype.toString,pK=Object.prototype.hasOwnProperty,iL=65279,_At=9,Cv=10,LAt=13,DAt=32,RAt=33,NAt=34,Q9=35,MAt=37,IAt=38,OAt=39,PAt=42,mK=44,BAt=45,W5=58,FAt=61,zAt=62,$At=63,GAt=64,gK=91,yK=93,VAt=96,vK=123,UAt=124,xK=125,Pa={};Pa[0]="\\0";Pa[7]="\\a";Pa[8]="\\b";Pa[9]="\\t";Pa[10]="\\n";Pa[11]="\\v";Pa[12]="\\f";Pa[13]="\\r";Pa[27]="\\e";Pa[34]='\\"';Pa[92]="\\\\";Pa[133]="\\N";Pa[160]="\\_";Pa[8232]="\\L";Pa[8233]="\\P";HAt=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],WAt=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(YAt,"compileStyleMap");o(qAt,"encodeHex");XAt=1,Sv=2;o(jAt,"State");o(Hj,"indentString");o(Z9,"generateNextLine");o(KAt,"testImplicitResolving");o(Y5,"isWhitespace");o(Av,"isPrintable");o(Wj,"isNsCharOrWhitespace");o(Yj,"isPlainSafe");o(QAt,"isPlainSafeFirst");o(ZAt,"isPlainSafeLast");o(kv,"codePointAt");o(bK,"needIndentIndicator");wK=1,J9=2,TK=3,kK=4,ym=5;o(JAt,"chooseScalarStyle");o(t8t,"writeScalar");o(qj,"blockHeader");o(Xj,"dropEndingNewline");o(e8t,"foldString");o(jj,"foldLine");o(r8t,"escapeString");o(n8t,"writeFlowSequence");o(Kj,"writeBlockSequence");o(i8t,"writeFlowMapping");o(a8t,"writeBlockMapping");o(Qj,"detectType");o(Ru,"writeNode");o(s8t,"getDuplicateReferences");o(tL,"inspectNode");o(o8t,"dump$1");l8t=o8t,c8t={dump:l8t};o(aL,"renamed");X5=tK,j5=fK.load,LEe=fK.loadAll,DEe=c8t.dump,REe=aL("safeLoad","load"),NEe=aL("safeLoadAll","loadAll"),MEe=aL("safeDump","dump")});function lL(e){let t=[];for(let r of e){let n=Lv.get(r);n?.styles&&(t=[...t,...n.styles??[]].map(i=>i.trim())),n?.textStyles&&(t=[...t,...n.textStyles??[]].map(i=>i.trim()))}return t}var u8t,CK,wm,Hh,Ds,Lv,Nu,cL,uL,K5,oL,Go,Q5,Z5,J5,tw,h8t,f8t,d8t,p8t,m8t,g8t,y8t,hL,v8t,x8t,b8t,SK,w8t,T8t,fL,AK,_K,k8t,LK,E8t,C8t,S8t,A8t,_8t,_v,DK,RK,L8t,D8t,NK,R8t,N8t,M8t,I8t,O8t,MK,IK,P8t,B8t,F8t,z8t,$8t,G8t,ew,dL=R(()=>{"use strict";ur();_r();Ue();hr();ce();sL();Ci();u8t="flowchart-",CK=0,wm=pt(),Hh=new Map,Ds=[],Lv=new Map,Nu=[],cL=new Map,uL=new Map,K5=0,oL=!0,Z5=[],J5=o(e=>Yt.sanitizeText(e,wm),"sanitizeText"),tw=o(function(e){for(let t of Hh.values())if(t.id===e)return t.domId;return e},"lookUpDomId"),h8t=o(function(e,t,r,n,i,a,s={},l){if(!e||e.trim().length===0)return;let u,h=Hh.get(e);if(h===void 0&&(h={id:e,labelType:"text",domId:u8t+e+"-"+CK,styles:[],classes:[]},Hh.set(e,h)),CK++,t!==void 0?(wm=pt(),u=J5(t.text.trim()),h.labelType=t.type,u.startsWith('"')&&u.endsWith('"')&&(u=u.substring(1,u.length-1)),h.text=u):h.text===void 0&&(h.text=e),r!==void 0&&(h.type=r),n?.forEach(function(f){h.styles.push(f)}),i?.forEach(function(f){h.classes.push(f)}),a!==void 0&&(h.dir=a),h.props===void 0?h.props=s:s!==void 0&&Object.assign(h.props,s),l!==void 0){let f;l.includes(` +`)?f=l+` +`:f=`{ +`+l+` +}`;let d=j5(f,{schema:X5});if(d.shape&&(d.shape!==d.shape.toLowerCase()||d.shape.includes("_")))throw new Error(`No such shape: ${d.shape}. Shape names should be lowercase.`);d?.shape&&(h.type=d?.shape),d?.label&&(h.text=d?.label),d?.icon&&(h.icon=d?.icon,!d.label?.trim()&&h.text===e&&(h.text="")),d?.form&&(h.form=d?.form),d?.pos&&(h.pos=d?.pos),d?.img&&(h.img=d?.img,!d.label?.trim()&&h.text===e&&(h.text="")),d?.constraint&&(h.constraint=d.constraint),d.w&&(h.assetWidth=Number(d.w)),d.h&&(h.assetHeight=Number(d.h))}},"addVertex"),f8t=o(function(e,t,r){let a={start:e,end:t,type:void 0,text:"",labelType:"text"};V.info("abc78 Got edge...",a);let s=r.text;if(s!==void 0&&(a.text=J5(s.text.trim()),a.text.startsWith('"')&&a.text.endsWith('"')&&(a.text=a.text.substring(1,a.text.length-1)),a.labelType=s.type),r!==void 0&&(a.type=r.type,a.stroke=r.stroke,a.length=r.length>10?10:r.length),Ds.length<(wm.maxEdges??500))V.info("Pushing edge..."),Ds.push(a);else throw new Error(`Edge limit exceeded. ${Ds.length} edges found, but the limit is ${wm.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},"addSingleLink"),d8t=o(function(e,t,r){V.info("addLink",e,t,r);for(let n of e)for(let i of t)f8t(n,i,r)},"addLink"),p8t=o(function(e,t){e.forEach(function(r){r==="default"?Ds.defaultInterpolate=t:Ds[r].interpolate=t})},"updateLinkInterpolate"),m8t=o(function(e,t){e.forEach(function(r){if(typeof r=="number"&&r>=Ds.length)throw new Error(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${Ds.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);r==="default"?Ds.defaultStyle=t:(Ds[r].style=t,(Ds[r]?.style?.length??0)>0&&!Ds[r]?.style?.some(n=>n?.startsWith("fill"))&&Ds[r]?.style?.push("fill:none"))})},"updateLink"),g8t=o(function(e,t){e.split(",").forEach(function(r){let n=Lv.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},Lv.set(r,n)),t?.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)})})},"addClass"),y8t=o(function(e){Go=e,/.*/.exec(Go)&&(Go="LR"),/.*v/.exec(Go)&&(Go="TB"),Go==="TD"&&(Go="TB")},"setDirection"),hL=o(function(e,t){for(let r of e.split(",")){let n=Hh.get(r);n&&n.classes.push(t);let i=cL.get(r);i&&i.classes.push(t)}},"setClass"),v8t=o(function(e,t){if(t!==void 0){t=J5(t);for(let r of e.split(","))uL.set(Q5==="gen-1"?tw(r):r,t)}},"setTooltip"),x8t=o(function(e,t,r){let n=tw(e);if(pt().securityLevel!=="loose"||t===void 0)return;let i=[];if(typeof r=="string"){i=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s")),i.classed("hover",!0)}).on("mouseout",function(){t.transition().duration(500).style("opacity",0),Gt(this).classed("hover",!1)})},"setupToolTips");Z5.push(LK);E8t=o(function(e="gen-1"){Hh=new Map,Lv=new Map,Ds=[],Z5=[LK],Nu=[],cL=new Map,K5=0,uL=new Map,oL=!0,Q5=e,wm=pt(),Ar()},"clear"),C8t=o(e=>{Q5=e||"gen-2"},"setGen"),S8t=o(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),A8t=o(function(e,t,r){let n=e.text.trim(),i=r.text;e===r&&/\s/.exec(r.text)&&(n=void 0);function a(h){let f={boolean:{},number:{},string:{}},d=[],p;return{nodeList:h.filter(function(g){let y=typeof g;return g.stmt&&g.stmt==="dir"?(p=g.value,!1):g.trim()===""?!1:y in f?f[y].hasOwnProperty(g)?!1:f[y][g]=!0:d.includes(g)?!1:d.push(g)}),dir:p}}o(a,"uniq");let{nodeList:s,dir:l}=a(t.flat());if(Q5==="gen-1")for(let h=0;h2e3)return{result:!1,count:0};if(DK[_v]=t,Nu[t].id===e)return{result:!0,count:0};let n=0,i=1;for(;n=0){let s=RK(e,a);if(s.result)return{result:!0,count:i+s.count};i=i+s.count}n=n+1}return{result:!1,count:i}},"indexNodes2"),L8t=o(function(e){return DK[e]},"getDepthFirstPos"),D8t=o(function(){_v=-1,Nu.length>0&&RK("none",Nu.length-1)},"indexNodes"),NK=o(function(){return Nu},"getSubGraphs"),R8t=o(()=>oL?(oL=!1,!0):!1,"firstGraph"),N8t=o(e=>{let t=e.trim(),r="arrow_open";switch(t[0]){case"<":r="arrow_point",t=t.slice(1);break;case"x":r="arrow_cross",t=t.slice(1);break;case"o":r="arrow_circle",t=t.slice(1);break}let n="normal";return t.includes("=")&&(n="thick"),t.includes(".")&&(n="dotted"),{type:r,stroke:n}},"destructStartLink"),M8t=o((e,t)=>{let r=t.length,n=0;for(let i=0;i{let t=e.trim(),r=t.slice(0,-1),n="arrow_open";switch(t.slice(-1)){case"x":n="arrow_cross",t.startsWith("x")&&(n="double_"+n,r=r.slice(1));break;case">":n="arrow_point",t.startsWith("<")&&(n="double_"+n,r=r.slice(1));break;case"o":n="arrow_circle",t.startsWith("o")&&(n="double_"+n,r=r.slice(1));break}let i="normal",a=r.length-1;r.startsWith("=")&&(i="thick"),r.startsWith("~")&&(i="invisible");let s=M8t(".",r);return s&&(i="dotted",a=s),{type:n,stroke:i,length:a}},"destructEndLink"),O8t=o((e,t)=>{let r=I8t(e),n;if(t){if(n=N8t(t),n.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=r.type;else{if(n.type!==r.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=r.length,n}return r},"destructLink"),MK=o((e,t)=>{for(let r of e)if(r.nodes.includes(t))return!0;return!1},"exists"),IK=o((e,t)=>{let r=[];return e.nodes.forEach((n,i)=>{MK(t,n)||r.push(e.nodes[i])}),{nodes:r}},"makeUniq"),P8t={firstGraph:R8t},B8t=o(e=>e.img?"imageSquare":e.icon?e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon":e.type==="square"?"squareRect":e.type==="round"?"roundedRect":e.type??"squareRect","getTypeFromVertex"),F8t=o((e,t)=>e.find(r=>r.id===t),"findNode"),z8t=o(e=>{let t="none",r="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":r=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":t=e.replace("double_",""),r=t;break}return{arrowTypeStart:t,arrowTypeEnd:r}},"destructEdgeType"),$8t=o((e,t,r,n,i,a)=>{let s=r.get(e.id),l=n.get(e.id)??!1,u=F8t(t,e.id);u?(u.cssStyles=e.styles,u.cssCompiledStyles=lL(e.classes),u.cssClasses=e.classes.join(" ")):t.push({id:e.id,label:e.text,labelStyle:"",parentId:s,padding:i.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:lL(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),shape:B8t(e),dir:e.dir,domId:e.domId,isGroup:l,look:a,link:e.link,linkTarget:e.linkTarget,tooltip:SK(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint})},"addNodeFromVertex");o(lL,"getCompiledStyles");G8t=o(()=>{let e=pt(),t=[],r=[],n=NK(),i=new Map,a=new Map;for(let u=n.length-1;u>=0;u--){let h=n[u];h.nodes.length>0&&a.set(h.id,!0);for(let f of h.nodes)i.set(f,h.id)}for(let u=n.length-1;u>=0;u--){let h=n[u];t.push({id:h.id,label:h.title,labelStyle:"",parentId:i.get(h.id),padding:8,cssCompiledStyles:lL(h.classes),cssClasses:h.classes.join(" "),shape:"rect",dir:h.dir,isGroup:!0,look:e.look})}AK().forEach(u=>{$8t(u,t,i,a,e,e.look||"classic")});let l=_K();return l.forEach((u,h)=>{let{arrowTypeStart:f,arrowTypeEnd:d}=z8t(u.type),p=[...l.defaultStyle??[]];u.style&&p.push(...u.style);let m={id:B5(u.start,u.end,{counter:h,prefix:"L"}),start:u.start,end:u.end,type:u.type??"normal",label:u.text,labelpos:"c",thickness:u.stroke,minlen:u.length,classes:u?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:u?.stroke==="invisible"?"none":f,arrowTypeEnd:u?.stroke==="invisible"?"none":d,arrowheadStyle:"fill: #333",labelStyle:p,style:p,pattern:u.stroke,look:e.look};r.push(m)}),{nodes:t,edges:r,other:{},config:e}},"getData"),ew={defaultConfig:o(()=>X4.flowchart,"defaultConfig"),setAccTitle:Mr,getAccTitle:Br,getAccDescription:zr,getData:G8t,setAccDescription:Fr,addVertex:h8t,lookUpDomId:tw,addLink:d8t,updateLinkInterpolate:p8t,updateLink:m8t,addClass:g8t,setDirection:y8t,setClass:hL,setTooltip:v8t,getTooltip:SK,setClickEvent:w8t,setLink:b8t,bindFunctions:T8t,getDirection:fL,getVertices:AK,getEdges:_K,getClasses:k8t,clear:E8t,setGen:C8t,defaultStyle:S8t,addSubGraph:A8t,getDepthFirstPos:L8t,indexNodes:D8t,getSubGraphs:NK,destructLink:O8t,lex:P8t,exists:MK,makeUniq:IK,setDiagramTitle:cn,getDiagramTitle:Jr}});var rw,pL=R(()=>{"use strict";ur();rw=o((e,t)=>{let r;return t==="sandbox"&&(r=Gt("#i"+e)),(t==="sandbox"?Gt(r.nodes()[0].contentDocument.body):Gt("body")).select(`[id="${e}"]`)},"getDiagramElement")});var io,Nd=R(()=>{"use strict";io=o(({flowchart:e})=>{let t=e?.subGraphTitleMargin?.top??0,r=e?.subGraphTitleMargin?.bottom??0,n=t+r;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});function mL(e,t,r){if(e&&e.length){let[n,i]=t,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of e){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function V8t(e,t){return e[0]===t[0]&&e[1]===t[1]}function U8t(e,t,r,n=1){let i=r,a=Math.max(t,.1),s=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,l=[0,0];if(i)for(let h of s)mL(h,l,i);let u=function(h,f,d){let p=[];for(let b of h){let w=[...b];V8t(w[0],w[w.length-1])||w.push([w[0][0],w[0][1]]),w.length>2&&p.push(w)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let w=0;wb.yminw.ymin?1:b.xw.x?1:b.ymax===w.ymax?0:(b.ymax-w.ymax)/Math.abs(b.ymax-w.ymax)),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let w=0;wv);w++)b=w;g.splice(0,b+1).forEach(w=>{y.push({s:v,edge:w})})}if(y=y.filter(b=>!(b.edge.ymax<=v)),y.sort((b,w)=>b.edge.x===w.edge.x?0:(b.edge.x-w.edge.x)/Math.abs(b.edge.x-w.edge.x)),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let S=y[b].edge,T=y[w].edge;m.push([[Math.round(S.x),v],[Math.round(T.x),v]])}v+=d,y.forEach(b=>{b.edge.x=b.edge.x+d*b.edge.islope}),x++}return m}(s,a,n);if(i){for(let h of s)mL(h,l,-i);(function(h,f,d){let p=[];h.forEach(m=>p.push(...m)),mL(p,f,d)})(u,l,-i)}return u}function Mv(e,t){var r;let n=t.hachureAngle+90,i=t.hachureGap;i<0&&(i=4*t.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),U8t(e,i,n,a||1)}function hw(e){let t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}function yL(e,t){return e.type===t}function RL(e){let t=[],r=function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:H8t,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:gL,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:OK,text:""},l}(e),n="BOD",i=0,a=r[i];for(;!yL(a,OK);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return RL("M0,0"+e);i++,s=nw[a.text],n=a.text}else yL(a,gL)?s=nw[n]:(i++,s=nw[a.text],n=a.text);if(!(i+sf%2?h+r:h+t);a.push({key:"C",data:u}),t=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),t=l[2],r=l[3];break;case"q":{let u=l.map((h,f)=>f%2?h+r:h+t);a.push({key:"Q",data:u}),t=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),t=l[5],r=l[6];break;case"a":t+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],t,r]});break;case"H":a.push({key:"H",data:[...l]}),t=l[0];break;case"h":t+=l[0],a.push({key:"H",data:[t]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),t=l[2],r=l[3];break;case"s":{let u=l.map((h,f)=>f%2?h+r:h+t);a.push({key:"S",data:u}),t=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),t=l[0],r=l[1];break;case"t":t+=l[0],r+=l[1],a.push({key:"T",data:[t,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),t=n,r=i}return a}function HK(e){let t=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of e){switch(h){case"M":t.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":t.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":t.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],t.push({key:"L",data:[n,i]});break;case"V":i=f[0],t.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),t.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;t.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;t.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(t.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(WK(n,i,v,x,d,p,m,g,y).forEach(function(b){t.push({key:"C",data:b})}),n=v,i=x);break}case"Z":t.push({key:"Z",data:[]}),n=a,i=s}r=h}return t}function Dv(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function WK(e,t,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[e,t]=Dv(e,t,-f),[r,n]=Dv(r,n,-f);let I=(e-r)/2,C=(t-n)/2,O=I*I/(i*i)+C*C/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let D=i*i,P=a*a,F=D*P-D*C*C-P*I*I,B=D*C*C+P*I*I,G=(l===u?-1:1)*Math.sqrt(Math.abs(F/B));y=G*i*C/a+(e+r)/2,v=G*-a*I/i+(t+n)/2,m=Math.asin(parseFloat(((t-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),eg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let I=g,C=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=WK(r=y+i*Math.cos(g),n=v+a*Math.sin(g),C,O,i,a,s,0,u,[g,I,y,v])}x=g-m;let b=Math.cos(m),w=Math.sin(m),S=Math.cos(g),T=Math.sin(g),E=Math.tan(x/4),_=4/3*i*E,A=4/3*a*E,L=[e,t],M=[e+_*w,t-A*b],N=[r+_*T,n-A*S],k=[r,n];if(M[0]=2*L[0]-M[0],M[1]=2*L[1]-M[1],h)return[M,N,k].concat(p);{p=[M,N,k].concat(p);let I=[];for(let C=0;C2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=GK(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=GK(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Wh(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Wh(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function FK(e,t){let r=HK(UK(RL(e))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Wh(a[0],a[1],l[0],l[1],t)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...q8t(u,h,f,d,p,m,a,t)),a=[p,m];break}case"Z":n.push(...Wh(a[0],a[1],i[0],i[1],t)),a=[i[0],i[1]]}return{type:"path",ops:n}}function vL(e,t){let r=[];for(let n of e)if(n.length){let i=t.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+nr(i,t),n[0][1]+nr(i,t)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*XK(i),m=i.bowing*i.maxRandomnessOffset*(n-t)/200,g=i.bowing*i.maxRandomnessOffset*(e-r)/200;m=nr(m,i,h),g=nr(g,i,h);let y=[],v=o(()=>nr(d,i,h),"M"),x=o(()=>nr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[e+(b?0:v()),t+(b?0:v())]}):y.push({op:"move",data:[e+(b?0:nr(f,i,h)),t+(b?0:nr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+e+(r-e)*p+v(),g+t+(n-t)*p+v(),m+e+2*(r-e)*p+v(),g+t+2*(n-t)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+e+(r-e)*p+x(),g+t+(n-t)*p+x(),m+e+2*(r-e)*p+x(),g+t+2*(n-t)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function iw(e,t,r){if(!e.length)return[];let n=[];n.push([e[0][0]+nr(t,r),e[0][1]+nr(t,r)]),n.push([e[0][0]+nr(t,r),e[0][1]+nr(t,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[e[1][0],e[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(e[t+3])}else{let u=e[t+0],h=e[t+1],f=e[t+2],d=e[t+3],p=Md(u,h,.5),m=Md(h,f,.5),g=Md(f,d,.5),y=Md(p,m,.5),v=Md(m,g,.5),x=Md(y,v,.5);_L([u,p,y,x],0,r,i),_L([x,v,g,d],0,r,i)}var a,s;return i}function j8t(e,t){return uw(e,0,e.length,t)}function uw(e,t,r,n,i){let a=i||[],s=e[t],l=e[r-1],u=0,h=1;for(let f=t+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(uw(e,t,h+1,n,a),uw(e,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function xL(e,t=.15,r){let n=[],i=(e.length-1)/3;for(let a=0;a0?uw(n,0,n.length,r):n}var Nv,bL,wL,TL,kL,EL,Rs,CL,H8t,gL,OK,nw,W8t,ao,km,LL,aw,DL,Kt,Qe=R(()=>{"use strict";o(mL,"t");o(V8t,"e");o(U8t,"s");o(Mv,"n");Nv=class{static{o(this,"o")}constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){let n=Mv(t,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(t,r){let n=[];for(let i of t)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(hw,"a");bL=class extends Nv{static{o(this,"h")}fillPolygons(t,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=Mv(t,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)hw([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},wL=class extends Nv{static{o(this,"r")}fillPolygons(t,r){let n=this._fillPolygons(t,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(t,i);return n.ops=n.ops.concat(a.ops),n}},TL=class{static{o(this,"i")}constructor(t){this.helper=t}fillPolygons(t,r){let n=Mv(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(t,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of t){let u=hw(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=hw(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=hw(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(_=0,A=2*Math.PI);let L=(A-_)/b.curveStepCount,M=[];for(let N=_;N<=A;N+=L)M.push([w+T*Math.cos(N),S+E*Math.sin(N)]);return M.push([w+T*Math.cos(A),S+E*Math.sin(A)]),M.push([w,S]),Tm([M],b)}(t,r,n,i,a,s,h));return h.stroke!==ao&&f.push(d),this._d("arc",f,h)}curve(t,r){let n=this._o(r),i=[],a=PK(t,n);if(n.fill&&n.fill!==ao)if(n.fillStyle==="solid"){let s=PK(t,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=t;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...xL(VK([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...xL(VK(h),10,(1+n.roughness)/2))}s.length&&i.push(Tm([s],n))}return n.stroke!==ao&&i.push(a),this._d("curve",i,n)}polygon(t,r){let n=this._o(r),i=[],a=sw(t,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(vL([t],n)):i.push(Tm([t],n))),n.stroke!==ao&&i.push(a),this._d("polygon",i,n)}path(t,r){let n=this._o(r),i=[];if(!t)return this._d("path",i,n);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==ao,s=n.stroke!==ao,l=!!(n.simplification&&n.simplification<1),u=function(f,d,p){let m=HK(UK(RL(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...xL(x,d)),x=[]},"i"),w=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:T,data:E}of m)switch(T){case"M":w(),v=[E[0],E[1]],y.push(v);break;case"L":b(),y.push([E[0],E[1]]);break;case"C":if(!x.length){let _=y.length?y[y.length-1]:v;x.push([_[0],_[1]])}x.push([E[0],E[1]]),x.push([E[2],E[3]]),x.push([E[4],E[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(w(),!p)return g;let S=[];for(let T of g){let E=j8t(T,p);E.length&&S.push(E)}return S}(t,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=FK(t,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=FK(t,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(vL(u,n));else i.push(Tm(u,n));return s&&(l?u.forEach(f=>{i.push(sw(f,!1,n))}):i.push(h)),this._d("path",i,n)}opsToPath(t,r){let n="";for(let i of t.ops){let a=typeof r=="number"&&r>=0?i.data.map(s=>+s.toFixed(r)):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(t){let r=t.sets||[],n=t.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:ao};break;case"fillPath":s={d:this.opsToPath(a),stroke:ao,strokeWidth:0,fill:n.fill||ao};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(t,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||ao,strokeWidth:n,fill:ao}}_mergedShape(t){return t.filter((r,n)=>n===0||r.op!=="move")}},LL=class{static{o(this,"st")}constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new km(r)}draw(t){let r=t.sets||[],n=t.options||this.getDefaultOptions(),i=this.ctx,a=t.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(t,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),t.save(),n.fillLineDash&&t.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(t.lineDashOffset=n.fillLineDashOffset),t.strokeStyle=n.fill||"",t.lineWidth=i,this._drawToContext(t,r,n.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,n,i="nonzero"){t.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map(l=>+l.toFixed(n)):a.data;switch(a.op){case"move":t.moveTo(s[0],s[1]);break;case"bcurveTo":t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":t.lineTo(s[0],s[1])}}r.type==="fillPath"?t.fill(i):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,n,i,a){let s=this.gen.line(t,r,n,i,a);return this.draw(s),s}rectangle(t,r,n,i,a){let s=this.gen.rectangle(t,r,n,i,a);return this.draw(s),s}ellipse(t,r,n,i,a){let s=this.gen.ellipse(t,r,n,i,a);return this.draw(s),s}circle(t,r,n,i){let a=this.gen.circle(t,r,n,i);return this.draw(a),a}linearPath(t,r){let n=this.gen.linearPath(t,r);return this.draw(n),n}polygon(t,r){let n=this.gen.polygon(t,r);return this.draw(n),n}arc(t,r,n,i,a,s,l=!1,u){let h=this.gen.arc(t,r,n,i,a,s,l,u);return this.draw(h),h}curve(t,r){let n=this.gen.curve(t,r);return this.draw(n),n}path(t,r){let n=this.gen.path(t,r);return this.draw(n),n}},aw="http://www.w3.org/2000/svg",DL=class{static{o(this,"ot")}constructor(t,r){this.svg=t,this.gen=new km(r)}draw(t){let r=t.sets||[],n=t.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(aw,"g"),s=t.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(aw,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(aw,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(t,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=t.createElementNS(aw,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,n,i,a){let s=this.gen.line(t,r,n,i,a);return this.draw(s)}rectangle(t,r,n,i,a){let s=this.gen.rectangle(t,r,n,i,a);return this.draw(s)}ellipse(t,r,n,i,a){let s=this.gen.ellipse(t,r,n,i,a);return this.draw(s)}circle(t,r,n,i){let a=this.gen.circle(t,r,n,i);return this.draw(a)}linearPath(t,r){let n=this.gen.linearPath(t,r);return this.draw(n)}polygon(t,r){let n=this.gen.polygon(t,r);return this.draw(n)}arc(t,r,n,i,a,s,l=!1,u){let h=this.gen.arc(t,r,n,i,a,s,l,u);return this.draw(h)}curve(t,r){let n=this.gen.curve(t,r);return this.draw(n)}path(t,r){let n=this.gen.path(t,r);return this.draw(n)}},Kt={canvas:o((e,t)=>new LL(e,t),"canvas"),svg:o((e,t)=>new DL(e,t),"svg"),generator:o(e=>new km(e),"generator"),newSeed:o(()=>km.newSeed(),"newSeed")}});function IL(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function tQ(e){Od=e}function so(e,t){if(t){if(eQ.test(e))return e.replace(K8t,jK)}else if(rQ.test(e))return e.replace(Q8t,jK);return e}function t_t(e){return e.replace(J8t,(t,r)=>(r=r.toLowerCase(),r==="colon"?":":r.charAt(0)==="#"?r.charAt(1)==="x"?String.fromCharCode(parseInt(r.substring(2),16)):String.fromCharCode(+r.substring(1)):""))}function fn(e,t){let r=typeof e=="string"?e:e.source;t=t||"";let n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(e_t,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,t),"getRegex")};return n}function KK(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}function QK(e,t){let r=e.replace(/\|/g,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(/ \|/),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length{let a=i.match(/^\s+/);if(a===null)return i;let[s]=a;return s.length>=n.length?i.slice(n.length):i}).join(` +`)}function tn(e,t){return Id.parse(e,t)}var Od,eQ,K8t,rQ,Q8t,Z8t,jK,J8t,e_t,Pv,Cm,i_t,a_t,s_t,Fv,o_t,nQ,iQ,OL,l_t,PL,c_t,u_t,pw,BL,h_t,aQ,f_t,FL,JK,d_t,p_t,sQ,m_t,oQ,g_t,zv,y_t,v_t,x_t,b_t,w_t,T_t,k_t,E_t,C_t,dw,S_t,lQ,cQ,A_t,zL,__t,NL,L_t,fw,Ov,Mu,Sm,Bv,Iu,Em,ML,Id,KEe,QEe,ZEe,JEe,t6e,e6e,r6e,uQ=R(()=>{"use strict";o(IL,"_getDefaults");Od=IL();o(tQ,"changeDefaults");eQ=/[&<>"']/,K8t=new RegExp(eQ.source,"g"),rQ=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Q8t=new RegExp(rQ.source,"g"),Z8t={"&":"&","<":"<",">":">",'"':""","'":"'"},jK=o(e=>Z8t[e],"getEscapeReplacement");o(so,"escape$1");J8t=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;o(t_t,"unescape");e_t=/(^|[^\[])\^/g;o(fn,"edit");o(KK,"cleanUrl");Pv={exec:o(()=>null,"exec")};o(QK,"splitCells");o(Iv,"rtrim");o(r_t,"findClosingBracket");o(ZK,"outputLink");o(n_t,"indentCodeCompensation");Cm=class{static{o(this,"_Tokenizer")}options;rules;lexer;constructor(t){this.options=t||Od}space(t){let r=this.rules.block.newline.exec(t);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(t){let r=this.rules.block.code.exec(t);if(r){let n=r[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Iv(n,` +`)}}}fences(t){let r=this.rules.block.fences.exec(t);if(r){let n=r[0],i=n_t(n,r[3]||"");return{type:"code",raw:n,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(t){let r=this.rules.block.heading.exec(t);if(r){let n=r[2].trim();if(/#$/.test(n)){let i=Iv(n,"#");(this.options.pedantic||!i||/ $/.test(i))&&(n=i.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let r=this.rules.block.hr.exec(t);if(r)return{type:"hr",raw:Iv(r[0],` +`)}}blockquote(t){let r=this.rules.block.blockquote.exec(t);if(r){let n=Iv(r[0],` +`).split(` +`),i="",a="",s=[];for(;n.length>0;){let l=!1,u=[],h;for(h=0;h/.test(n[h]))u.push(n[h]),l=!0;else if(!l)u.push(n[h]);else break;n=n.slice(h);let f=u.join(` +`),d=f.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");i=i?`${i} +${f}`:f,a=a?`${a} +${d}`:d;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(d,s,!0),this.lexer.state.top=p,n.length===0)break;let m=s[s.length-1];if(m?.type==="code")break;if(m?.type==="blockquote"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.blockquote(y);s[s.length-1]=v,i=i.substring(0,i.length-g.raw.length)+v.raw,a=a.substring(0,a.length-g.text.length)+v.text;break}else if(m?.type==="list"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.list(y);s[s.length-1]=v,i=i.substring(0,i.length-m.raw.length)+v.raw,a=a.substring(0,a.length-g.raw.length)+v.raw,n=y.substring(s[s.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(t){let r=this.rules.block.list.exec(t);if(r){let n=r[1].trim(),i=n.length>1,a={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),l=!1;for(;t;){let u=!1,h="",f="";if(!(r=s.exec(t))||this.rules.block.hr.test(t))break;h=r[0],t=t.substring(h.length);let d=r[2].split(` +`,1)[0].replace(/^\t+/,x=>" ".repeat(3*x.length)),p=t.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=r[1].length+1:(g=r[2].search(/[^ ]/),g=g>4?1:g,f=d.slice(g),g+=r[1].length),m&&/^ *$/.test(p)&&(h+=p+` +`,t=t.substring(p.length+1),u=!0),!u){let x=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),b=new RegExp(`^ {0,${Math.min(3,g-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),w=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:\`\`\`|~~~)`),S=new RegExp(`^ {0,${Math.min(3,g-1)}}#`);for(;t;){let T=t.split(` +`,1)[0];if(p=T,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),w.test(p)||S.test(p)||x.test(p)||b.test(t))break;if(p.search(/[^ ]/)>=g||!p.trim())f+=` +`+p.slice(g);else{if(m||d.search(/[^ ]/)>=4||w.test(d)||S.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=T+` +`,t=t.substring(T.length+1),d=p.slice(g)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(h)&&(l=!0));let y=null,v;this.options.gfm&&(y=/^\[[ xX]\] /.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),a.raw+=h}a.items[a.items.length-1].raw=a.items[a.items.length-1].raw.trimEnd(),a.items[a.items.length-1].text=a.items[a.items.length-1].text.trimEnd(),a.raw=a.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>/\n.*\n/.test(d.raw));a.loose=f}if(a.loose)for(let u=0;u$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:n,raw:r[0],href:i,title:a}}}table(t){let r=this.rules.block.table.exec(t);if(!r||!/[:|]/.test(r[2]))return;let n=QK(r[1]),i=r[2].replace(/^\||\| *$/g,"").split("|"),a=r[3]&&r[3].trim()?r[3].replace(/\n[ \t]*$/,"").split(` +`):[],s={type:"table",raw:r[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let l of i)/^ *-+: *$/.test(l)?s.align.push("right"):/^ *:-+: *$/.test(l)?s.align.push("center"):/^ *:-+ *$/.test(l)?s.align.push("left"):s.align.push(null);for(let l=0;l({text:u,tokens:this.lexer.inline(u),header:!1,align:s.align[h]})));return s}}lheading(t){let r=this.rules.block.lheading.exec(t);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(t){let r=this.rules.block.paragraph.exec(t);if(r){let n=r[1].charAt(r[1].length-1)===` +`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let r=this.rules.block.text.exec(t);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(t){let r=this.rules.inline.escape.exec(t);if(r)return{type:"escape",raw:r[0],text:so(r[1])}}tag(t){let r=this.rules.inline.tag.exec(t);if(r)return!this.lexer.state.inLink&&/^/i.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(t){let r=this.rules.inline.link.exec(t);if(r){let n=r[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;let s=Iv(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=r_t(r[2],"()");if(s>-1){let u=(r[0].indexOf("!")===0?5:4)+r[1].length+s;r[2]=r[2].substring(0,s),r[0]=r[0].substring(0,u).trim(),r[3]=""}}let i=r[2],a="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],a=s[3])}else a=r[3]?r[3].slice(1,-1):"";return i=i.trim(),/^$/.test(n)?i=i.slice(1):i=i.slice(1,-1)),ZK(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer)}}reflink(t,r){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let i=(n[2]||n[1]).replace(/\s+/g," "),a=r[i.toLowerCase()];if(!a){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return ZK(n,a,n[0],this.lexer)}}emStrong(t,r,n=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...i[0]].length-1,l,u,h=s,f=0,d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,r=r.slice(-1*t.length+s);(i=d.exec(r))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(u=[...l].length,i[3]||i[4]){h+=u;continue}else if((i[5]||i[6])&&s%3&&!((s+u)%3)){f+=u;continue}if(h-=u,h>0)continue;u=Math.min(u,u+h+f);let p=[...i[0]][0].length,m=t.slice(0,s+i.index+p+u);if(Math.min(s,u)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(t){let r=this.rules.inline.code.exec(t);if(r){let n=r[2].replace(/\n/g," "),i=/[^ ]/.test(n),a=/^ /.test(n)&&/ $/.test(n);return i&&a&&(n=n.substring(1,n.length-1)),n=so(n,!0),{type:"codespan",raw:r[0],text:n}}}br(t){let r=this.rules.inline.br.exec(t);if(r)return{type:"br",raw:r[0]}}del(t){let r=this.rules.inline.del.exec(t);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(t){let r=this.rules.inline.autolink.exec(t);if(r){let n,i;return r[2]==="@"?(n=so(r[1]),i="mailto:"+n):(n=so(r[1]),i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let r;if(r=this.rules.inline.url.exec(t)){let n,i;if(r[2]==="@")n=so(r[0]),i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"";while(a!==r[0]);n=so(r[0]),r[1]==="www."?i="http://"+r[0]:i=r[0]}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let r=this.rules.inline.text.exec(t);if(r){let n;return this.lexer.state.inRawBlock?n=r[0]:n=so(r[0]),{type:"text",raw:r[0],text:n}}}},i_t=/^(?: *(?:\n|$))+/,a_t=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,s_t=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Fv=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,o_t=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,nQ=/(?:[*+-]|\d{1,9}[.)])/,iQ=fn(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,nQ).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),OL=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,l_t=/^[^\n]+/,PL=/(?!\s*\])(?:\\.|[^\[\]\\])+/,c_t=fn(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",PL).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),u_t=fn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,nQ).getRegex(),pw="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",BL=/|$))/,h_t=fn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",BL).replace("tag",pw).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),aQ=fn(OL).replace("hr",Fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",pw).getRegex(),f_t=fn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",aQ).getRegex(),FL={blockquote:f_t,code:a_t,def:c_t,fences:s_t,heading:o_t,hr:Fv,html:h_t,lheading:iQ,list:u_t,newline:i_t,paragraph:aQ,table:Pv,text:l_t},JK=fn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",pw).getRegex(),d_t={...FL,table:JK,paragraph:fn(OL).replace("hr",Fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",JK).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",pw).getRegex()},p_t={...FL,html:fn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",BL).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Pv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:fn(OL).replace("hr",Fv).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",iQ).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},sQ=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,m_t=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,oQ=/^( {2,}|\\)\n(?!\s*$)/,g_t=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,x_t=fn(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,zv).getRegex(),b_t=fn("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,zv).getRegex(),w_t=fn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,zv).getRegex(),T_t=fn(/\\([punct])/,"gu").replace(/punct/g,zv).getRegex(),k_t=fn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),E_t=fn(BL).replace("(?:-->|$)","-->").getRegex(),C_t=fn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",E_t).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),dw=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,S_t=fn(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",dw).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),lQ=fn(/^!?\[(label)\]\[(ref)\]/).replace("label",dw).replace("ref",PL).getRegex(),cQ=fn(/^!?\[(ref)\](?:\[\])?/).replace("ref",PL).getRegex(),A_t=fn("reflink|nolink(?!\\()","g").replace("reflink",lQ).replace("nolink",cQ).getRegex(),zL={_backpedal:Pv,anyPunctuation:T_t,autolink:k_t,blockSkip:v_t,br:oQ,code:m_t,del:Pv,emStrongLDelim:x_t,emStrongRDelimAst:b_t,emStrongRDelimUnd:w_t,escape:sQ,link:S_t,nolink:cQ,punctuation:y_t,reflink:lQ,reflinkSearch:A_t,tag:C_t,text:g_t,url:Pv},__t={...zL,link:fn(/^!?\[(label)\]\((.*?)\)/).replace("label",dw).getRegex(),reflink:fn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",dw).getRegex()},NL={...zL,escape:fn(sQ).replace("])","~|])").getRegex(),url:fn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\u+" ".repeat(h.length));let i,a,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(i=l.call({lexer:this},t,r))?(t=t.substring(i.raw.length),r.push(i),!0):!1))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),i.raw.length===1&&r.length>0?r[r.length-1].raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),r.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,u=t.slice(1),h;this.options.extensions.startBlock.forEach(f=>{h=f.call({lexer:this},u),typeof h=="number"&&h>=0&&(l=Math.min(l,h))}),l<1/0&&l>=0&&(s=t.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){a=r[r.length-1],n&&a?.type==="paragraph"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i),n=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),a=r[r.length-1],a&&a.type==="text"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,r}inline(t,r=[]){return this.inlineQueue.push({src:t,tokens:r}),r}inlineTokens(t,r=[]){let n,i,a,s=t,l,u,h;if(this.tokens.links){let f=Object.keys(this.tokens.links);if(f.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(u||(h=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(n=f.call({lexer:this},t,r))?(t=t.substring(n.raw.length),r.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.emStrong(t,s,h)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),r.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),r.push(n);continue}if(a=t,this.options.extensions&&this.options.extensions.startInline){let f=1/0,d=t.slice(1),p;this.options.extensions.startInline.forEach(m=>{p=m.call({lexer:this},d),typeof p=="number"&&p>=0&&(f=Math.min(f,p))}),f<1/0&&f>=0&&(a=t.substring(0,f+1))}if(n=this.tokenizer.inlineText(a)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(h=n.raw.slice(-1)),u=!0,i=r[r.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(t){let f="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return r}},Sm=class{static{o(this,"_Renderer")}options;parser;constructor(t){this.options=t||Od}space(t){return""}code({text:t,lang:r,escaped:n}){let i=(r||"").match(/^\S*/)?.[0],a=t.replace(/\n$/,"")+` +`;return i?'
        '+(n?a:so(a,!0))+`
        +`:"
        "+(n?a:so(a,!0))+`
        +`}blockquote({tokens:t}){return`
        +${this.parser.parse(t)}
        +`}html({text:t}){return t}heading({tokens:t,depth:r}){return`${this.parser.parseInline(t)} +`}hr(t){return`
        +`}list(t){let r=t.ordered,n=t.start,i="";for(let l=0;l +`+i+" +`}listitem(t){let r="";if(t.task){let n=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=n+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=n+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):r+=n+" "}return r+=this.parser.parse(t.tokens,!!t.loose),`
      • ${r}
      • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

        ${this.parser.parseInline(t)}

        +`}table(t){let r="",n="";for(let a=0;a${i}`),` + +`+r+` +`+i+`
        +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let r=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+r+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${t}`}br(t){return"
        "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:r,tokens:n}){let i=this.parser.parseInline(n),a=KK(t);if(a===null)return i;t=a;let s='
        ",s}image({href:t,title:r,text:n}){let i=KK(t);if(i===null)return n;t=i;let a=`${n}{let l=a[s].flat(1/0);n=n.concat(this.walkTokens(l,r))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,r)))}}return n}use(...t){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...l){let u=a.renderer.apply(this,l);return u===!1&&(u=s.apply(this,l)),u}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new Sm(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let l=s,u=n.renderer[l];n.useNewRenderer||(u=this.#e(u,l,a));let h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new Cm(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let l=s,u=n.tokenizer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new Em;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let l=s,u=n.hooks[l],h=a[l];Em.passThroughHooks.has(s)?a[l]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(p=>h.call(a,p));let d=u.call(a,f);return h.call(a,d)}:a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let u=[];return u.push(s.call(this,l)),a&&(u=u.concat(a.call(this,l))),u}}this.defaults={...this.defaults,...i}}),this}#e(t,r,n){switch(r){case"heading":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,n.parser.parseInline(i.tokens),i.depth,t_t(n.parser.parseInline(i.tokens,n.parser.textRenderer)))};case"code":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.text,i.lang,!!i.escaped)};case"table":return function(i){if(!i.type||i.type!==r)return t.apply(this,arguments);let a="",s="";for(let u=0;u0&&f.tokens[0].type==="paragraph"?(f.tokens[0].text=g+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&f.tokens[0].tokens[0].type==="text"&&(f.tokens[0].tokens[0].text=g+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:g+" "}):m+=g+" "}m+=this.parser.parse(f.tokens,l),u+=this.listitem({type:"list_item",raw:m,text:m,task:p,checked:!!d,loose:l,tokens:f.tokens})}return t.call(this,u,a,s)};case"html":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.text,i.block)};case"paragraph":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,this.parser.parseInline(i.tokens))};case"escape":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.text)};case"link":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.href,i.title,this.parser.parseInline(i.tokens))};case"image":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.href,i.title,i.text)};case"strong":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,this.parser.parseInline(i.tokens))};case"em":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,this.parser.parseInline(i.tokens))};case"codespan":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.text)};case"del":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,this.parser.parseInline(i.tokens))};case"text":return function(i){return!i.type||i.type!==r?t.apply(this,arguments):t.call(this,i.text)}}return t}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,r){return Mu.lex(t,r??this.defaults)}parser(t,r){return Iu.parse(t,r??this.defaults)}#t(t,r){return(n,i)=>{let a={...i},s={...this.defaults,...a};this.defaults.async===!0&&a.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);let l=this.#r(!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(u=>t(u,s)).then(u=>s.hooks?s.hooks.processAllTokens(u):u).then(u=>s.walkTokens?Promise.all(this.walkTokens(u,s.walkTokens)).then(()=>u):u).then(u=>r(u,s)).then(u=>s.hooks?s.hooks.postprocess(u):u).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let u=t(n,s);s.hooks&&(u=s.hooks.processAllTokens(u)),s.walkTokens&&this.walkTokens(u,s.walkTokens);let h=r(u,s);return s.hooks&&(h=s.hooks.postprocess(h)),h}catch(u){return l(u)}}}#r(t,r){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let i="

        An error occurred:

        "+so(n.message+"",!0)+"
        ";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},Id=new ML;o(tn,"marked");tn.options=tn.setOptions=function(e){return Id.setOptions(e),tn.defaults=Id.defaults,tQ(tn.defaults),tn};tn.getDefaults=IL;tn.defaults=Od;tn.use=function(...e){return Id.use(...e),tn.defaults=Id.defaults,tQ(tn.defaults),tn};tn.walkTokens=function(e,t){return Id.walkTokens(e,t)};tn.parseInline=Id.parseInline;tn.Parser=Iu;tn.parser=Iu.parse;tn.Renderer=Sm;tn.TextRenderer=Bv;tn.Lexer=Mu;tn.lexer=Mu.lex;tn.Tokenizer=Cm;tn.Hooks=Em;tn.parse=tn;KEe=tn.options,QEe=tn.setOptions,ZEe=tn.use,JEe=tn.walkTokens,t6e=tn.parseInline,e6e=Iu.parse,r6e=Mu.lex});function D_t(e,{markdownAutoWrap:t}){let n=e.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=s4(n);return t===!1?i.replace(/ /g," "):i}function hQ(e,t={}){let r=D_t(e,t),n=tn.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}),i}function fQ(e,{markdownAutoWrap:t}={}){let r=tn.lexer(e);function n(i){return i.type==="text"?t===!1?i.text.replace(/\n */g,"
        ").replace(/ /g," "):i.text.replace(/\n */g,"
        "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

        ${i.tokens?.map(n).join("")}

        `:i.type==="space"?"":i.type==="html"?`${i.text}`:`Unsupported markdown: ${i.type}`}return o(n,"output"),r.map(n).join("")}var dQ=R(()=>{"use strict";uQ();SS();o(D_t,"preprocessMarkdown");o(hQ,"markdownToLines");o(fQ,"markdownToHTML")});function R_t(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(t=>t.segment):[...e]}function N_t(e,t){let r=R_t(t.content);return pQ(e,[],r,t.type)}function pQ(e,t,r,n){if(r.length===0)return[{content:t.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...t,i];return e([{content:s.join(""),type:n}])?pQ(e,s,a,n):(t.length===0&&i&&(t.push(i),r.shift()),[{content:t.join(""),type:n},{content:r.join(""),type:n}])}function mQ(e,t){if(e.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return $L(e,t)}function $L(e,t,r=[],n=[]){if(e.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";e[0].content===" "&&(i=" ",e.shift());let a=e.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),t(s))return $L(e,t,r,s);if(n.length>0)r.push(n),e.unshift(a);else if(a.content){let[l,u]=N_t(t,a);r.push([l]),u.content&&e.unshift(u)}return $L(e,t,r)}var gQ=R(()=>{"use strict";o(R_t,"splitTextToChars");o(N_t,"splitWordToFitWidth");o(pQ,"splitWordToFitWidthRecursion");o(mQ,"splitLineToFitWidth");o($L,"splitLineToFitWidthRecursion")});function yQ(e,t){t&&e.attr("style",t)}async function M_t(e,t,r,n,i=!1){let a=e.append("foreignObject");a.attr("width",`${10*r}px`),a.attr("height",`${10*r}px`);let s=a.append("xhtml:div"),l=t.label;t.label&&Pi(t.label)&&(l=await vh(t.label.replace(Yt.lineBreakRegex,` +`),pt()));let u=t.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),yQ(h,t.labelStyle),h.attr("class",`${u} ${n}`),yQ(s,t.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&s.attr("class","labelBkg");let f=s.node().getBoundingClientRect();return f.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),f=s.node().getBoundingClientRect()),a.node()}function GL(e,t,r){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em")}function I_t(e,t,r){let n=e.append("text"),i=GL(n,1,t);VL(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function vQ(e,t,r){let n=e.append("text"),i=GL(n,1,t);VL(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function O_t(e,t,r,n=!1){let a=t.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>I_t(a,1.1,p)<=e,"checkWidth"),d=f(h)?[h]:mQ(h,f);for(let p of d){let m=GL(l,u,1.1);VL(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",h.x-f).attr("y",h.y-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function VL(e,t){e.text(""),t.forEach((r,n)=>{let i=e.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}function UL(e){return e.replace(/fa[bklrs]?:fa-[\w-]+/g,t=>``)}var ia,Nl=R(()=>{"use strict";Ue();hr();ur();ce();dQ();_r();gQ();o(yQ,"applyStyle");o(M_t,"addHtmlSpan");o(GL,"createTspan");o(I_t,"computeWidthOfText");o(vQ,"computeDimensionOfText");o(O_t,"createFormattedText");o(VL,"updateTextContentAndStyles");o(UL,"replaceIconSubstring");ia=o(async(e,t="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(V.debug("XYZ createText",t,r,n,i,a,s,"addSvgBackground: ",u),a){let f=fQ(t,h),d=UL(no(f)),p=t.replace(/\\\\/g,"\\"),m={isNode:s,label:Pi(t)?p:d,labelStyle:r.replace("fill:","color:")};return await M_t(e,m,l,i,u)}else{let f=t.replace(//g,"
        "),d=hQ(f.replace("
        ","
        "),h),p=O_t(l,e,d,t?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Gt(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");Gt(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Gt(p).select("text").attr("style",g)}return p}},"createText")});var P_t,Pd,HL=R(()=>{"use strict";P_t=o((e,t)=>{var r=e.x,n=e.y,i=t.x-r,a=t.y-n,s=e.width/2,l=e.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Pd=P_t});function B_t(e,t){t&&e.attr("style",t)}async function F_t(e){let t=Gt(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),n=e.label;e.label&&Pi(e.label)&&(n=await vh(e.label.replace(Yt.lineBreakRegex,` +`),pt()));let i=e.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),B_t(r,e.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}var z_t,Ec,mw=R(()=>{"use strict";ur();ce();Ue();hr();_r();o(B_t,"applyStyle");o(F_t,"addHtmlLabel");z_t=o(async(e,t,r,n)=>{let i=e||"";if(typeof i=="object"&&(i=i[0]),Tr(pt().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
        "),V.info("vertexText"+i);let a={isNode:n,label:no(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:t&&t.replace("fill:","color:")};return await F_t(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),Ec=z_t});var Ml,Am=R(()=>{"use strict";Ml=o((e,t,r,n,i)=>["M",e+i,t,"H",e+r-i,"A",i,i,0,0,1,e+r,t+i,"V",t+n-i,"A",i,i,0,0,1,e+r-i,t+n,"H",e+i,"A",i,i,0,0,1,e,t+n-i,"V",t+i,"A",i,i,0,0,1,e+i,t,"Z"].join(" "),"createRoundedRectPathD")});var xQ,Cc,$_t,te,Jt,Ze=R(()=>{"use strict";Ue();xQ=o(e=>{let{handDrawnSeed:t}=pt();return{fill:e,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:e,seed:t}},"solidStateFill"),Cc=o(e=>{let t=$_t([...e.cssCompiledStyles||[],...e.cssStyles||[]]);return{stylesMap:t,stylesArray:[...t]}},"compileStyles"),$_t=o(e=>{let t=new Map;return e.forEach(r=>{let[n,i]=r.split(":");t.set(n.trim(),i?.trim())}),t},"styles2Map"),te=o(e=>{let{stylesArray:t}=Cc(e),r=[],n=[],i=[],a=[];return t.forEach(s=>{let l=s[0];l==="color"||l==="font-size"||l==="font-family"||l==="font-weight"||l==="font-style"||l==="text-decoration"||l==="text-align"||l==="text-transform"||l==="line-height"||l==="letter-spacing"||l==="word-spacing"||l==="text-shadow"||l==="text-overflow"||l==="white-space"||l==="word-wrap"||l==="word-break"||l==="overflow-wrap"||l==="hyphens"?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:t,borderStyles:i,backgroundStyles:a}},"styles2String"),Jt=o((e,t)=>{let{themeVariables:r,handDrawnSeed:n}=pt(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=Cc(e);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},t)},"userNodeOverrides")});var bQ,G_t,V_t,U_t,H_t,W_t,wQ,gw,TQ,WL=R(()=>{"use strict";Ue();hr();ce();Nd();ur();Qe();Nl();HL();mw();Am();Ze();bQ=o(async(e,t)=>{V.info("Creating subgraph rect for ",t.id,t);let r=pt(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=te(t),d=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.id).attr("data-look",t.look),p=Tr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await ia(m,t.label,{style:t.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(Tr(r.flowchart.htmlLabels)){let _=g.children[0],A=Gt(g);y=_.getBoundingClientRect(),A.attr("width",y.width),A.attr("height",y.height)}let v=t.width<=y.width+t.padding?y.width+t.padding:t.width;t.width<=y.width+t.padding?t.diff=(v-t.width)/2-t.padding:t.diff=-t.padding;let x=t.height,b=t.x-v/2,w=t.y-x/2;V.trace("Data ",t,JSON.stringify(t));let S;if(t.look==="handDrawn"){let _=Kt.svg(d),A=Jt(t,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),L=_.path(Ml(b,w,v,x,0),A);S=d.insert(()=>(V.debug("Rough node insert CXC",L),L),":first-child"),S.select("path:nth-child(2)").attr("style",h.join(";")),S.select("path").attr("style",f.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",u).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=io(r);if(m.attr("transform",`translate(${t.x-y.width/2}, ${t.y-t.height/2+T})`),l){let _=m.select("span");_&&_.attr("style",l)}let E=S.node().getBBox();return t.offsetX=0,t.width=E.width,t.height=E.height,t.offsetY=y.height-t.padding/2,t.intersect=function(_){return Pd(t,_)},{cluster:d,labelBBox:y}},"rect"),G_t=o((e,t)=>{let r=e.insert("g").attr("class","note-cluster").attr("id",t.id),n=r.insert("rect",":first-child"),i=0*t.padding,a=i/2;n.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");let s=n.node().getBBox();return t.width=s.width,t.height=s.height,t.intersect=function(l){return Pd(t,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),V_t=o(async(e,t)=>{let r=pt(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=e.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-id",t.id).attr("data-look",t.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await Ec(t.label,t.labelStyle,void 0,!0)),g=m.getBBox();if(Tr(r.flowchart.htmlLabels)){let L=m.children[0],M=Gt(m);g=L.getBoundingClientRect(),M.attr("width",g.width),M.attr("height",g.height)}let y=0*t.padding,v=y/2,x=(t.width<=g.width+t.padding?g.width+t.padding:t.width)+y;t.width<=g.width+t.padding?t.diff=(x-t.width)/2-t.padding:t.diff=-t.padding;let b=t.height+y,w=t.height+y-g.height-6,S=t.x-x/2,T=t.y-b/2;t.width=x;let E=t.y-t.height/2-v+g.height+2,_;if(t.look==="handDrawn"){let L=t.cssClasses.includes("statediagram-cluster-alt"),M=Kt.svg(h),N=t.rx||t.ry?M.path(Ml(S,T,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):M.rectangle(S,T,x,b,{seed:i});_=h.insert(()=>N,":first-child");let k=M.rectangle(S,E,x,w,{fill:L?a:s,fillStyle:L?"hachure":"solid",stroke:u,seed:i});_=h.insert(()=>N,":first-child"),p=h.insert(()=>k)}else _=f.insert("rect",":first-child"),_.attr("class","outer").attr("x",S).attr("y",T).attr("width",x).attr("height",b).attr("data-look",t.look),p.attr("class","inner").attr("x",S).attr("y",E).attr("width",x).attr("height",w);d.attr("transform",`translate(${t.x-g.width/2}, ${T+1-(Tr(r.flowchart.htmlLabels)?0:3)})`);let A=_.node().getBBox();return t.height=A.height,t.offsetX=0,t.offsetY=g.height-t.padding/2,t.labelBBox=g,t.intersect=function(L){return Pd(t,L)},{cluster:h,labelBBox:g}},"roundedWithTitle"),U_t=o((e,t)=>{let r=pt(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=e.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-look",t.look),l=s.insert("g",":first-child"),u=0*t.padding,h=t.width+u;t.diff=-t.padding;let f=t.height+u,d=t.x-h/2,p=t.y-f/2;t.width=h;let m;if(t.look==="handDrawn"){let v=Kt.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",t.look);let g=m.node().getBBox();return t.height=g.height,t.offsetX=0,t.offsetY=0,t.intersect=function(y){return Pd(t,y)},{cluster:s,labelBBox:{}}},"divider"),H_t=bQ,W_t={rect:bQ,squareRect:H_t,roundedWithTitle:V_t,noteGroup:G_t,divider:U_t},wQ=new Map,gw=o(async(e,t)=>{let r=t.shape||"rect",n=await W_t[r](e,t);return wQ.set(t.id,n),n},"insertCluster"),TQ=o(()=>{wQ=new Map},"clear")});function yw(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=vw(e),t=vw(t);let[r,n]=[e.x,e.y],[i,a]=[t.x,t.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Yh,vw,xw,YL=R(()=>{"use strict";Yh={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};o(yw,"calculateDeltaAndAngle");vw=o(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),xw=o(e=>({x:o(function(t,r,n){let i=0;if(r===0&&Object.hasOwn(Yh,e.arrowTypeStart)){let{angle:a,deltaX:s}=yw(n[0],n[1]);i=Yh[e.arrowTypeStart]*Math.cos(a)*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Yh,e.arrowTypeEnd)){let{angle:a,deltaX:s}=yw(n[n.length-1],n[n.length-2]);i=Yh[e.arrowTypeEnd]*Math.cos(a)*(s>=0?1:-1)}return vw(t).x+i},"x"),y:o(function(t,r,n){let i=0;if(r===0&&Object.hasOwn(Yh,e.arrowTypeStart)){let{angle:a,deltaY:s}=yw(n[0],n[1]);i=Yh[e.arrowTypeStart]*Math.abs(Math.sin(a))*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(Yh,e.arrowTypeEnd)){let{angle:a,deltaY:s}=yw(n[n.length-1],n[n.length-2]);i=Yh[e.arrowTypeEnd]*Math.abs(Math.sin(a))*(s>=0?1:-1)}return vw(t).y+i},"y")}),"getLineFunctionsWithOffset")});var EQ,Y_t,kQ,CQ=R(()=>{"use strict";ce();EQ=o((e,t,r,n,i)=>{t.arrowTypeStart&&kQ(e,"start",t.arrowTypeStart,r,n,i),t.arrowTypeEnd&&kQ(e,"end",t.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Y_t={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},kQ=o((e,t,r,n,i,a)=>{let s=Y_t[r];if(!s){V.warn(`Unknown arrow type: ${r}`);return}let l=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function bw(e,t){pt().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}function j_t(e){let t=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(t.push(a),r.push(n))}return{cornerPoints:t,cornerPointPositions:r}}var ww,ya,_Q,$v,Tw,kw,q_t,X_t,SQ,AQ,K_t,Ew,qL=R(()=>{"use strict";Ue();hr();ce();Nl();_r();YL();Nd();ur();Qe();mw();CQ();ww=new Map,ya=new Map,_Q=o(()=>{ww.clear(),ya.clear()},"clear"),$v=o(e=>e?e.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),Tw=o(async(e,t)=>{let r=Tr(pt().flowchart.htmlLabels),n=await ia(e,t.label,{style:$v(t.labelStyle),useHtmlLabels:r,addSvgBackground:!0,isNode:!1});V.info("abc82",t,t.labelType);let i=e.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let s=n.getBBox();if(r){let u=n.children[0],h=Gt(n);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}a.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),ww.set(t.id,i),t.width=s.width,t.height=s.height;let l;if(t.startLabelLeft){let u=await Ec(t.startLabelLeft,$v(t.labelStyle)),h=e.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ya.get(t.id)||ya.set(t.id,{}),ya.get(t.id).startLeft=h,bw(l,t.startLabelLeft)}if(t.startLabelRight){let u=await Ec(t.startLabelRight,$v(t.labelStyle)),h=e.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=h.node().appendChild(u),f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ya.get(t.id)||ya.set(t.id,{}),ya.get(t.id).startRight=h,bw(l,t.startLabelRight)}if(t.endLabelLeft){let u=await Ec(t.endLabelLeft,$v(t.labelStyle)),h=e.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ya.get(t.id)||ya.set(t.id,{}),ya.get(t.id).endLeft=h,bw(l,t.endLabelLeft)}if(t.endLabelRight){let u=await Ec(t.endLabelRight,$v(t.labelStyle)),h=e.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ya.get(t.id)||ya.set(t.id,{}),ya.get(t.id).endRight=h,bw(l,t.endLabelRight)}return n},"insertEdgeLabel");o(bw,"setTerminalWidth");kw=o((e,t)=>{V.debug("Moving label abc88 ",e.id,e.label,ww.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath,n=pt(),{subGraphTitleTotalMargin:i}=io(n);if(e.label){let a=ww.get(e.id),s=e.x,l=e.y;if(r){let u=Oe.calcLabelPosition(r);V.debug("Moving label "+e.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),t.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(e.startLabelLeft){let a=ya.get(e.id).startLeft,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.startLabelRight){let a=ya.get(e.id).startRight,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelLeft){let a=ya.get(e.id).endLeft,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelRight){let a=ya.get(e.id).endRight,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),q_t=o((e,t)=>{let r=e.x,n=e.y,i=Math.abs(t.x-r),a=Math.abs(t.y-n),s=e.width/2,l=e.height/2;return i>=s||a>=l},"outsideNode"),X_t=o((e,t,r)=>{V.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(r)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let n=e.x,i=e.y,a=Math.abs(n-r.x),s=e.width/2,l=r.xMath.abs(n-t.x)*u){let d=r.y{V.warn("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(a=>{if(V.info("abc88 checking point",a,t),!q_t(t,a)&&!i){let s=X_t(t,n,a);V.debug("abc88 inside",a,n,s),V.debug("abc88 intersection",s,t);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?V.warn("abc88 no intersect",s,r):r.push(s),i=!0}else V.warn("abc88 outside",a,n),n=a,i||r.push(a)}),V.debug("returning points",r),r},"cutPathAtIntersect");o(j_t,"extractCornerPoints");AQ=o(function(e,t,r){let n=t.x-e.x,i=t.y-e.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:t.x-s*n,y:t.y-s*i}},"findAdjacentPoint"),K_t=o(function(e){let{cornerPointPositions:t}=j_t(e),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){V.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else V.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(e[n]);return r},"fixCorners"),Ew=o(function(e,t,r,n,i,a,s){let{handDrawnSeed:l}=pt(),u=t.points,h=!1,f=i;var d=a;d.intersect&&f.intersect&&(u=u.slice(1,t.points.length-1),u.unshift(f.intersect(u[0])),V.debug("Last point APA12",t.start,"-->",t.end,u[u.length-1],d,d.intersect(u[u.length-1])),u.push(d.intersect(u[u.length-1]))),t.toCluster&&(V.info("to cluster abc88",r.get(t.toCluster)),u=SQ(t.points,r.get(t.toCluster).node),h=!0),t.fromCluster&&(V.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(u,null,2)),u=SQ(u.reverse(),r.get(t.fromCluster).node).reverse(),h=!0);let p=u.filter(A=>!Number.isNaN(A.y));p=K_t(p);let m=p[p.length-1];if(p.length>1){m=p[p.length-1];let A=p[p.length-2],L=(m.x-A.x)/2,M=(m.y-A.y)/2,N={x:A.x+L,y:A.y+M};p.splice(-1,0,N)}let g=Ts;t.curve&&(g=t.curve);let{x:y,y:v}=xw(t),x=ma().x(y).y(v).curve(g),b;switch(t.thickness){case"normal":b="edge-thickness-normal";break;case"thick":b="edge-thickness-thick";break;case"invisible":b="edge-thickness-invisible";break;default:b="edge-thickness-normal"}switch(t.pattern){case"solid":b+=" edge-pattern-solid";break;case"dotted":b+=" edge-pattern-dotted";break;case"dashed":b+=" edge-pattern-dashed";break;default:b+=" edge-pattern-solid"}let w,S=x(p),T=Array.isArray(t.style)?t.style:[t.style];if(t.look==="handDrawn"){let A=Kt.svg(e);Object.assign([],p);let L=A.path(S,{roughness:.3,seed:l});b+=" transition",w=Gt(L).select("path").attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")).attr("style",T?T.reduce((N,k)=>N+";"+k,""):"");let M=w.attr("d");w.attr("d",M),e.node().appendChild(w.node())}else w=e.append("path").attr("d",S).attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")).attr("style",T?T.reduce((A,L)=>A+";"+L,""):"");let E="";(pt().flowchart.arrowMarkerAbsolute||pt().state.arrowMarkerAbsolute)&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),V.info("arrowTypeStart",t.arrowTypeStart),V.info("arrowTypeEnd",t.arrowTypeEnd),EQ(w,t,E,s,n);let _={};return h&&(_.updatedPath=u),_.originalPath=t.points,_},"insertEdge")});var Q_t,Z_t,J_t,t9t,e9t,r9t,n9t,i9t,a9t,s9t,o9t,Cw,XL=R(()=>{"use strict";ce();Q_t=o((e,t,r,n)=>{t.forEach(i=>{o9t[i](e,r,n)})},"insertMarkers"),Z_t=o((e,t,r)=>{V.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),J_t=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),t9t=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),e9t=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),r9t=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),n9t=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),i9t=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),a9t=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),s9t=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),o9t={extension:Z_t,composition:J_t,aggregation:t9t,dependency:e9t,lollipop:r9t,point:n9t,circle:i9t,cross:a9t,barb:s9t},Cw=Q_t});function He(e){let t=e.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}function Vo(e,t,r,n,i,a){let s=[],u=r-e,h=n-t,f=u/a,d=2*Math.PI/f,p=t+h/2;for(let m=0;m<=50;m++){let g=m/50,y=e+g*u,v=p+i*Math.sin(d*(y-e));s.push({x:y,y:v})}return s}function Sw(e,t,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Nl();Ue();ur();hr();_r();he=o(async(e,t,r)=>{let n,i=t.useHtmlLabels||Tr(pt().flowchart.htmlLabels);r?n=r:n="node default";let a=e.insert("g").attr("class",n).attr("id",t.domId||t.id),s=a.insert("g").attr("class","label").attr("style",t.labelStyle),l;t.label===void 0?l="":l=typeof t.label=="string"?t.label:t.label[0];let u;u=await ia(s,Zr(no(l),pt()),{useHtmlLabels:i,width:t.width||pt().flowchart.wrappingWidth,cssClasses:"markdown-node-label",style:t.labelStyle,addSvgBackground:!!t.icon||!!t.img});let h=u.getBBox(),f=t.padding/2;if(Tr(pt().flowchart.htmlLabels)){let d=u.children[0],p=Gt(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=pt().fontSize?pt().fontSize:window.getComputedStyle(document.body).fontSize,S=parseInt(b,10)*5+"px";y.style.minWidth=S,y.style.maxWidth=S}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),t.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),Qt=o((e,t)=>{let r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds"),de=o((e,t)=>(e.look==="handDrawn"?"rough-node":"node")+" "+e.cssClasses+" "+(t||""),"getNodeClasses");o(He,"createPathFromPoints");o(Vo,"generateFullSineWavePoints");o(Sw,"generateCirclePoints")});function l9t(e,t){return e.intersect(t)}var LQ,DQ=R(()=>{"use strict";o(l9t,"intersectNode");LQ=l9t});function c9t(e,t,r,n){var i=e.x,a=e.y,s=i-n.x,l=a-n.y,u=Math.sqrt(t*t*l*l+r*r*s*s),h=Math.abs(t*r*s/u);n.x{"use strict";o(c9t,"intersectEllipse");Aw=c9t});function u9t(e,t,r){return Aw(e,t,t,r)}var RQ,NQ=R(()=>{"use strict";jL();o(u9t,"intersectCircle");RQ=u9t});function h9t(e,t,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=t.y-e.y,s=e.x-t.x,u=t.x*e.y-e.x*t.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&MQ(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*e.x+l*e.y+h,d=a*t.x+l*t.y+h,!(f!==0&&d!==0&&MQ(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function MQ(e,t){return e*t>0}var IQ,OQ=R(()=>{"use strict";o(h9t,"intersectLine");o(MQ,"sameSign");IQ=h9t});function f9t(e,t,r){let n=e.x,i=e.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));let u=n-e.width/2-s,h=i-e.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";OQ();o(f9t,"intersectPolygon");PQ=f9t});var qt,Je=R(()=>{"use strict";DQ();NQ();jL();BQ();HL();qt={node:LQ,circle:RQ,ellipse:Aw,polygon:PQ,rect:Pd}});var Bd,Gv=R(()=>{"use strict";Be();Je();Am();Ze();Qe();Bd=o(async(e,t,r)=>{let{labelStyles:n,nodeStyles:i}=te(t);t.labelStyle=n;let{shapeSvg:a,bbox:s}=await he(e,t,de(t)),l=Math.max(s.width+r.labelPaddingX*2,t?.width||0),u=Math.max(s.height+r.labelPaddingY*2,t?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=t,{cssStyles:g}=t;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),t.look==="handDrawn"){let y=Kt.svg(a),v=Jt(t,{}),x=p||m?y.path(Ml(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",g)}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",p).attr("ry",m).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return Qt(t,d),t.intersect=function(y){return qt.rect(t,y)},a},"drawRect")});var FQ,zQ=R(()=>{"use strict";Gv();FQ=o(async(e,t)=>Bd(e,t,{rx:5,ry:5,classes:"flowchart-node"}),"state")});var _w,$Q=R(()=>{"use strict";Gv();_w=o(async(e,t)=>{let r={rx:5,ry:5,classes:"",labelPaddingX:(t?.padding||0)*1,labelPaddingY:(t?.padding||0)*1};return Bd(e,t,r)},"roundedRect")});var _m,GQ=R(()=>{"use strict";Gv();_m=o(async(e,t)=>{let r={rx:0,ry:0,classes:"",labelPaddingX:(t?.padding||0)*2,labelPaddingY:(t?.padding||0)*1};return Bd(e,t,r)},"squareRect")});var Vv,VQ=R(()=>{"use strict";Qe();Je();Ze();Be();Vv=o((e,t,{config:{themeVariables:r}})=>{let{lineColor:n}=r,i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),a;if(t.look==="handDrawn"){let l=Kt.svg(i).circle(0,0,14,xQ(n));a=i.insert(()=>l)}else a=i.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Qt(t,a),t.intersect=function(s){return qt.circle(t,7,s)},i},"stateStart")});var Uv,UQ=R(()=>{"use strict";Qe();Je();Ze();Be();Uv=o((e,t,{config:{themeVariables:r}})=>{let{labelStyles:n,nodeStyles:i}=te(t);t.labelStyle=n;let{cssStyles:a}=t,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),f=Kt.svg(h),d=Jt(t,{});t.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),Qt(t,y),t.intersect=function(v){return qt.circle(t,7,v)},h},"stateEnd")});var Lw,HQ=R(()=>{"use strict";Qe();Je();Ze();Be();Lw=o((e,t,{dir:r,config:{state:n,themeVariables:i}})=>{let{nodeStyles:a}=te(t);t.label="";let s=e.insert("g").attr("class",de(t)).attr("id",t.domId??t.id),{cssStyles:l}=t,u=Math.max(70,t?.width??0),h=Math.max(10,t?.height??0);r==="LR"&&(u=Math.max(10,t?.width??0),h=Math.max(70,t?.height??0));let f=-1*u/2,d=-1*h/2,p=Kt.svg(s),m=Jt(t,{stroke:i.lineColor,fill:i.lineColor});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&t.look!=="handDrawn"&&y.selectAll("path").attr("style",a),Qt(t,y);let v=n?.padding??0;return t.width&&t.height&&(t.width+=v/2||0,t.height+=v/2||0),t.intersect=function(x){return qt.rect(t,x)},s},"forkJoin")});var WQ,YQ=R(()=>{"use strict";Je();Qe();Ze();Be();WQ=o((e,t)=>{let{nodeStyles:r}=te(t);t.label="";let n=e.insert("g").attr("class",de(t)).attr("id",t.domId??t.id),{cssStyles:i}=t,a=Math.max(28,t.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Kt.svg(n),u=Jt(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=He(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(p){return qt.polygon(t,s,p)},n},"choice")});var qQ,XQ=R(()=>{"use strict";Qe();Je();Ze();Be();qQ=o(async(e,t,{config:{themeVariables:r}})=>{let{labelStyles:n,nodeStyles:i}=te(t);t.labelStyle=n;let{shapeSvg:a,bbox:s}=await he(e,t,de(t)),l=Math.max(s.width+(t.padding??0)*2,t?.width??0),u=Math.max(s.height+(t.padding??0)*2,t?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=t;t.useHtmlLabels||(t.centerLabel=!0);let m=Kt.svg(a),g=Jt(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=m.rectangle(h,f,l,u,g),v=a.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",d),i&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",i),Qt(t,v),t.intersect=function(x){return qt.rect(t,x)},a},"note")});var Dw,jQ=R(()=>{"use strict";Be();Je();Ze();Qe();Am();Dw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=a.height+t.padding,l=a.width+s/4+t.padding,u,{cssStyles:h}=t;if(t.look==="handDrawn"){let f=Kt.svg(i),d=Jt(t,{}),p=Ml(-l/2,-s/2,l,s,s/2),m=f.path(p,d);u=i.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",h)}else u=i.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return Qt(t,u),t.intersect=function(f){return qt.rect(t,f)},i},"stadium")});var KQ,QQ=R(()=>{"use strict";ur();hr();Be();mw();Je();Ze();Qe();Ue();Am();ce();KQ=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let i;t.cssClasses?i="node "+t.cssClasses:i="node default";let a=e.insert("g").attr("class",i).attr("id",t.domId||t.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=t.description,h=t.label,f=l.node().appendChild(await Ec(h,t.labelStyle,!0,!0)),d={width:0,height:0};if(Tr(pt()?.flowchart?.htmlLabels)){let A=f.children[0],L=Gt(f);d=A.getBoundingClientRect(),L.attr("width",d.width),L.attr("height",d.height)}V.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await Ec(p.join?p.join("
        "):p,t.labelStyle,!0,!0)),y=g.children[0],v=Gt(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(t.padding||0)/2;Gt(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),Gt(f).attr("transform","translate( "+(d.width(V.debug("Rough node insert CXC",M),N),":first-child"),E=a.insert(()=>(V.debug("Rough node insert CXC",M),M),":first-child")}else E=s.insert("rect",":first-child"),_=s.insert("line"),E.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(t.padding||0)).attr("height",d.height+(t.padding||0)),_.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return Qt(t,E),t.intersect=function(A){return qt.rect(t,A)},a},"rectWithTitle")});function Ba(e,t,r,n){return e.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}var Ou=R(()=>{"use strict";o(Ba,"insertPolygonShape")});var Lm,ZQ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();Lm=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=(t?.padding||0)/2,l=a.width+t.padding,u=a.height+t.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(t.look==="handDrawn"){let p=Kt.svg(i),m=Jt(t,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=t;x.attr("class","basic label-container").attr("style",b),Qt(t,x)}else{let p=Ba(i,l,u,d);n&&p.attr("style",n),Qt(t,p)}return t.intersect=function(p){return qt.polygon(t,d,p)},i},"subroutine")});var d9t,p9t,m9t,Hv,JQ=R(()=>{"use strict";Be();Je();Ze();Qe();d9t=o((e,t,r,n,i,a)=>[`M${e},${t+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),p9t=o((e,t,r,n,i,a)=>[`M${e},${t+a}`,`M${e+r},${t+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),m9t=o((e,t,r,n,i,a)=>[`M${e-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),Hv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+t.padding,t.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+t.padding,t.height??0),d,{cssStyles:p}=t;if(t.look==="handDrawn"){let m=Kt.svg(i),g=p9t(0,0,l,f,u,h),y=m9t(0,h,l,f,u,h),v=m.path(g,Jt(t,{})),x=m.path(y,Jt(t,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=d9t(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",p).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qt(t,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(t.padding??0)/1.5-(a.y-(a.top??0))})`),t.intersect=function(m){let g=qt.rect(t,m),y=g.x-(t.x??0);if(u!=0&&(Math.abs(y)<(t.width??0)/2||Math.abs(y)==(t.width??0)/2&&Math.abs(g.y-(t.y??0))>(t.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(t.y??0)>0&&(v=-v),g.y+=v}return g},i},"cylinder")});var KL,tZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();KL=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await he(e,t,de(t)),l=a.width/2+s,u,{cssStyles:h}=t;if(t.look==="handDrawn"){let f=Kt.svg(i),d=Jt(t,{}),p=f.circle(0,0,l*2,d);u=i.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",h)}else u=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",l).attr("cx",0).attr("cy",0);return Qt(t,u),t.intersect=function(f){return V.info("Circle intersect",t,l,f),qt.circle(t,l,f)},i},"circle")});var Rw,eZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();Rw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await he(e,t,de(t)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=t;if(t.look==="handDrawn"){let p=Kt.svg(i),m=Jt(t,{roughness:.2,strokeWidth:2.5}),g=Jt(t,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",t.cssClasses).attr("style",d),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return Qt(t,f),t.intersect=function(p){return V.info("DoubleCircle intersect",t,u,p),qt.circle(t,u,p)},i},"doublecircle")});var QL,rZ=R(()=>{"use strict";Be();Je();Ze();Qe();QL=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0),t?.width??0),u=Math.max(a.height+(t.padding??0),t?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=t,g=Kt.svg(i),y=Jt(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=He(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qt(t,b),t.intersect=function(w){return qt.polygon(t,p,w)},i},"rect_left_inv_arrow")});var g9t,Wv,nZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();Ou();g9t=o((e,t,r)=>[`M${e+r/2},${t}`,`L${e+r},${t-r/2}`,`L${e+r/2},${t-r}`,`L${e},${t-r/2}`,"Z"].join(" "),"createDecisionBoxPathD"),Wv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=a.width+t.padding,l=a.height+t.padding,u=s+l,h=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:d}=t;if(t.look==="handDrawn"){let p=Kt.svg(i),m=Jt(t,{}),g=g9t(0,0,u),y=p.path(g,m);f=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),d&&f.attr("style",d)}else f=Ba(i,u,u,h);return n&&f.attr("style",n),Qt(t,f),t.intersect=function(p){return V.debug(`APA12 Intersect called SPLIT +point:`,p,` +node: +`,t,` +res:`,qt.polygon(t,h,p)),qt.polygon(t,h,p)},i},"question")});var y9t,Nw,iZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();y9t=o((e,t,r,n,i)=>[`M${e+i},${t}`,`L${e+r-i},${t}`,`L${e+r},${t-n/2}`,`L${e+r-i},${t-n}`,`L${e+i},${t-n}`,`L${e},${t-n/2}`,"Z"].join(" "),"createHexagonPathD"),Nw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=4,l=a.height+t.padding,u=l/s,h=a.width+2*u+t.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=t;if(t.look==="handDrawn"){let m=Kt.svg(i),g=Jt(t,{}),y=y9t(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=Ba(i,h,l,f);return n&&d.attr("style",n),t.width=h,t.height=l,Qt(t,d),t.intersect=function(m){return qt.polygon(t,f,m)},i},"hexagon")});async function aZ(e,t){let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=Math.max(a.width+t.padding,t?.width||0),l=Math.max(a.height+t.padding,t?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),Qt(t,f),t.intersect=function(d){return qt.rect(t,d)},i}var sZ=R(()=>{"use strict";Be();Je();Ze();o(aZ,"text")});async function Mw(e,t){let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=a.height+t.padding,l=12,u=a.width+t.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=t;if(t.look==="handDrawn"){let v=Kt.svg(i),x=Jt(t,{}),b=He(m),w=v.path(b,x);g=i.insert(()=>w,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=Ba(i,u,s,m);return n&&g.attr("style",n),Qt(t,g),t.intersect=function(v){return qt.polygon(t,m,v)},i}var oZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();Be();o(Mw,"card")});var Dm,lZ=R(()=>{"use strict";Be();Je();Ze();Qe();Dm=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=t?.padding??0,u=Math.max(a.width+(t.padding??0)*2,t?.width??0),h=Math.max(a.height+(t.padding??0)*2,t?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",p),n&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(t.padding??0)-(a.x-(a.left??0))},${-h/2+(t.padding??0)-(a.y-(a.top??0))})`),Qt(t,x),t.intersect=function(b){return qt.rect(t,b)},i},"shadedProcess")});var cZ,uZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();cZ=o((e,t)=>{let{labelStyles:r}=te(t);t.labelStyle=r;let n=de(t),i=n;n||(i="anchor");let a=e.insert("g").attr("class",i).attr("id",t.domId||t.id),s=1,{cssStyles:l}=t,u=Kt.svg(a),h=Jt(t,{fill:"black",stroke:"none",fillStyle:"solid"});t.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",l),Qt(t,d),t.intersect=function(p){return V.info("Circle intersect",t,s,p),qt.circle(t,s,p)},a},"anchor")});var Yv,hZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();Yv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=Math.max(a.width+(t.padding??0),t?.width??0),l=Math.max(a.height+(t.padding??0),t?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=t;if(t.look==="handDrawn"){let d=Kt.svg(i),p=Jt(t,{}),m=He(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ba(i,s,l,u);return n&&h.attr("style",n),t.width=s,t.height=l,Qt(t,h),t.intersect=function(d){return qt.polygon(t,u,d)},i},"lean_right")});var qv,fZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();qv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=Math.max(a.width+(t.padding??0),t?.width??0),l=Math.max(a.height+(t.padding??0),t?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=t;if(t.look==="handDrawn"){let d=Kt.svg(i),p=Jt(t,{}),m=He(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ba(i,s,l,u);return n&&h.attr("style",n),t.width=s,t.height=l,Qt(t,h),t.intersect=function(d){return qt.polygon(t,u,d)},i},"lean_left")});var Xv,dZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();Xv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=a.width+t.padding,l=a.height+t.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=t;if(t.look==="handDrawn"){let d=Kt.svg(i),p=Jt(t,{}),m=He(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ba(i,s,l,u);return n&&h.attr("style",n),t.width=s,t.height=l,Qt(t,h),t.intersect=function(d){return qt.polygon(t,u,d)},i},"trapezoid")});var Rm,pZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ou();Rm=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=Math.max(a.width+(t.padding??0)*2,t?.width??0),l=Math.max(a.height+(t.padding??0)*2,t?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=t;if(t.look==="handDrawn"){let d=Kt.svg(i),p=Jt(t,{}),m=He(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Ba(i,s,l,u);return n&&h.attr("style",n),t.width=s,t.height=l,Qt(t,h),t.intersect=function(d){return qt.polygon(t,u,d)},i},"inv_trapezoid")});var mZ,gZ=R(()=>{"use strict";Gv();Be();Je();mZ=o(async(e,t)=>{let{shapeSvg:r,bbox:n,label:i}=await he(e,t,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Qt(t,a),t.intersect=function(u){return qt.rect(t,u)},r},"labelRect")});var Iw,yZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();Be();hr();Ue();Iw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Tr(pt().flowchart?.htmlLabels),u=a.width+(t.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=He(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),t.width=u,t.height=h,Qt(t,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(t.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),t.intersect=function(b){return V.info("Triangle intersect",t,d,b),qt.polygon(t,d,b)},i},"triangle")});var ZL,vZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();ZL=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await he(e,t,de(t)),u=Math.max(i,l.width+(t.padding??0)*2,t?.width??0),h=Math.max(a,l.height+(t.padding??0)*2,t?.height??0),f=h/2,{cssStyles:d}=t,p=Kt.svg(s),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...Sw(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=He(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),Qt(t,x),t.intersect=function(b){return V.info("Pill intersect",t,{radius:f,point:b}),qt.polygon(t,g,b)},s},"halfRoundedRectangle")});var Ow,xZ=R(()=>{"use strict";Be();Je();Ze();Qe();Ow=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=80,l=20,u=Math.max(s,(a.width+(t.padding??0)*2)*1.25,t?.width??0),h=Math.max(l,a.height+(t.padding??0)*2,t?.height??0),f=h/2,{cssStyles:d}=t,p=Kt.svg(i),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...Sw(-v,-y/2,f,50,270,90)],w=He(b),S=p.path(w,m),T=i.insert(()=>S,":first-child");return T.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",d),n&&t.look!=="handDrawn"&&T.selectChildren("path").attr("style",n),T.attr("transform",`translate(${-u/2}, ${-h/2})`),Qt(t,T),t.intersect=function(E){return qt.polygon(t,b,E)},i},"curvedTrapezoid")});var Pw,bZ=R(()=>{"use strict";Be();Je();Ze();Qe();Pw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=t,p=Kt.svg(i),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=He(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&t.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(t.padding??0)-(a.x-(a.left??0))}, ${-u/4+(t.padding??0)-(a.y-(a.top??0))})`),Qt(t,x),t.intersect=function(b){return qt.polygon(t,g,b)},i},"slopedRect")});function wZ(e,t,r,n,i,a,s){let u=(e+r)/2,h=(t+n)/2,f=Math.atan2(n-t,r-e),d=(r-e)/2,p=(n-t)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),w=Math.atan2((t-b)/a,(e-x)/i),T=Math.atan2((n-b)/a,(r-x)/i)-w;s&&T<0&&(T+=2*Math.PI),!s&&T>0&&(T-=2*Math.PI);let E=[];for(let _=0;_<20;_++){let A=_/19,L=w+A*T,M=x+i*Math.cos(L),N=b+a*Math.sin(L);E.push({x:M,y:N})}return E}var Bw,TZ=R(()=>{"use strict";Be();Je();Ze();Qe();o(wZ,"generateArcPoints");Bw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=a.width+t.padding+20,l=a.height+t.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=t,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...wZ(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...wZ(s/2,l/2,s/2,-l/2,h,u,!0)],p=Kt.svg(i),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=He(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),Qt(t,v),t.intersect=function(x){return qt.polygon(t,d,x)},i},"bowTieRect")});var jv,kZ=R(()=>{"use strict";Be();Je();Ze();Qe();jv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=a.width+t.padding,u=a.height+t.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&t.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(t.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(t.padding??0)/2-(a.y-(a.top??0))})`),Qt(t,x),t.intersect=function(b){return qt.rect(t,b)},i},"dividedRectangle")});function v9t(e){let t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=e*2,i={x:n/2*t,y:n/2*r},a={x:-(n/2)*t,y:n/2*r},s={x:-(n/2)*t,y:-(n/2)*r},l={x:n/2*t,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}var Fw,EZ=R(()=>{"use strict";ce();Be();Ze();Qe();Je();o(v9t,"createLine");Fw=o((e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r,t.label="";let i=e.insert("g").attr("class",de(t)).attr("id",t.domId??t.id),a=Math.max(30,t?.width??0),{cssStyles:s}=t,l=Kt.svg(i),u=Jt(t,{});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=v9t(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",n),Qt(t,p),t.intersect=function(m){return V.info("crossedCircle intersect",t,{radius:a,point:m}),qt.circle(t,a,m)},i},"crossedCircle")});var JL,CZ=R(()=>{"use strict";Be();Je();Ze();Qe();JL=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=100,l=50,u=Math.max(a.width+(t.padding??0)*2,t?.width??0),h=Math.max(a.height+(t.padding??0)*2,t?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=t,v=Kt.svg(i),x=Jt(t,{});t.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...Vo(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...Vo(d/2,-g/2,-d/2,-g/2,m,-1)],w=He(b),S=v.path(w,x),T=i.insert(()=>S,":first-child");return T.attr("class","basic label-container"),y&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",y),n&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qt(t,T),t.intersect=function(E){return qt.polygon(t,b,E)},i},"waveRectangle")});var x9t,b9t,w9t,zw,SZ=R(()=>{"use strict";Be();Ze();Qe();Je();x9t=o((e,t,r,n,i,a)=>`M${e},${t} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),b9t=o((e,t,r,n,i,a)=>[`M${e},${t}`,`M${e+r},${t}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),w9t=o((e,t,r,n,i,a)=>[`M${e+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD"),zw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await he(e,t,de(t)),u=t.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=t,g;if(t.look==="handDrawn"){let y=Kt.svg(i),v=b9t(0,0,p,h,d,f),x=w9t(0,0,p,h,d,f),b=y.path(v,Jt(t,{})),w=y.path(x,Jt(t,{fill:"none"}));g=i.insert(()=>w,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=x9t(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",m).attr("style",n)}return g.attr("class","basic label-container"),m&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",m),n&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qt(t,g),t.intersect=function(y){let v=qt.rect(t,y),x=v.y-(t.y??0);if(f!=0&&(Math.abs(x)<(t.height??0)/2||Math.abs(x)==(t.height??0)/2&&Math.abs(v.x-(t.x??0))>(t.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(b)),b=d-b,y.x-(t.x??0)>0&&(b=-b),v.x+=b}return v},i},"tiltedCylinder")});var $w,AZ=R(()=>{"use strict";Be();Je();Ze();Qe();$w=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=60,l=20,u=Math.max(s,a.width+(t.padding??0)*2,t?.width??0),h=Math.max(l,a.height+(t.padding??0)*2,t?.height??0),{cssStyles:f}=t,d=Kt.svg(i),p=Jt(t,{});t.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=He(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),Qt(t,v),t.intersect=function(x){return qt.polygon(t,m,x)},i},"trapezoidalPentagon")});var Gw,_Z=R(()=>{"use strict";ce();Be();Je();Ze();Qe();Be();Gw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=a.width+(t.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=t,p=Kt.svg(i),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=He(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),t.width=l,t.height=u,Qt(t,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(t.padding??0)/2+(a.y-(a.top??0))})`),t.intersect=function(x){return V.info("Triangle intersect",t,f,x),qt.polygon(t,f,x)},i},"flippedTriangle")});var tD,LZ=R(()=>{"use strict";ce();Be();Je();Ze();Qe();tD=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.label="",t.labelStyle=r;let{shapeSvg:i}=await he(e,t,de(t)),a=Math.max(30,t?.width??0),s=Math.max(30,t?.height??0),{cssStyles:l}=t,u=Kt.svg(i),h=Jt(t,{});t.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=He(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&t.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),Qt(t,m),t.intersect=function(g){return V.info("Pill intersect",t,{points:f}),qt.polygon(t,f,g)},i},"hourglass")});var Kv,DZ=R(()=>{"use strict";Be();Ze();Qe();Je();Kv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a}=await he(e,t,de(t)),s=Math.max(a.width+(t.padding??0)*2,t?.width??0),l=Math.max(a.height+(t.padding??0)*2,t?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=He(y),b=m.path(x,g),w=He(v),S=m.path(w,{...g,fillStyle:"solid"}),T=i.insert(()=>S,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qt(t,T),t.intersect=function(E){return qt.polygon(t,y,E)},i},"taggedRect")});var Qv,RZ=R(()=>{"use strict";Be();Ze();Qe();Je();Qv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=He(y),b=m.path(x,g),w=He(v),S=m.path(w,{...g,fill:"none"}),T=i.insert(()=>S,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),Qt(t,T),t.intersect=function(E){return qt.polygon(t,y,E)},i},"multiRect")});var T9t,k9t,E9t,Vw,NZ=R(()=>{"use strict";Be();Je();Ze();Qe();T9t=o((e,t,r,n,i,a,s)=>[`M${e},${t+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${e},${t+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),k9t=o((e,t,r,n,i,a,s)=>[`M${e},${t+a}`,`M${e+r},${t+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${e},${t+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),E9t=o((e,t,r,n,i,a)=>[`M${e-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),Vw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0),t.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(t.padding??0),t.height??0),d=f*.1,p,{cssStyles:m}=t;if(t.look==="handDrawn"){let g=Kt.svg(i),y=k9t(0,0,l,f,u,h,d),v=E9t(0,h,l,f,u,h),x=Jt(t,{}),b=g.path(y,x),w=g.path(v,x);i.insert(()=>w,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=T9t(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",m).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qt(t,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),t.intersect=function(g){let y=qt.rect(t,g),v=y.x-(t.x??0);if(u!=0&&(Math.abs(v)<(t.width??0)/2||Math.abs(v)==(t.width??0)/2&&Math.abs(y.y-(t.y??0))>(t.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(t.y??0)>0&&(x=-x),y.y+=x}return y},i},"linedCylinder")});var eD,MZ=R(()=>{"use strict";Be();Je();Qe();Ze();eD=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=u/8,f=u+h,{cssStyles:d}=t,m=70-l,g=m>0?m/2:0,y=Kt.svg(i),v=Jt(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...Vo(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=He(x),w=y.path(b,v),S=i.insert(()=>w,":first-child");return S.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",d),n&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(t.padding??0)-(a.x-(a.left??0))},${-u/2+(t.padding??0)-h-(a.y-(a.top??0))})`),Qt(t,S),t.intersect=function(T){return qt.polygon(t,x,T)},i},"waveEdgedRectangle")});var Uw,IZ=R(()=>{"use strict";ce();Be();Ze();Qe();Je();Be();Uw=o((e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.label="",t.labelStyle=r;let i=e.insert("g").attr("class",de(t)).attr("id",t.domId??t.id),{cssStyles:a}=t,s=Math.max(35,t?.width??0),l=Math.max(35,t?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Kt.svg(i),d=Jt(t,{});t.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=He(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),Qt(t,g),t.intersect=function(y){return V.info("lightningBolt intersect",t,y),qt.polygon(t,h,y)},i},"lightningBolt")});var Hw,OZ=R(()=>{"use strict";Qe();ce();Je();Ze();Be();Hw=o((e,t,{config:{themeVariables:r}})=>{let{labelStyles:n,nodeStyles:i}=te(t);t.label="",t.labelStyle=n;let a=e.insert("g").attr("class",de(t)).attr("id",t.domId??t.id),s=7,{cssStyles:l}=t,u=Kt.svg(a),{nodeBorder:h}=r,f=Jt(t,{fillStyle:"solid"});t.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&t.look!=="handDrawn"&&p.selectAll("path").attr("style",i),Qt(t,p),t.intersect=function(m){return V.info("filledCircle intersect",t,{radius:s,point:m}),qt.circle(t,s,m)},a},"filledCircle")});var Zv,PZ=R(()=>{"use strict";Be();Je();Qe();Ze();Zv=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=t,y=Vo(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],w=Kt.svg(i),S=Jt(t,{});t.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");let T=He(x),E=w.path(T,S),_=He(b),A=w.path(_,S),L=i.insert(()=>E,":first-child");return L.insert(()=>A),L.attr("class","basic label-container"),g&&t.look!=="handDrawn"&&L.selectAll("path").attr("style",g),n&&t.look!=="handDrawn"&&L.selectAll("path").attr("style",n),L.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),Qt(t,L),t.intersect=function(M){return qt.polygon(t,x,M)},i},"multiWaveEdgedRectangle")});var Ww,BZ=R(()=>{"use strict";Be();Ze();Qe();Je();Ww=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=t,m=Kt.svg(i),g=Jt(t,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&t.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),Qt(t,b),t.intersect=function(w){return qt.polygon(t,y,w)},i},"windowPane")});var rD,FZ=R(()=>{"use strict";Be();Je();Qe();Ze();rD=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=u/4,f=u+h,{cssStyles:d}=t,p=Kt.svg(i),m=Jt(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...Vo(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(t.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(t.padding??0)-h/2-(a.y-(a.top??0))})`),Qt(t,v),t.intersect=function(x){return qt.polygon(t,g,x)},i},"linedWaveEdgedRect")});var nD,zZ=R(()=>{"use strict";Be();Je();Qe();Ze();nD=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=Math.max(a.width+(t.padding??0)*2,t?.width??0),u=Math.max(a.height+(t.padding??0)*2,t?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=t,g=Kt.svg(i),y=Jt(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...Vo(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,w=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...Vo(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],S=He(v),T=g.path(S,y),E=He(w),_=g.path(E,{...y,fillStyle:"solid"}),A=i.insert(()=>_,":first-child");return A.insert(()=>T,":first-child"),A.attr("class","basic label-container"),m&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",m),n&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(t.padding??0)-(a.x-(a.left??0))},${-u/2+(t.padding??0)-h/2-(a.y-(a.top??0))})`),Qt(t,A),t.intersect=function(L){return qt.polygon(t,v,L)},i},"taggedWaveEdgedRectangle")});function qh(e,t,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Be();Je();Ze();Qe();o(qh,"generateCirclePoints");Yw=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=a.width+(t.padding??0),u=a.height+(t.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=t,d=[...qh(l/2,-u/2,h,30,-90,0),{x:-l/2-h,y:h},...qh(l/2+h*2,-h,h,20,-180,-270),...qh(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:-u/2},...qh(l/2,u/2,h,20,0,90)],p=[{x:l/2,y:-u/2-h},{x:-l/2,y:-u/2-h},...qh(l/2,-u/2,h,20,-90,0),{x:-l/2-h,y:-h},...qh(l/2+l*.1,-h,h,20,-180,-270),...qh(l/2+l*.1,h,h,20,-90,-180),{x:-l/2-h,y:u/2},...qh(l/2,u/2,h,20,0,90),{x:-l/2,y:u/2+h},{x:l/2,y:u/2+h}],m=Kt.svg(i),g=Jt(t,{fill:"none"});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let v=He(d).replace("Z",""),x=m.path(v,g),b=He(p),w=m.path(b,{...g}),S=i.insert("g",":first-child");return S.insert(()=>w,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),f&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",f),n&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(t.padding??0)/2-(a.y-(a.top??0))})`),Qt(t,S),t.intersect=function(T){return qt.polygon(t,p,T)},i},"curlyBraceLeft")});function Xh(e,t,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Be();Je();Ze();Qe();o(Xh,"generateCirclePoints");GZ=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=a.width+(t.padding??0),u=a.height+(t.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=t,d=[...Xh(l/2,-u/2,h,20,-90,0),{x:l/2+h,y:-h},...Xh(l/2+h*2,-h,h,20,-180,-270),...Xh(l/2+h*2,h,h,20,-90,-180),{x:l/2+h,y:u/2},...Xh(l/2,u/2,h,20,0,90)],p=[{x:-l/2,y:-u/2-h},{x:l/2,y:-u/2-h},...Xh(l/2,-u/2,h,20,-90,0),{x:l/2+h,y:-h},...Xh(l/2+h*2,-h,h,20,-180,-270),...Xh(l/2+h*2,h,h,20,-90,-180),{x:l/2+h,y:u/2},...Xh(l/2,u/2,h,20,0,90),{x:l/2,y:u/2+h},{x:-l/2,y:u/2+h}],m=Kt.svg(i),g=Jt(t,{fill:"none"});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let v=He(d).replace("Z",""),x=m.path(v,g),b=He(p),w=m.path(b,{...g}),S=i.insert("g",":first-child");return S.insert(()=>w,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),f&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",f),n&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(t.padding??0)/2-(a.x-(a.left??0))},${-u/2+(t.padding??0)/2-(a.y-(a.top??0))})`),Qt(t,S),t.intersect=function(T){return qt.polygon(t,p,T)},i},"curlyBraceRight")});function Fa(e,t,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Be();Je();Ze();Qe();o(Fa,"generateCirclePoints");UZ=o(async(e,t)=>{let{labelStyles:r,nodeStyles:n}=te(t);t.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await he(e,t,de(t)),l=a.width+(t.padding??0),u=a.height+(t.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=t,d=[...Fa(l/2,-u/2,h,30,-90,0),{x:-l/2-h,y:h},...Fa(l/2+h*2,-h,h,20,-180,-270),...Fa(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:-u/2},...Fa(l/2,u/2,h,20,0,90)],p=[...Fa(-l/2+h+h/2,-u/2,h,20,-90,-180),{x:l/2-h/2,y:h},...Fa(-l/2-h/2,-h,h,20,0,90),...Fa(-l/2-h/2,h,h,20,-90,0),{x:l/2-h/2,y:-h},...Fa(-l/2+h+h/2,u/2,h,30,-180,-270)],m=[{x:l/2,y:-u/2-h},{x:-l/2,y:-u/2-h},...Fa(l/2,-u/2,h,20,-90,0),{x:-l/2-h,y:-h},...Fa(l/2+h*2,-h,h,20,-180,-270),...Fa(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:u/2},...Fa(l/2,u/2,h,20,0,90),{x:-l/2,y:u/2+h},{x:l/2-h-h/2,y:u/2+h},...Fa(-l/2+h+h/2,-u/2,h,20,-90,-180),{x:l/2-h/2,y:h},...Fa(-l/2-h/2,-h,h,20,0,90),...Fa(-l/2-h/2,h,h,20,-90,0),{x:l/2-h/2,y:-h},...Fa(-l/2+h+h/2,u/2,h,30,-180,-270)],g=Kt.svg(i),y=Jt(t,{fill:"none"});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let x=He(d).replace("Z",""),b=g.path(x,y),S=He(p).replace("Z",""),T=g.path(S,y),E=He(m),_=g.path(E,{...y}),A=i.insert("g",":first-child");return A.insert(()=>_,":first-child").attr("stroke-opacity",0),A.insert(()=>b,":first-child"),A.insert(()=>T,":first-child"),A.attr("class","text"),f&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",f),n&&t.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(t.padding??0)/2-(a.x-(a.left??0))},${-u/2+(t.padding??0)/2-(a.y-(a.top??0))})`),Qt(t,A),t.intersect=function(L){return qt.polygon(t,m,L)},i},"curlyBraces")});var WZ,YZ=R(()=>{"use strict";Qe();ce();iu();Je();Ze();Be();WZ=o(async(e,t,{config:{themeVariables:r,flowchart:n}})=>{let{labelStyles:i}=te(t);t.labelStyle=i;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await he(e,t,"icon-shape default"),m=t.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=Cc(t),w=-y/2,S=-g/2,T=t.label?8:0,E=Kt.svg(h),_=Jt(t,{stroke:b.get("fill")||x});t.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");let A=E.rectangle(w,S,y,g,_),L=Math.max(y,f.width),M=g+f.height+T,N=E.rectangle(-L/2,-M/2,L,M,{..._,fill:"transparent",stroke:"none"}),k=h.insert(()=>A,":first-child"),I=h.insert(()=>N);if(t.icon){let C=h.append("g");C.html(`${await Ao(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let O=C.node().getBBox(),D=O.width,P=O.height,F=O.x,B=O.y;C.attr("transform",`translate(${-D/2-F},${m?f.height/2+T/2-P/2-B:-f.height/2-T/2-P/2-B})`),C.selectAll("path").attr("fill",b.get("stroke")??v)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-M/2:M/2-f.height})`),k.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qt(t,I),t.intersect=function(C){if(V.info("iconSquare intersect",t,C),!t.label)return qt.rect(t,C);let O=t.x??0,D=t.y??0,P=t.height??0,F=[];return m?F=[{x:O-f.width/2,y:D-P/2},{x:O+f.width/2,y:D-P/2},{x:O+f.width/2,y:D-P/2+f.height+T},{x:O+y/2,y:D-P/2+f.height+T},{x:O+y/2,y:D+P/2},{x:O-y/2,y:D+P/2},{x:O-y/2,y:D-P/2+f.height+T},{x:O-f.width/2,y:D-P/2+f.height+T}]:F=[{x:O-y/2,y:D-P/2},{x:O+y/2,y:D-P/2},{x:O+y/2,y:D-P/2+g},{x:O+f.width/2,y:D-P/2+g},{x:O+f.width/2/2,y:D+P/2},{x:O-f.width/2,y:D+P/2},{x:O-f.width/2,y:D-P/2+g},{x:O-y/2,y:D-P/2+g}],qt.polygon(t,F,C)},h},"iconSquare")});var qZ,XZ=R(()=>{"use strict";Qe();ce();iu();Je();Ze();Be();qZ=o(async(e,t,{config:{themeVariables:r,flowchart:n}})=>{let{labelStyles:i}=te(t);t.labelStyle=i;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await he(e,t,"icon-shape default"),p=20,m=t.label?8:0,g=t.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=Cc(t),b=Kt.svg(h),w=Jt(t,{stroke:x.get("fill")||v});t.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let S=h.append("g");t.icon&&S.html(`${await Ao(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let T=S.node().getBBox(),E=T.width,_=T.height,A=T.x,L=T.y,M=Math.max(E,_)*Math.SQRT2+p*2,N=b.circle(0,0,M,w),k=Math.max(M,f.width),I=M+f.height+m,C=b.rectangle(-k/2,-I/2,k,I,{...w,fill:"transparent",stroke:"none"}),O=h.insert(()=>N,":first-child"),D=h.insert(()=>C);return S.attr("transform",`translate(${-E/2-A},${g?f.height/2+m/2-_/2-L:-f.height/2-m/2-_/2-L})`),S.selectAll("path").attr("fill",x.get("stroke")||y),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-I/2:I/2-f.height})`),O.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),Qt(t,D),t.intersect=function(P){return V.info("iconSquare intersect",t,P),qt.rect(t,P)},h},"iconCircle")});var jZ,KZ=R(()=>{"use strict";Qe();ce();iu();Je();Ze();Be();jZ=o(async(e,t,{config:{themeVariables:r,flowchart:n}})=>{let{labelStyles:i}=te(t);t.labelStyle=i;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await he(e,t,"icon-shape default"),p=t.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=Cc(t),x=-g/2,b=-m/2,w=t.label?8:0,S=Kt.svg(h),T=Jt(t,{stroke:"none",fill:"none"});t.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=S.rectangle(x,b,g,m,T),_=Math.max(g,f.width),A=m+f.height+w,L=S.rectangle(-_/2,-A/2,_,A,{...T,fill:"transparent",stroke:"none"}),M=h.insert(()=>E,":first-child"),N=h.insert(()=>L);if(t.icon){let k=h.append("g");k.html(`${await Ao(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let I=k.node().getBBox(),C=I.width,O=I.height,D=I.x,P=I.y;k.attr("transform",`translate(${-C/2-D},${p?f.height/2+w/2-O/2-P:-f.height/2-w/2-O/2-P})`),k.selectAll("path").attr("fill",v.get("stroke")||y)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-A/2:A/2-f.height})`),M.attr("transform",`translate(0,${p?f.height/2+w/2:-f.height/2-w/2})`),Qt(t,N),t.intersect=function(k){if(V.info("iconSquare intersect",t,k),!t.label)return qt.rect(t,k);let I=t.x??0,C=t.y??0,O=t.height??0,D=[];return p?D=[{x:I-f.width/2,y:C-O/2},{x:I+f.width/2,y:C-O/2},{x:I+f.width/2,y:C-O/2+f.height+w},{x:I+g/2,y:C-O/2+f.height+w},{x:I+g/2,y:C+O/2},{x:I-g/2,y:C+O/2},{x:I-g/2,y:C-O/2+f.height+w},{x:I-f.width/2,y:C-O/2+f.height+w}]:D=[{x:I-g/2,y:C-O/2},{x:I+g/2,y:C-O/2},{x:I+g/2,y:C-O/2+m},{x:I+f.width/2,y:C-O/2+m},{x:I+f.width/2/2,y:C+O/2},{x:I-f.width/2,y:C+O/2},{x:I-f.width/2,y:C-O/2+m},{x:I-g/2,y:C-O/2+m}],qt.polygon(t,D,k)},h},"icon")});var QZ,ZZ=R(()=>{"use strict";Qe();ce();Je();Ze();Be();QZ=o(async(e,t,{config:{flowchart:r}})=>{let n=new Image;n.src=t?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));t.imageAspectRatio=i/a;let{labelStyles:s}=te(t);t.labelStyle=s;let l=r?.wrappingWidth;t.defaultWidth=r?.wrappingWidth;let u=Math.max(t.label?l??0:0,t?.assetWidth??i),h=t.constraint==="on"&&t?.assetHeight?t.assetHeight*t.imageAspectRatio:u,f=t.constraint==="on"?h/t.imageAspectRatio:t?.assetHeight??a;t.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await he(e,t,"image-shape default"),g=t.pos==="t",y=-h/2,v=-f/2,x=t.label?8:0,b=Kt.svg(d),w=Jt(t,{});t.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let S=b.rectangle(y,v,h,f,w),T=Math.max(h,p.width),E=f+p.height+x,_=b.rectangle(-T/2,-E/2,T,E,{...w,fill:"none",stroke:"none"}),A=d.insert(()=>S,":first-child"),L=d.insert(()=>_);if(t.img){let M=d.append("image");M.attr("href",t.img),M.attr("width",h),M.attr("height",f),M.attr("preserveAspectRatio","none"),M.attr("transform",`translate(${-h/2},${g?E/2-f:-E/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),A.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),Qt(t,L),t.intersect=function(M){if(V.info("iconSquare intersect",t,M),!t.label)return qt.rect(t,M);let N=t.x??0,k=t.y??0,I=t.height??0,C=[];return g?C=[{x:N-p.width/2,y:k-I/2},{x:N+p.width/2,y:k-I/2},{x:N+p.width/2,y:k-I/2+p.height+x},{x:N+h/2,y:k-I/2+p.height+x},{x:N+h/2,y:k+I/2},{x:N-h/2,y:k+I/2},{x:N-h/2,y:k-I/2+p.height+x},{x:N-p.width/2,y:k-I/2+p.height+x}]:C=[{x:N-h/2,y:k-I/2},{x:N+h/2,y:k-I/2},{x:N+h/2,y:k-I/2+f},{x:N+p.width/2,y:k-I/2+f},{x:N+p.width/2/2,y:k+I/2},{x:N-p.width/2,y:k+I/2},{x:N-p.width/2,y:k-I/2+f},{x:N-h/2,y:k-I/2+f}],qt.polygon(t,C,M)},d},"imageSquare")});var JZ,tJ=R(()=>{"use strict";Qe();ce();iu();Je();Ze();Am();Be();JZ=o(async(e,t,{config:{themeVariables:r,flowchart:n}})=>{let{labelStyles:i}=te(t);t.labelStyle=i;let a=t.assetHeight??48,s=t.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;t.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await he(e,t,"icon-shape default"),m=t.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=Cc(t),w=-y/2,S=-g/2,T=t.label?8:0,E=Kt.svg(h),_=Jt(t,{stroke:b.get("fill")||x});t.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");let A=E.path(Ml(w,S,y,g,5),_),L=Math.max(y,f.width),M=g+f.height+T,N=E.rectangle(-L/2,-M/2,L,M,{..._,fill:"transparent",stroke:"none"}),k=h.insert(()=>A,":first-child"),I=h.insert(()=>N);if(t.icon){let C=h.append("g");C.html(`${await Ao(t.icon,{height:l,width:l,fallbackPrefix:""})}`);let O=C.node().getBBox(),D=O.width,P=O.height,F=O.x,B=O.y;C.attr("transform",`translate(${-D/2-F},${m?f.height/2+T/2-P/2-B:-f.height/2-T/2-P/2-B})`),C.selectAll("path").attr("fill",b.get("stroke")??v)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-M/2:M/2-f.height})`),k.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qt(t,I),t.intersect=function(C){if(V.info("iconSquare intersect",t,C),!t.label)return qt.rect(t,C);let O=t.x??0,D=t.y??0,P=t.height??0,F=[];return m?F=[{x:O-f.width/2,y:D-P/2},{x:O+f.width/2,y:D-P/2},{x:O+f.width/2,y:D-P/2+f.height+T},{x:O+y/2,y:D-P/2+f.height+T},{x:O+y/2,y:D+P/2},{x:O-y/2,y:D+P/2},{x:O-y/2,y:D-P/2+f.height+T},{x:O-f.width/2,y:D-P/2+f.height+T}]:F=[{x:O-y/2,y:D-P/2},{x:O+y/2,y:D-P/2},{x:O+y/2,y:D-P/2+g},{x:O+f.width/2,y:D-P/2+g},{x:O+f.width/2/2,y:D+P/2},{x:O-f.width/2,y:D+P/2},{x:O-f.width/2,y:D-P/2+g},{x:O-y/2,y:D-P/2+g}],qt.polygon(t,F,C)},h},"iconRounded")});var iD,Nm,qw,eJ,rJ,aD,sD=R(()=>{"use strict";ce();zQ();$Q();GQ();VQ();UQ();HQ();YQ();XQ();jQ();QQ();ZQ();JQ();tZ();eZ();rZ();nZ();iZ();sZ();oZ();lZ();uZ();hZ();fZ();dZ();pZ();gZ();yZ();vZ();xZ();bZ();TZ();kZ();EZ();CZ();SZ();AZ();_Z();LZ();DZ();RZ();NZ();MZ();IZ();OZ();PZ();BZ();FZ();zZ();$Z();VZ();HZ();YZ();XZ();KZ();ZZ();tJ();iD={state:FQ,stateStart:Vv,stateEnd:Uv,forkJoin:Lw,choice:WQ,note:qQ,rectWithTitle:KQ,roundedRect:_w,squareRect:_m,rectangle:_m,rect:_m,process:_m,proc:_m,rounded:_w,event:_w,stadium:Dw,pill:Dw,terminal:Dw,subroutine:Lm,"framed-rectangle":Lm,"fr-rect":Lm,subprocess:Lm,subproc:Lm,cylinder:Hv,db:Hv,cyl:Hv,database:Hv,question:Wv,diam:Wv,diamond:Wv,decision:Wv,hexagon:Nw,hex:Nw,prepare:Nw,lean_right:Yv,"lean-r":Yv,"lean-right":Yv,"in-out":Yv,lean_left:qv,"lean-l":qv,"lean-left":qv,"out-in":qv,trapezoid:Xv,"trap-b":Xv,"trapezoid-bottom":Xv,priority:Xv,inv_trapezoid:Rm,"inv-trapezoid":Rm,"trapezoid-top":Rm,"trap-t":Rm,manual:Rm,doublecircle:Rw,"dbl-circ":Rw,"double-circle":Rw,circle:KL,circ:KL,rect_left_inv_arrow:QL,odd:QL,card:Mw,"notched-rectangle":Mw,"notch-rect":Mw,"lined-rectangle":Dm,"lin-rect":Dm,"lin-proc":Dm,"lined-process":Dm,"shaded-process":Dm,"small-circle":Vv,"sm-circ":Vv,start:Vv,stop:Uv,"framed-circle":Uv,"fr-circ":Uv,join:Lw,fork:Lw,comment:Yw,"brace-l":Yw,bolt:Uw,"com-link":Uw,"lightning-bolt":Uw,doc:eD,document:eD,delay:ZL,"half-rounded-rectangle":ZL,"horizontal-cylinder":zw,"h-cyl":zw,das:zw,"lined-cylinder":Vw,"lin-cyl":Vw,disk:Vw,"curved-trapezoid":Ow,"curv-trap":Ow,display:Ow,"divided-rectangle":jv,"div-rect":jv,"div-proc":jv,"divided-process":jv,triangle:Iw,tri:Iw,extract:Iw,"window-pane":Ww,"win-pane":Ww,"internal-storage":Ww,"f-circ":Hw,junction:Hw,"filled-circle":Hw,"lin-doc":rD,"lined-document":rD,"notched-pentagon":$w,"notch-pent":$w,"loop-limit":$w,"flipped-triangle":Gw,"flip-tri":Gw,"manual-file":Gw,"sloped-rectangle":Pw,"sl-rect":Pw,"manual-input":Pw,docs:Zv,documents:Zv,"st-doc":Zv,"stacked-document":Zv,processes:Qv,procs:Qv,"stacked-rectangle":Qv,"st-rect":Qv,flag:JL,"paper-tape":JL,"bow-tie-rectangle":Bw,"bow-rect":Bw,"stored-data":Bw,"crossed-circle":Fw,"cross-circ":Fw,summary:Fw,"tag-doc":nD,"tagged-document":nD,"tag-rect":Kv,"tagged-rectangle":Kv,"tag-proc":Kv,"tagged-process":Kv,hourglass:tD,collate:tD,text:aZ,anchor:cZ,brace:Yw,labelRect:mZ,"brace-r":GZ,braces:UZ,iconSquare:WZ,iconCircle:qZ,icon:jZ,iconRounded:JZ,imageSquare:QZ},Nm=new Map,qw=o(async(e,t,r)=>{let n,i;if(t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect"),!iD[t.shape])throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let a;r.config.securityLevel==="sandbox"?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),n=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a),i=await iD[t.shape](n,t,r)}else i=await iD[t.shape](e,t,r),n=i;return t.tooltip&&i.attr("title",t.tooltip),Nm.set(t.id,n),t.haveCallback&&Nm.get(t.id).attr("class",Nm.get(t.id).attr("class")+" clickable"),n},"insertNode"),eJ=o((e,t)=>{Nm.set(t.id,e)},"setNodeElem"),rJ=o(()=>{Nm.clear()},"clear"),aD=o(e=>{let t=Nm.get(e.id);V.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let r=8,n=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+n-e.width/2)+", "+(e.y-e.height/2-r)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),n},"positionNode")});var nJ,iJ=R(()=>{"use strict";js();hr();ce();WL();qL();XL();sD();Be();_r();nJ={common:Yt,getConfig:Nr,insertCluster:gw,insertEdge:Ew,insertEdgeLabel:Tw,insertMarkers:Cw,insertNode:qw,interpolateToCurve:mm,labelHelper:he,log:V,positionEdgeLabel:kw}});function S9t(e){return typeof e=="symbol"||ti(e)&&ga(e)==C9t}var C9t,oo,Fd=R(()=>{"use strict";Au();Po();C9t="[object Symbol]";o(S9t,"isSymbol");oo=S9t});function A9t(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r{"use strict";o(A9t,"arrayMap");Ns=A9t});function oJ(e){if(typeof e=="string")return e;if(Le(e))return Ns(e,oJ)+"";if(oo(e))return sJ?sJ.call(e):"";var t=e+"";return t=="0"&&1/e==-_9t?"-0":t}var _9t,aJ,sJ,lJ,cJ=R(()=>{"use strict";kd();zd();Hn();Fd();_9t=1/0,aJ=ra?ra.prototype:void 0,sJ=aJ?aJ.toString:void 0;o(oJ,"baseToString");lJ=oJ});function D9t(e){for(var t=e.length;t--&&L9t.test(e.charAt(t)););return t}var L9t,uJ,hJ=R(()=>{"use strict";L9t=/\s/;o(D9t,"trimmedEndIndex");uJ=D9t});function N9t(e){return e&&e.slice(0,uJ(e)+1).replace(R9t,"")}var R9t,fJ,dJ=R(()=>{"use strict";hJ();R9t=/^\s+/;o(N9t,"baseTrim");fJ=N9t});function B9t(e){if(typeof e=="number")return e;if(oo(e))return pJ;if(xn(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=xn(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=fJ(e);var r=I9t.test(e);return r||O9t.test(e)?P9t(e.slice(2),r?2:8):M9t.test(e)?pJ:+e}var pJ,M9t,I9t,O9t,P9t,mJ,gJ=R(()=>{"use strict";dJ();eo();Fd();pJ=NaN,M9t=/^[-+]0x[0-9a-f]+$/i,I9t=/^0b[01]+$/i,O9t=/^0o[0-7]+$/i,P9t=parseInt;o(B9t,"toNumber");mJ=B9t});function z9t(e){if(!e)return e===0?e:0;if(e=mJ(e),e===yJ||e===-yJ){var t=e<0?-1:1;return t*F9t}return e===e?e:0}var yJ,F9t,Mm,oD=R(()=>{"use strict";gJ();yJ=1/0,F9t=17976931348623157e292;o(z9t,"toFinite");Mm=z9t});function $9t(e){var t=Mm(e),r=t%1;return t===t?r?t-r:t:0}var Sc,Im=R(()=>{"use strict";oD();o($9t,"toInteger");Sc=$9t});var G9t,Xw,vJ=R(()=>{"use strict";Mh();Io();G9t=ks(si,"WeakMap"),Xw=G9t});function V9t(){}var ei,lD=R(()=>{"use strict";o(V9t,"noop");ei=V9t});function U9t(e,t){for(var r=-1,n=e==null?0:e.length;++r{"use strict";o(U9t,"arrayEach");jw=U9t});function H9t(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(H9t,"baseFindIndex");Kw=H9t});function W9t(e){return e!==e}var xJ,bJ=R(()=>{"use strict";o(W9t,"baseIsNaN");xJ=W9t});function Y9t(e,t,r){for(var n=r-1,i=e.length;++n{"use strict";o(Y9t,"strictIndexOf");wJ=Y9t});function q9t(e,t,r){return t===t?wJ(e,t,r):Kw(e,xJ,r)}var Om,Qw=R(()=>{"use strict";uD();bJ();TJ();o(q9t,"baseIndexOf");Om=q9t});function X9t(e,t){var r=e==null?0:e.length;return!!r&&Om(e,t,0)>-1}var Zw,hD=R(()=>{"use strict";Qw();o(X9t,"arrayIncludes");Zw=X9t});var j9t,kJ,EJ=R(()=>{"use strict";C9();j9t=S5(Object.keys,Object),kJ=j9t});function Z9t(e){if(!xc(e))return kJ(e);var t=[];for(var r in Object(e))Q9t.call(e,r)&&r!="constructor"&&t.push(r);return t}var K9t,Q9t,Pm,Jw=R(()=>{"use strict";cm();EJ();K9t=Object.prototype,Q9t=K9t.hasOwnProperty;o(Z9t,"baseKeys");Pm=Z9t});function J9t(e){return oi(e)?R5(e):Pm(e)}var $r,Ac=R(()=>{"use strict";D9();Jw();Bo();o(J9t,"keys");$r=J9t});var tLt,eLt,rLt,va,CJ=R(()=>{"use strict";dm();_d();I9();Bo();cm();Ac();tLt=Object.prototype,eLt=tLt.hasOwnProperty,rLt=I5(function(e,t){if(xc(t)||oi(t)){$o(t,$r(t),e);return}for(var r in t)eLt.call(t,r)&&bc(e,r,t[r])}),va=rLt});function aLt(e,t){if(Le(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||oo(e)?!0:iLt.test(e)||!nLt.test(e)||t!=null&&e in Object(t)}var nLt,iLt,Bm,tT=R(()=>{"use strict";Hn();Fd();nLt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,iLt=/^\w*$/;o(aLt,"isKey");Bm=aLt});function oLt(e){var t=em(e,function(n){return r.size===sLt&&r.clear(),n}),r=t.cache;return t}var sLt,SJ,AJ=R(()=>{"use strict";v9();sLt=500;o(oLt,"memoizeCapped");SJ=oLt});var lLt,cLt,uLt,_J,LJ=R(()=>{"use strict";AJ();lLt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cLt=/\\(\\)?/g,uLt=SJ(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(lLt,function(r,n,i,a){t.push(i?a.replace(cLt,"$1"):n||r)}),t}),_J=uLt});function hLt(e){return e==null?"":lJ(e)}var eT,fD=R(()=>{"use strict";cJ();o(hLt,"toString");eT=hLt});function fLt(e,t){return Le(e)?e:Bm(e,t)?[e]:_J(eT(e))}var jh,Jv=R(()=>{"use strict";Hn();tT();LJ();fD();o(fLt,"castPath");jh=fLt});function pLt(e){if(typeof e=="string"||oo(e))return e;var t=e+"";return t=="0"&&1/e==-dLt?"-0":t}var dLt,_c,Fm=R(()=>{"use strict";Fd();dLt=1/0;o(pLt,"toKey");_c=pLt});function mLt(e,t){t=jh(t,e);for(var r=0,n=t.length;e!=null&&r{"use strict";Jv();Fm();o(mLt,"baseGet");Kh=mLt});function gLt(e,t,r){var n=e==null?void 0:Kh(e,t);return n===void 0?r:n}var DJ,RJ=R(()=>{"use strict";t2();o(gLt,"get");DJ=gLt});function yLt(e,t){for(var r=-1,n=t.length,i=e.length;++r{"use strict";o(yLt,"arrayPush");zm=yLt});function vLt(e){return Le(e)||_l(e)||!!(NJ&&e&&e[NJ])}var NJ,MJ,IJ=R(()=>{"use strict";kd();um();Hn();NJ=ra?ra.isConcatSpreadable:void 0;o(vLt,"isFlattenable");MJ=vLt});function OJ(e,t,r,n,i){var a=-1,s=e.length;for(r||(r=MJ),i||(i=[]);++a0&&r(l)?t>1?OJ(l,t-1,r,n,i):zm(i,l):n||(i[i.length]=l)}return i}var Lc,$m=R(()=>{"use strict";rT();IJ();o(OJ,"baseFlatten");Lc=OJ});function xLt(e){var t=e==null?0:e.length;return t?Lc(e,1):[]}var Wr,nT=R(()=>{"use strict";$m();o(xLt,"flatten");Wr=xLt});function bLt(e){return M5(N5(e,void 0,Wr),e+"")}var PJ,BJ=R(()=>{"use strict";nT();R9();M9();o(bLt,"flatRest");PJ=bLt});function wLt(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n{"use strict";o(wLt,"baseSlice");iT=wLt});function DLt(e){return LLt.test(e)}var TLt,kLt,ELt,CLt,SLt,ALt,_Lt,LLt,FJ,zJ=R(()=>{"use strict";TLt="\\ud800-\\udfff",kLt="\\u0300-\\u036f",ELt="\\ufe20-\\ufe2f",CLt="\\u20d0-\\u20ff",SLt=kLt+ELt+CLt,ALt="\\ufe0e\\ufe0f",_Lt="\\u200d",LLt=RegExp("["+_Lt+TLt+SLt+ALt+"]");o(DLt,"hasUnicode");FJ=DLt});function RLt(e,t,r,n){var i=-1,a=e==null?0:e.length;for(n&&a&&(r=e[++i]);++i{"use strict";o(RLt,"arrayReduce");$J=RLt});function NLt(e,t){return e&&$o(t,$r(t),e)}var VJ,UJ=R(()=>{"use strict";_d();Ac();o(NLt,"baseAssign");VJ=NLt});function MLt(e,t){return e&&$o(t,Es(t),e)}var HJ,WJ=R(()=>{"use strict";_d();$h();o(MLt,"baseAssignIn");HJ=MLt});function ILt(e,t){for(var r=-1,n=e==null?0:e.length,i=0,a=[];++r{"use strict";o(ILt,"arrayFilter");Gm=ILt});function OLt(){return[]}var sT,pD=R(()=>{"use strict";o(OLt,"stubArray");sT=OLt});var PLt,BLt,YJ,FLt,Vm,oT=R(()=>{"use strict";aT();pD();PLt=Object.prototype,BLt=PLt.propertyIsEnumerable,YJ=Object.getOwnPropertySymbols,FLt=YJ?function(e){return e==null?[]:(e=Object(e),Gm(YJ(e),function(t){return BLt.call(e,t)}))}:sT,Vm=FLt});function zLt(e,t){return $o(e,Vm(e),t)}var qJ,XJ=R(()=>{"use strict";_d();oT();o(zLt,"copySymbols");qJ=zLt});var $Lt,GLt,lT,mD=R(()=>{"use strict";rT();A5();oT();pD();$Lt=Object.getOwnPropertySymbols,GLt=$Lt?function(e){for(var t=[];e;)zm(t,Vm(e)),e=lm(e);return t}:sT,lT=GLt});function VLt(e,t){return $o(e,lT(e),t)}var jJ,KJ=R(()=>{"use strict";_d();mD();o(VLt,"copySymbolsIn");jJ=VLt});function ULt(e,t,r){var n=t(e);return Le(e)?n:zm(n,r(e))}var cT,gD=R(()=>{"use strict";rT();Hn();o(ULt,"baseGetAllKeys");cT=ULt});function HLt(e){return cT(e,$r,Vm)}var e2,yD=R(()=>{"use strict";gD();oT();Ac();o(HLt,"getAllKeys");e2=HLt});function WLt(e){return cT(e,Es,lT)}var uT,vD=R(()=>{"use strict";gD();mD();$h();o(WLt,"getAllKeysIn");uT=WLt});var YLt,hT,QJ=R(()=>{"use strict";Mh();Io();YLt=ks(si,"DataView"),hT=YLt});var qLt,fT,ZJ=R(()=>{"use strict";Mh();Io();qLt=ks(si,"Promise"),fT=qLt});var XLt,Qh,xD=R(()=>{"use strict";Mh();Io();XLt=ks(si,"Set"),Qh=XLt});var JJ,jLt,ttt,ett,rtt,ntt,KLt,QLt,ZLt,JLt,tDt,$d,lo,Gd=R(()=>{"use strict";QJ();x5();ZJ();xD();vJ();Au();m9();JJ="[object Map]",jLt="[object Object]",ttt="[object Promise]",ett="[object Set]",rtt="[object WeakMap]",ntt="[object DataView]",KLt=_u(hT),QLt=_u(Ph),ZLt=_u(fT),JLt=_u(Qh),tDt=_u(Xw),$d=ga;(hT&&$d(new hT(new ArrayBuffer(1)))!=ntt||Ph&&$d(new Ph)!=JJ||fT&&$d(fT.resolve())!=ttt||Qh&&$d(new Qh)!=ett||Xw&&$d(new Xw)!=rtt)&&($d=o(function(e){var t=ga(e),r=t==jLt?e.constructor:void 0,n=r?_u(r):"";if(n)switch(n){case KLt:return ntt;case QLt:return JJ;case ZLt:return ttt;case JLt:return ett;case tDt:return rtt}return t},"getTag"));lo=$d});function nDt(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&rDt.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var eDt,rDt,itt,att=R(()=>{"use strict";eDt=Object.prototype,rDt=eDt.hasOwnProperty;o(nDt,"initCloneArray");itt=nDt});function iDt(e,t){var r=t?om(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var stt,ott=R(()=>{"use strict";k5();o(iDt,"cloneDataView");stt=iDt});function sDt(e){var t=new e.constructor(e.source,aDt.exec(e));return t.lastIndex=e.lastIndex,t}var aDt,ltt,ctt=R(()=>{"use strict";aDt=/\w*$/;o(sDt,"cloneRegExp");ltt=sDt});function oDt(e){return htt?Object(htt.call(e)):{}}var utt,htt,ftt,dtt=R(()=>{"use strict";kd();utt=ra?ra.prototype:void 0,htt=utt?utt.valueOf:void 0;o(oDt,"cloneSymbol");ftt=oDt});function ADt(e,t,r){var n=e.constructor;switch(t){case gDt:return om(e);case lDt:case cDt:return new n(+e);case yDt:return stt(e,r);case vDt:case xDt:case bDt:case wDt:case TDt:case kDt:case EDt:case CDt:case SDt:return E5(e,r);case uDt:return new n;case hDt:case pDt:return new n(e);case fDt:return ltt(e);case dDt:return new n;case mDt:return ftt(e)}}var lDt,cDt,uDt,hDt,fDt,dDt,pDt,mDt,gDt,yDt,vDt,xDt,bDt,wDt,TDt,kDt,EDt,CDt,SDt,ptt,mtt=R(()=>{"use strict";k5();ott();ctt();dtt();k9();lDt="[object Boolean]",cDt="[object Date]",uDt="[object Map]",hDt="[object Number]",fDt="[object RegExp]",dDt="[object Set]",pDt="[object String]",mDt="[object Symbol]",gDt="[object ArrayBuffer]",yDt="[object DataView]",vDt="[object Float32Array]",xDt="[object Float64Array]",bDt="[object Int8Array]",wDt="[object Int16Array]",TDt="[object Int32Array]",kDt="[object Uint8Array]",EDt="[object Uint8ClampedArray]",CDt="[object Uint16Array]",SDt="[object Uint32Array]";o(ADt,"initCloneByTag");ptt=ADt});function LDt(e){return ti(e)&&lo(e)==_Dt}var _Dt,gtt,ytt=R(()=>{"use strict";Gd();Po();_Dt="[object Map]";o(LDt,"baseIsMap");gtt=LDt});var vtt,DDt,xtt,btt=R(()=>{"use strict";ytt();Ad();vv();vtt=zo&&zo.isMap,DDt=vtt?Fo(vtt):gtt,xtt=DDt});function NDt(e){return ti(e)&&lo(e)==RDt}var RDt,wtt,Ttt=R(()=>{"use strict";Gd();Po();RDt="[object Set]";o(NDt,"baseIsSet");wtt=NDt});var ktt,MDt,Ett,Ctt=R(()=>{"use strict";Ttt();Ad();vv();ktt=zo&&zo.isSet,MDt=ktt?Fo(ktt):wtt,Ett=MDt});function dT(e,t,r,n,i,a){var s,l=t&IDt,u=t&ODt,h=t&PDt;if(r&&(s=i?r(e,n,i,a):r(e)),s!==void 0)return s;if(!xn(e))return e;var f=Le(e);if(f){if(s=itt(e),!l)return C5(e,s)}else{var d=lo(e),p=d==Att||d==GDt;if(Ll(e))return T5(e,l);if(d==_tt||d==Stt||p&&!i){if(s=u||p?{}:_5(e),!l)return u?jJ(e,HJ(s,e)):qJ(e,VJ(s,e))}else{if(!_n[d])return i?e:{};s=ptt(e,d,l)}}a||(a=new yc);var m=a.get(e);if(m)return m;a.set(e,s),Ett(e)?e.forEach(function(v){s.add(dT(v,t,r,v,e,a))}):xtt(e)&&e.forEach(function(v,x){s.set(x,dT(v,t,r,x,e,a))});var g=h?u?uT:e2:u?Es:$r,y=f?void 0:g(e);return jw(y||e,function(v,x){y&&(x=v,v=e[x]),bc(s,x,dT(v,t,r,x,e,a))}),s}var IDt,ODt,PDt,Stt,BDt,FDt,zDt,$Dt,Att,GDt,VDt,UDt,_tt,HDt,WDt,YDt,qDt,XDt,jDt,KDt,QDt,ZDt,JDt,tRt,eRt,rRt,nRt,iRt,aRt,_n,pT,bD=R(()=>{"use strict";mv();cD();dm();UJ();WJ();w9();E9();XJ();KJ();yD();vD();Gd();att();mtt();S9();Hn();fm();btt();eo();Ctt();Ac();$h();IDt=1,ODt=2,PDt=4,Stt="[object Arguments]",BDt="[object Array]",FDt="[object Boolean]",zDt="[object Date]",$Dt="[object Error]",Att="[object Function]",GDt="[object GeneratorFunction]",VDt="[object Map]",UDt="[object Number]",_tt="[object Object]",HDt="[object RegExp]",WDt="[object Set]",YDt="[object String]",qDt="[object Symbol]",XDt="[object WeakMap]",jDt="[object ArrayBuffer]",KDt="[object DataView]",QDt="[object Float32Array]",ZDt="[object Float64Array]",JDt="[object Int8Array]",tRt="[object Int16Array]",eRt="[object Int32Array]",rRt="[object Uint8Array]",nRt="[object Uint8ClampedArray]",iRt="[object Uint16Array]",aRt="[object Uint32Array]",_n={};_n[Stt]=_n[BDt]=_n[jDt]=_n[KDt]=_n[FDt]=_n[zDt]=_n[QDt]=_n[ZDt]=_n[JDt]=_n[tRt]=_n[eRt]=_n[VDt]=_n[UDt]=_n[_tt]=_n[HDt]=_n[WDt]=_n[YDt]=_n[qDt]=_n[rRt]=_n[nRt]=_n[iRt]=_n[aRt]=!0;_n[$Dt]=_n[Att]=_n[XDt]=!1;o(dT,"baseClone");pT=dT});function oRt(e){return pT(e,sRt)}var sRt,rn,wD=R(()=>{"use strict";bD();sRt=4;o(oRt,"clone");rn=oRt});function uRt(e){return pT(e,lRt|cRt)}var lRt,cRt,TD,Ltt=R(()=>{"use strict";bD();lRt=1,cRt=4;o(uRt,"cloneDeep");TD=uRt});function hRt(e){for(var t=-1,r=e==null?0:e.length,n=0,i=[];++t{"use strict";o(hRt,"compact");Dc=hRt});function dRt(e){return this.__data__.set(e,fRt),this}var fRt,Rtt,Ntt=R(()=>{"use strict";fRt="__lodash_hash_undefined__";o(dRt,"setCacheAdd");Rtt=dRt});function pRt(e){return this.__data__.has(e)}var Mtt,Itt=R(()=>{"use strict";o(pRt,"setCacheHas");Mtt=pRt});function mT(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Cd;++t{"use strict";b5();Ntt();Itt();o(mT,"SetCache");mT.prototype.add=mT.prototype.push=Rtt;mT.prototype.has=Mtt;Um=mT});function mRt(e,t){for(var r=-1,n=e==null?0:e.length;++r{"use strict";o(mRt,"arraySome");yT=mRt});function gRt(e,t){return e.has(t)}var Hm,vT=R(()=>{"use strict";o(gRt,"cacheHas");Hm=gRt});function xRt(e,t,r,n,i,a){var s=r&yRt,l=e.length,u=t.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(e),f=a.get(t);if(h&&f)return h==t&&f==e;var d=-1,p=!0,m=r&vRt?new Um:void 0;for(a.set(e,t),a.set(t,e);++d{"use strict";gT();kD();vT();yRt=1,vRt=2;o(xRt,"equalArrays");xT=xRt});function bRt(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}var Ott,Ptt=R(()=>{"use strict";o(bRt,"mapToArray");Ott=bRt});function wRt(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var Wm,bT=R(()=>{"use strict";o(wRt,"setToArray");Wm=wRt});function ORt(e,t,r,n,i,a,s){switch(r){case IRt:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case MRt:return!(e.byteLength!=t.byteLength||!a(new sm(e),new sm(t)));case ERt:case CRt:case _Rt:return Oo(+e,+t);case SRt:return e.name==t.name&&e.message==t.message;case LRt:case RRt:return e==t+"";case ARt:var l=Ott;case DRt:var u=n&TRt;if(l||(l=Wm),e.size!=t.size&&!u)return!1;var h=s.get(e);if(h)return h==t;n|=kRt,s.set(e,t);var f=xT(l(e),l(t),n,i,a,s);return s.delete(e),f;case NRt:if(CD)return CD.call(e)==CD.call(t)}return!1}var TRt,kRt,ERt,CRt,SRt,ARt,_Rt,LRt,DRt,RRt,NRt,MRt,IRt,Btt,CD,Ftt,ztt=R(()=>{"use strict";kd();T9();Ed();ED();Ptt();bT();TRt=1,kRt=2,ERt="[object Boolean]",CRt="[object Date]",SRt="[object Error]",ARt="[object Map]",_Rt="[object Number]",LRt="[object RegExp]",DRt="[object Set]",RRt="[object String]",NRt="[object Symbol]",MRt="[object ArrayBuffer]",IRt="[object DataView]",Btt=ra?ra.prototype:void 0,CD=Btt?Btt.valueOf:void 0;o(ORt,"equalByTag");Ftt=ORt});function zRt(e,t,r,n,i,a){var s=r&PRt,l=e2(e),u=l.length,h=e2(t),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in t:FRt.call(t,p)))return!1}var m=a.get(e),g=a.get(t);if(m&&g)return m==t&&g==e;var y=!0;a.set(e,t),a.set(t,e);for(var v=s;++d{"use strict";yD();PRt=1,BRt=Object.prototype,FRt=BRt.hasOwnProperty;o(zRt,"equalObjects");$tt=zRt});function VRt(e,t,r,n,i,a){var s=Le(e),l=Le(t),u=s?Utt:lo(e),h=l?Utt:lo(t);u=u==Vtt?wT:u,h=h==Vtt?wT:h;var f=u==wT,d=h==wT,p=u==h;if(p&&Ll(e)){if(!Ll(t))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new yc),s||Fh(e)?xT(e,t,r,n,i,a):Ftt(e,t,u,r,n,i,a);if(!(r&$Rt)){var m=f&&Htt.call(e,"__wrapped__"),g=d&&Htt.call(t,"__wrapped__");if(m||g){var y=m?e.value():e,v=g?t.value():t;return a||(a=new yc),i(y,v,r,n,a)}}return p?(a||(a=new yc),$tt(e,t,r,n,i,a)):!1}var $Rt,Vtt,Utt,wT,GRt,Htt,Wtt,Ytt=R(()=>{"use strict";mv();ED();ztt();Gtt();Gd();Hn();fm();xv();$Rt=1,Vtt="[object Arguments]",Utt="[object Array]",wT="[object Object]",GRt=Object.prototype,Htt=GRt.hasOwnProperty;o(VRt,"baseIsEqualDeep");Wtt=VRt});function qtt(e,t,r,n,i){return e===t?!0:e==null||t==null||!ti(e)&&!ti(t)?e!==e&&t!==t:Wtt(e,t,r,n,qtt,i)}var TT,SD=R(()=>{"use strict";Ytt();Po();o(qtt,"baseIsEqual");TT=qtt});function WRt(e,t,r,n){var i=r.length,a=i,s=!n;if(e==null)return!a;for(e=Object(e);i--;){var l=r[i];if(s&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i{"use strict";mv();SD();URt=1,HRt=2;o(WRt,"baseIsMatch");Xtt=WRt});function YRt(e){return e===e&&!xn(e)}var kT,AD=R(()=>{"use strict";eo();o(YRt,"isStrictComparable");kT=YRt});function qRt(e){for(var t=$r(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,kT(i)]}return t}var Ktt,Qtt=R(()=>{"use strict";AD();Ac();o(qRt,"getMatchData");Ktt=qRt});function XRt(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var ET,_D=R(()=>{"use strict";o(XRt,"matchesStrictComparable");ET=XRt});function jRt(e){var t=Ktt(e);return t.length==1&&t[0][2]?ET(t[0][0],t[0][1]):function(r){return r===e||Xtt(r,e,t)}}var Ztt,Jtt=R(()=>{"use strict";jtt();Qtt();_D();o(jRt,"baseMatches");Ztt=jRt});function KRt(e,t){return e!=null&&t in Object(e)}var tet,eet=R(()=>{"use strict";o(KRt,"baseHasIn");tet=KRt});function QRt(e,t,r){t=jh(t,e);for(var n=-1,i=t.length,a=!1;++n{"use strict";Jv();um();Hn();wv();L5();Fm();o(QRt,"hasPath");CT=QRt});function ZRt(e,t){return e!=null&&CT(e,t,tet)}var ST,DD=R(()=>{"use strict";eet();LD();o(ZRt,"hasIn");ST=ZRt});function eNt(e,t){return Bm(e)&&kT(t)?ET(_c(e),t):function(r){var n=DJ(r,e);return n===void 0&&n===t?ST(r,e):TT(t,n,JRt|tNt)}}var JRt,tNt,ret,net=R(()=>{"use strict";SD();RJ();DD();tT();AD();_D();Fm();JRt=1,tNt=2;o(eNt,"baseMatchesProperty");ret=eNt});function rNt(e){return function(t){return t?.[e]}}var AT,RD=R(()=>{"use strict";o(rNt,"baseProperty");AT=rNt});function nNt(e){return function(t){return Kh(t,e)}}var iet,aet=R(()=>{"use strict";t2();o(nNt,"basePropertyDeep");iet=nNt});function iNt(e){return Bm(e)?AT(_c(e)):iet(e)}var set,oet=R(()=>{"use strict";RD();aet();tT();Fm();o(iNt,"property");set=iNt});function aNt(e){return typeof e=="function"?e:e==null?na:typeof e=="object"?Le(e)?ret(e[0],e[1]):Ztt(e):set(e)}var dn,es=R(()=>{"use strict";Jtt();net();Du();Hn();oet();o(aNt,"baseIteratee");dn=aNt});function sNt(e,t,r,n){for(var i=-1,a=e==null?0:e.length;++i{"use strict";o(sNt,"arrayAggregator");cet=sNt});function oNt(e,t){return e&&am(e,t,$r)}var Ym,_T=R(()=>{"use strict";w5();Ac();o(oNt,"baseForOwn");Ym=oNt});function lNt(e,t){return function(r,n){if(r==null)return r;if(!oi(r))return e(r,n);for(var i=r.length,a=t?i:-1,s=Object(r);(t?a--:++a{"use strict";Bo();o(lNt,"createBaseEach");het=lNt});var cNt,Ms,Zh=R(()=>{"use strict";_T();fet();cNt=het(Ym),Ms=cNt});function uNt(e,t,r,n){return Ms(e,function(i,a,s){t(n,i,r(i),s)}),n}var det,pet=R(()=>{"use strict";Zh();o(uNt,"baseAggregator");det=uNt});function hNt(e,t){return function(r,n){var i=Le(r)?cet:det,a=t?t():{};return i(r,e,dn(n,2),a)}}var met,get=R(()=>{"use strict";uet();pet();es();Hn();o(hNt,"createAggregator");met=hNt});var fNt,LT,yet=R(()=>{"use strict";Io();fNt=o(function(){return si.Date.now()},"now"),LT=fNt});var vet,dNt,pNt,Jh,xet=R(()=>{"use strict";pm();Ed();Ld();$h();vet=Object.prototype,dNt=vet.hasOwnProperty,pNt=wc(function(e,t){e=Object(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&ro(t[0],t[1],i)&&(n=1);++r{"use strict";o(mNt,"arrayIncludesWith");DT=mNt});function yNt(e,t,r,n){var i=-1,a=Zw,s=!0,l=e.length,u=[],h=t.length;if(!l)return u;r&&(t=Ns(t,Fo(r))),n?(a=DT,s=!1):t.length>=gNt&&(a=Hm,s=!1,t=new Um(t));t:for(;++i{"use strict";gT();hD();ND();zd();Ad();vT();gNt=200;o(yNt,"baseDifference");bet=yNt});var vNt,tf,Tet=R(()=>{"use strict";wet();$m();pm();D5();vNt=wc(function(e,t){return Sd(e)?bet(e,Lc(t,1,Sd,!0)):[]}),tf=vNt});function xNt(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var xa,ket=R(()=>{"use strict";o(xNt,"last");xa=xNt});function bNt(e,t,r){var n=e==null?0:e.length;return n?(t=r||t===void 0?1:Sc(t),iT(e,t<0?0:t,n)):[]}var gi,Eet=R(()=>{"use strict";dD();Im();o(bNt,"drop");gi=bNt});function wNt(e,t,r){var n=e==null?0:e.length;return n?(t=r||t===void 0?1:Sc(t),t=n-t,iT(e,0,t<0?0:t)):[]}var Pu,Cet=R(()=>{"use strict";dD();Im();o(wNt,"dropRight");Pu=wNt});function TNt(e){return typeof e=="function"?e:na}var qm,RT=R(()=>{"use strict";Du();o(TNt,"castFunction");qm=TNt});function kNt(e,t){var r=Le(e)?jw:Ms;return r(e,qm(t))}var Et,NT=R(()=>{"use strict";cD();Zh();RT();Hn();o(kNt,"forEach");Et=kNt});var Aet=R(()=>{"use strict";NT()});function ENt(e,t){for(var r=-1,n=e==null?0:e.length;++r{"use strict";o(ENt,"arrayEvery");_et=ENt});function CNt(e,t){var r=!0;return Ms(e,function(n,i,a){return r=!!t(n,i,a),r}),r}var Det,Ret=R(()=>{"use strict";Zh();o(CNt,"baseEvery");Det=CNt});function SNt(e,t,r){var n=Le(e)?_et:Det;return r&&ro(e,t,r)&&(t=void 0),n(e,dn(t,3))}var za,Net=R(()=>{"use strict";Let();Ret();es();Hn();Ld();o(SNt,"every");za=SNt});function ANt(e,t){var r=[];return Ms(e,function(n,i,a){t(n,i,a)&&r.push(n)}),r}var MT,MD=R(()=>{"use strict";Zh();o(ANt,"baseFilter");MT=ANt});function _Nt(e,t){var r=Le(e)?Gm:MT;return r(e,dn(t,3))}var Yr,ID=R(()=>{"use strict";aT();MD();es();Hn();o(_Nt,"filter");Yr=_Nt});function LNt(e){return function(t,r,n){var i=Object(t);if(!oi(t)){var a=dn(r,3);t=$r(t),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=e(t,r,n);return s>-1?i[a?t[s]:s]:void 0}}var Met,Iet=R(()=>{"use strict";es();Bo();Ac();o(LNt,"createFind");Met=LNt});function RNt(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:Sc(r);return i<0&&(i=DNt(n+i,0)),Kw(e,dn(t,3),i)}var DNt,Oet,Pet=R(()=>{"use strict";uD();es();Im();DNt=Math.max;o(RNt,"findIndex");Oet=RNt});var NNt,rs,Bet=R(()=>{"use strict";Iet();Pet();NNt=Met(Oet),rs=NNt});function MNt(e){return e&&e.length?e[0]:void 0}var aa,Fet=R(()=>{"use strict";o(MNt,"head");aa=MNt});var zet=R(()=>{"use strict";Fet()});function INt(e,t){var r=-1,n=oi(e)?Array(e.length):[];return Ms(e,function(i,a,s){n[++r]=t(i,a,s)}),n}var IT,OD=R(()=>{"use strict";Zh();Bo();o(INt,"baseMap");IT=INt});function ONt(e,t){var r=Le(e)?Ns:IT;return r(e,dn(t,3))}var Xt,Xm=R(()=>{"use strict";zd();es();OD();Hn();o(ONt,"map");Xt=ONt});function PNt(e,t){return Lc(Xt(e,t),1)}var ba,PD=R(()=>{"use strict";$m();Xm();o(PNt,"flatMap");ba=PNt});function BNt(e,t){return e==null?e:am(e,qm(t),Es)}var BD,$et=R(()=>{"use strict";w5();RT();$h();o(BNt,"forIn");BD=BNt});function FNt(e,t){return e&&Ym(e,qm(t))}var FD,Get=R(()=>{"use strict";_T();RT();o(FNt,"forOwn");FD=FNt});var zNt,$Nt,GNt,zD,Vet=R(()=>{"use strict";im();get();zNt=Object.prototype,$Nt=zNt.hasOwnProperty,GNt=met(function(e,t,r){$Nt.call(e,r)?e[r].push(t):vc(e,r,[t])}),zD=GNt});function VNt(e,t){return e>t}var Uet,Het=R(()=>{"use strict";o(VNt,"baseGt");Uet=VNt});function WNt(e,t){return e!=null&&HNt.call(e,t)}var UNt,HNt,Wet,Yet=R(()=>{"use strict";UNt=Object.prototype,HNt=UNt.hasOwnProperty;o(WNt,"baseHas");Wet=WNt});function YNt(e,t){return e!=null&&CT(e,t,Wet)}var jt,qet=R(()=>{"use strict";Yet();LD();o(YNt,"has");jt=YNt});function XNt(e){return typeof e=="string"||!Le(e)&&ti(e)&&ga(e)==qNt}var qNt,yi,OT=R(()=>{"use strict";Au();Hn();Po();qNt="[object String]";o(XNt,"isString");yi=XNt});function jNt(e,t){return Ns(t,function(r){return e[r]})}var Xet,jet=R(()=>{"use strict";zd();o(jNt,"baseValues");Xet=jNt});function KNt(e){return e==null?[]:Xet(e,$r(e))}var gr,$D=R(()=>{"use strict";jet();Ac();o(KNt,"values");gr=KNt});function ZNt(e,t,r,n){e=oi(e)?e:gr(e),r=r&&!n?Sc(r):0;var i=e.length;return r<0&&(r=QNt(i+r,0)),yi(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&Om(e,t,r)>-1}var QNt,Wn,Ket=R(()=>{"use strict";Qw();Bo();OT();Im();$D();QNt=Math.max;o(ZNt,"includes");Wn=ZNt});function tMt(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:Sc(r);return i<0&&(i=JNt(n+i,0)),Om(e,t,i)}var JNt,PT,Qet=R(()=>{"use strict";Qw();Im();JNt=Math.max;o(tMt,"indexOf");PT=tMt});function aMt(e){if(e==null)return!0;if(oi(e)&&(Le(e)||typeof e=="string"||typeof e.splice=="function"||Ll(e)||Fh(e)||_l(e)))return!e.length;var t=lo(e);if(t==eMt||t==rMt)return!e.size;if(xc(e))return!Pm(e).length;for(var r in e)if(iMt.call(e,r))return!1;return!0}var eMt,rMt,nMt,iMt,cr,BT=R(()=>{"use strict";Jw();Gd();um();Hn();Bo();fm();cm();xv();eMt="[object Map]",rMt="[object Set]",nMt=Object.prototype,iMt=nMt.hasOwnProperty;o(aMt,"isEmpty");cr=aMt});function oMt(e){return ti(e)&&ga(e)==sMt}var sMt,Zet,Jet=R(()=>{"use strict";Au();Po();sMt="[object RegExp]";o(oMt,"baseIsRegExp");Zet=oMt});var trt,lMt,Uo,ert=R(()=>{"use strict";Jet();Ad();vv();trt=zo&&zo.isRegExp,lMt=trt?Fo(trt):Zet,Uo=lMt});function cMt(e){return e===void 0}var fr,rrt=R(()=>{"use strict";o(cMt,"isUndefined");fr=cMt});function uMt(e,t){return e{"use strict";o(uMt,"baseLt");FT=uMt});function hMt(e,t){var r={};return t=dn(t,3),Ym(e,function(n,i,a){vc(r,i,t(n,i,a))}),r}var Vd,nrt=R(()=>{"use strict";im();_T();es();o(hMt,"mapValues");Vd=hMt});function fMt(e,t,r){for(var n=-1,i=e.length;++n{"use strict";Fd();o(fMt,"baseExtremum");jm=fMt});function dMt(e){return e&&e.length?jm(e,na,Uet):void 0}var Is,irt=R(()=>{"use strict";zT();Het();Du();o(dMt,"max");Is=dMt});function pMt(e){return e&&e.length?jm(e,na,FT):void 0}var Il,VD=R(()=>{"use strict";zT();GD();Du();o(pMt,"min");Il=pMt});function mMt(e,t){return e&&e.length?jm(e,dn(t,2),FT):void 0}var Ud,art=R(()=>{"use strict";zT();es();GD();o(mMt,"minBy");Ud=mMt});function yMt(e){if(typeof e!="function")throw new TypeError(gMt);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var gMt,srt,ort=R(()=>{"use strict";gMt="Expected a function";o(yMt,"negate");srt=yMt});function vMt(e,t,r,n){if(!xn(e))return e;t=jh(t,e);for(var i=-1,a=t.length,s=a-1,l=e;l!=null&&++i{"use strict";dm();Jv();wv();eo();Fm();o(vMt,"baseSet");lrt=vMt});function xMt(e,t,r){for(var n=-1,i=t.length,a={};++n{"use strict";t2();crt();Jv();o(xMt,"basePickBy");$T=xMt});function bMt(e,t){if(e==null)return{};var r=Ns(uT(e),function(n){return[n]});return t=dn(t),$T(e,r,function(n,i){return t(n,i[0])})}var Os,urt=R(()=>{"use strict";zd();es();UD();vD();o(bMt,"pickBy");Os=bMt});function wMt(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var hrt,frt=R(()=>{"use strict";o(wMt,"baseSortBy");hrt=wMt});function TMt(e,t){if(e!==t){var r=e!==void 0,n=e===null,i=e===e,a=oo(e),s=t!==void 0,l=t===null,u=t===t,h=oo(t);if(!l&&!h&&!a&&e>t||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&e{"use strict";Fd();o(TMt,"compareAscending");drt=TMt});function kMt(e,t,r){for(var n=-1,i=e.criteria,a=t.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return e.index-t.index}var mrt,grt=R(()=>{"use strict";prt();o(kMt,"compareMultiple");mrt=kMt});function EMt(e,t,r){t.length?t=Ns(t,function(a){return Le(a)?function(s){return Kh(s,a.length===1?a[0]:a)}:a}):t=[na];var n=-1;t=Ns(t,Fo(dn));var i=IT(e,function(a,s,l){var u=Ns(t,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return hrt(i,function(a,s){return mrt(a,s,r)})}var yrt,vrt=R(()=>{"use strict";zd();t2();es();OD();frt();Ad();grt();Du();Hn();o(EMt,"baseOrderBy");yrt=EMt});var CMt,xrt,brt=R(()=>{"use strict";RD();CMt=AT("length"),xrt=CMt});function BMt(e){for(var t=wrt.lastIndex=0;wrt.test(e);)++t;return t}var Trt,SMt,AMt,_Mt,LMt,DMt,RMt,HD,WD,NMt,krt,Ert,Crt,MMt,Srt,Art,IMt,OMt,PMt,wrt,_rt,Lrt=R(()=>{"use strict";Trt="\\ud800-\\udfff",SMt="\\u0300-\\u036f",AMt="\\ufe20-\\ufe2f",_Mt="\\u20d0-\\u20ff",LMt=SMt+AMt+_Mt,DMt="\\ufe0e\\ufe0f",RMt="["+Trt+"]",HD="["+LMt+"]",WD="\\ud83c[\\udffb-\\udfff]",NMt="(?:"+HD+"|"+WD+")",krt="[^"+Trt+"]",Ert="(?:\\ud83c[\\udde6-\\uddff]){2}",Crt="[\\ud800-\\udbff][\\udc00-\\udfff]",MMt="\\u200d",Srt=NMt+"?",Art="["+DMt+"]?",IMt="(?:"+MMt+"(?:"+[krt,Ert,Crt].join("|")+")"+Art+Srt+")*",OMt=Art+Srt+IMt,PMt="(?:"+[krt+HD+"?",HD,Ert,Crt,RMt].join("|")+")",wrt=RegExp(WD+"(?="+WD+")|"+PMt+OMt,"g");o(BMt,"unicodeSize");_rt=BMt});function FMt(e){return FJ(e)?_rt(e):xrt(e)}var Drt,Rrt=R(()=>{"use strict";brt();zJ();Lrt();o(FMt,"stringSize");Drt=FMt});function zMt(e,t){return $T(e,t,function(r,n){return ST(e,n)})}var Nrt,Mrt=R(()=>{"use strict";UD();DD();o(zMt,"basePick");Nrt=zMt});var $Mt,Hd,Irt=R(()=>{"use strict";Mrt();BJ();$Mt=PJ(function(e,t){return e==null?{}:Nrt(e,t)}),Hd=$Mt});function UMt(e,t,r,n){for(var i=-1,a=VMt(GMt((t-e)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=e,e+=r;return s}var GMt,VMt,Ort,Prt=R(()=>{"use strict";GMt=Math.ceil,VMt=Math.max;o(UMt,"baseRange");Ort=UMt});function HMt(e){return function(t,r,n){return n&&typeof n!="number"&&ro(t,r,n)&&(r=n=void 0),t=Mm(t),r===void 0?(r=t,t=0):r=Mm(r),n=n===void 0?t{"use strict";Prt();Ld();oD();o(HMt,"createRange");Brt=HMt});var WMt,Ho,zrt=R(()=>{"use strict";Frt();WMt=Brt(),Ho=WMt});function YMt(e,t,r,n,i){return i(e,function(a,s,l){r=n?(n=!1,a):t(r,a,s,l)}),r}var $rt,Grt=R(()=>{"use strict";o(YMt,"baseReduce");$rt=YMt});function qMt(e,t,r){var n=Le(e)?$J:$rt,i=arguments.length<3;return n(e,dn(t,4),r,i,Ms)}var qr,YD=R(()=>{"use strict";GJ();Zh();es();Grt();Hn();o(qMt,"reduce");qr=qMt});function XMt(e,t){var r=Le(e)?Gm:MT;return r(e,srt(dn(t,3)))}var ef,Vrt=R(()=>{"use strict";aT();MD();es();Hn();ort();o(XMt,"reject");ef=XMt});function QMt(e){if(e==null)return 0;if(oi(e))return yi(e)?Drt(e):e.length;var t=lo(e);return t==jMt||t==KMt?e.size:Pm(e).length}var jMt,KMt,qD,Urt=R(()=>{"use strict";Jw();Gd();Bo();OT();Rrt();jMt="[object Map]",KMt="[object Set]";o(QMt,"size");qD=QMt});function ZMt(e,t){var r;return Ms(e,function(n,i,a){return r=t(n,i,a),!r}),!!r}var Hrt,Wrt=R(()=>{"use strict";Zh();o(ZMt,"baseSome");Hrt=ZMt});function JMt(e,t,r){var n=Le(e)?yT:Hrt;return r&&ro(e,t,r)&&(t=void 0),n(e,dn(t,3))}var r2,Yrt=R(()=>{"use strict";kD();es();Wrt();Hn();Ld();o(JMt,"some");r2=JMt});var tIt,Rc,qrt=R(()=>{"use strict";$m();vrt();pm();Ld();tIt=wc(function(e,t){if(e==null)return[];var r=t.length;return r>1&&ro(e,t[0],t[1])?t=[]:r>2&&ro(t[0],t[1],t[2])&&(t=[t[0]]),yrt(e,Lc(t,1),[])}),Rc=tIt});var eIt,rIt,Xrt,jrt=R(()=>{"use strict";xD();lD();bT();eIt=1/0,rIt=Qh&&1/Wm(new Qh([,-0]))[1]==eIt?function(e){return new Qh(e)}:ei,Xrt=rIt});function iIt(e,t,r){var n=-1,i=Zw,a=e.length,s=!0,l=[],u=l;if(r)s=!1,i=DT;else if(a>=nIt){var h=t?null:Xrt(e);if(h)return Wm(h);s=!1,i=Hm,u=new Um}else u=t?[]:l;t:for(;++n{"use strict";gT();hD();ND();vT();jrt();bT();nIt=200;o(iIt,"baseUniq");Km=iIt});var aIt,XD,Krt=R(()=>{"use strict";$m();pm();GT();D5();aIt=wc(function(e){return Km(Lc(e,1,Sd,!0))}),XD=aIt});function sIt(e){return e&&e.length?Km(e):[]}var Qm,Qrt=R(()=>{"use strict";GT();o(sIt,"uniq");Qm=sIt});function oIt(e,t){return e&&e.length?Km(e,dn(t,2)):[]}var Zrt,Jrt=R(()=>{"use strict";es();GT();o(oIt,"uniqBy");Zrt=oIt});function cIt(e){var t=++lIt;return eT(e)+t}var lIt,Wd,tnt=R(()=>{"use strict";fD();lIt=0;o(cIt,"uniqueId");Wd=cIt});function uIt(e,t,r){for(var n=-1,i=e.length,a=t.length,s={};++n{"use strict";o(uIt,"baseZipObject");ent=uIt});function hIt(e,t){return ent(e||[],t||[],bc)}var VT,nnt=R(()=>{"use strict";dm();rnt();o(hIt,"zipObject");VT=hIt});var Ve=R(()=>{"use strict";CJ();wD();Ltt();Dtt();N9();xet();Tet();Eet();Cet();Aet();Net();ID();Bet();zet();PD();nT();NT();$et();Get();Vet();qet();Du();Ket();Qet();Hn();BT();uv();eo();ert();OT();rrt();Ac();ket();Xm();nrt();irt();O9();VD();art();lD();yet();Irt();urt();zrt();YD();Vrt();Urt();Yrt();qrt();Krt();Qrt();tnt();$D();nnt();});function ant(e,t){e[t]?e[t]++:e[t]=1}function snt(e,t){--e[t]||delete e[t]}function n2(e,t,r,n){var i=""+t,a=""+r;if(!e&&i>a){var s=i;i=a,a=s}return i+int+a+int+(fr(n)?fIt:n)}function dIt(e,t,r,n){var i=""+t,a=""+r;if(!e&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function jD(e,t){return n2(e,t.v,t.w,t.name)}var fIt,Yd,int,yr,UT=R(()=>{"use strict";Ve();fIt="\0",Yd="\0",int="",yr=class{static{o(this,"Graph")}constructor(t={}){this._isDirected=jt(t,"directed")?t.directed:!0,this._isMultigraph=jt(t,"multigraph")?t.multigraph:!1,this._isCompound=jt(t,"compound")?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=Cs(void 0),this._defaultEdgeLabelFn=Cs(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Yd]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return Si(t)||(t=Cs(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return $r(this._nodes)}sources(){var t=this;return Yr(this.nodes(),function(r){return cr(t._in[r])})}sinks(){var t=this;return Yr(this.nodes(),function(r){return cr(t._out[r])})}setNodes(t,r){var n=arguments,i=this;return Et(t,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(t,r){return jt(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=Yd,this._children[t]={},this._children[Yd][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return jt(this._nodes,t)}removeNode(t){var r=this;if(jt(this._nodes,t)){var n=o(function(i){r.removeEdge(r._edgeObjs[i])},"removeEdge");delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],Et(this.children(t),function(i){r.setParent(i)}),delete this._children[t]),Et($r(this._in[t]),n),delete this._in[t],delete this._preds[t],Et($r(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(fr(r))r=Yd;else{r+="";for(var n=r;!fr(n);n=this.parent(n))if(n===t)throw new Error("Setting "+r+" as parent of "+t+" would create a cycle");this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var r=this._parent[t];if(r!==Yd)return r}}children(t){if(fr(t)&&(t=Yd),this._isCompound){var r=this._children[t];if(r)return $r(r)}else{if(t===Yd)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var r=this._preds[t];if(r)return $r(r)}successors(t){var r=this._sucs[t];if(r)return $r(r)}neighbors(t){var r=this.predecessors(t);if(r)return XD(r,this.successors(t))}isLeaf(t){var r;return this.isDirected()?r=this.successors(t):r=this.neighbors(t),r.length===0}filterNodes(t){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Et(this._nodes,function(s,l){t(l)&&r.setNode(l,s)}),Et(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Et(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(t){return Si(t)||(t=Cs(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return gr(this._edgeObjs)}setPath(t,r){var n=this,i=arguments;return qr(t,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var t,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(t=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(t=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,r=""+r,fr(n)||(n=""+n);var l=n2(this._isDirected,t,r,n);if(jt(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!fr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(t,r,n);var u=dIt(this._isDirected,t,r,n);return t=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,ant(this._preds[r],t),ant(this._sucs[t],r),this._in[r][l]=u,this._out[t][l]=u,this._edgeCount++,this}edge(t,r,n){var i=arguments.length===1?jD(this._isDirected,arguments[0]):n2(this._isDirected,t,r,n);return this._edgeLabels[i]}hasEdge(t,r,n){var i=arguments.length===1?jD(this._isDirected,arguments[0]):n2(this._isDirected,t,r,n);return jt(this._edgeLabels,i)}removeEdge(t,r,n){var i=arguments.length===1?jD(this._isDirected,arguments[0]):n2(this._isDirected,t,r,n),a=this._edgeObjs[i];return a&&(t=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],snt(this._preds[r],t),snt(this._sucs[t],r),delete this._in[r][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,r){var n=this._in[t];if(n){var i=gr(n);return r?Yr(i,function(a){return a.v===r}):i}}outEdges(t,r){var n=this._out[t];if(n){var i=gr(n);return r?Yr(i,function(a){return a.w===r}):i}}nodeEdges(t,r){var n=this.inEdges(t,r);if(n)return n.concat(this.outEdges(t,r))}};yr.prototype._nodeCount=0;yr.prototype._edgeCount=0;o(ant,"incrementOrInitEntry");o(snt,"decrementOrRemoveEntry");o(n2,"edgeArgsToId");o(dIt,"edgeArgsToObj");o(jD,"edgeObjToId")});var wa=R(()=>{"use strict";UT()});function ont(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function pIt(e,t){if(e!=="_next"&&e!=="_prev")return t}var HT,lnt=R(()=>{"use strict";HT=class{static{o(this,"List")}constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,r=t._prev;if(r!==t)return ont(r),r}enqueue(t){var r=this._sentinel;t._prev&&t._next&&ont(t),t._next=r._next,r._next._prev=t,r._next=t,t._prev=r}toString(){for(var t=[],r=this._sentinel,n=r._prev;n!==r;)t.push(JSON.stringify(n,pIt)),n=n._prev;return"["+t.join(", ")+"]"}};o(ont,"unlink");o(pIt,"filterOutLinks")});function cnt(e,t){if(e.nodeCount()<=1)return[];var r=yIt(e,t||mIt),n=gIt(r.graph,r.buckets,r.zeroIdx);return Wr(Xt(n,function(i){return e.outEdges(i.v,i.w)}))}function gIt(e,t,r){for(var n=[],i=t[t.length-1],a=t[0],s;e.nodeCount();){for(;s=a.dequeue();)KD(e,t,r,s);for(;s=i.dequeue();)KD(e,t,r,s);if(e.nodeCount()){for(var l=t.length-2;l>0;--l)if(s=t[l].dequeue(),s){n=n.concat(KD(e,t,r,s,!0));break}}}return n}function KD(e,t,r,n,i){var a=i?[]:void 0;return Et(e.inEdges(n.v),function(s){var l=e.edge(s),u=e.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,QD(t,r,u)}),Et(e.outEdges(n.v),function(s){var l=e.edge(s),u=s.w,h=e.node(u);h.in-=l,QD(t,r,h)}),e.removeNode(n.v),a}function yIt(e,t){var r=new yr,n=0,i=0;Et(e.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Et(e.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=t(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Ho(i+n+3).map(function(){return new HT}),s=n+1;return Et(r.nodes(),function(l){QD(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function QD(e,t,r){r.out?r.in?e[r.out-r.in+t].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}var mIt,unt=R(()=>{"use strict";Ve();wa();lnt();mIt=Cs(1);o(cnt,"greedyFAS");o(gIt,"doGreedyFAS");o(KD,"removeNode");o(yIt,"buildState");o(QD,"assignBucket")});function hnt(e){var t=e.graph().acyclicer==="greedy"?cnt(e,r(e)):vIt(e);Et(t,function(n){var i=e.edge(n);e.removeEdge(n),i.forwardName=n.name,i.reversed=!0,e.setEdge(n.w,n.v,i,Wd("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function vIt(e){var t=[],r={},n={};function i(a){jt(n,a)||(n[a]=!0,r[a]=!0,Et(e.outEdges(a),function(s){jt(r,s.w)?t.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Et(e.nodes(),i),t}function fnt(e){Et(e.edges(),function(t){var r=e.edge(t);if(r.reversed){e.removeEdge(t);var n=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,n)}})}var ZD=R(()=>{"use strict";Ve();unt();o(hnt,"run");o(vIt,"dfsFAS");o(fnt,"undo")});function Nc(e,t,r,n){var i;do i=Wd(n);while(e.hasNode(i));return r.dummy=t,e.setNode(i,r),i}function pnt(e){var t=new yr().setGraph(e.graph());return Et(e.nodes(),function(r){t.setNode(r,e.node(r))}),Et(e.edges(),function(r){var n=t.edge(r.v,r.w)||{weight:0,minlen:1},i=e.edge(r);t.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),t}function WT(e){var t=new yr({multigraph:e.isMultigraph()}).setGraph(e.graph());return Et(e.nodes(),function(r){e.children(r).length||t.setNode(r,e.node(r))}),Et(e.edges(),function(r){t.setEdge(r,e.edge(r))}),t}function JD(e,t){var r=e.x,n=e.y,i=t.x-r,a=t.y-n,s=e.width/2,l=e.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function rf(e){var t=Xt(Ho(eR(e)+1),function(){return[]});return Et(e.nodes(),function(r){var n=e.node(r),i=n.rank;fr(i)||(t[i][n.order]=r)}),t}function mnt(e){var t=Il(Xt(e.nodes(),function(r){return e.node(r).rank}));Et(e.nodes(),function(r){var n=e.node(r);jt(n,"rank")&&(n.rank-=t)})}function gnt(e){var t=Il(Xt(e.nodes(),function(a){return e.node(a).rank})),r=[];Et(e.nodes(),function(a){var s=e.node(a).rank-t;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=e.graph().nodeRankFactor;Et(r,function(a,s){fr(a)&&s%i!==0?--n:n&&Et(a,function(l){e.node(l).rank+=n})})}function tR(e,t,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Nc(e,"border",i,t)}function eR(e){return Is(Xt(e.nodes(),function(t){var r=e.node(t).rank;if(!fr(r))return r}))}function ynt(e,t){var r={lhs:[],rhs:[]};return Et(e,function(n){t(n)?r.lhs.push(n):r.rhs.push(n)}),r}function vnt(e,t){var r=LT();try{return t()}finally{console.log(e+" time: "+(LT()-r)+"ms")}}function xnt(e,t){return t()}var Mc=R(()=>{"use strict";Ve();wa();o(Nc,"addDummyNode");o(pnt,"simplify");o(WT,"asNonCompoundGraph");o(JD,"intersectRect");o(rf,"buildLayerMatrix");o(mnt,"normalizeRanks");o(gnt,"removeEmptyRanks");o(tR,"addBorderNode");o(eR,"maxRank");o(ynt,"partition");o(vnt,"time");o(xnt,"notime")});function wnt(e){function t(r){var n=e.children(r),i=e.node(r);if(n.length&&Et(n,t),jt(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";Ve();Mc();o(wnt,"addBorderSegments");o(bnt,"addBorderNode")});function Ent(e){var t=e.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Snt(e)}function Cnt(e){var t=e.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&xIt(e),(t==="lr"||t==="rl")&&(bIt(e),Snt(e))}function Snt(e){Et(e.nodes(),function(t){knt(e.node(t))}),Et(e.edges(),function(t){knt(e.edge(t))})}function knt(e){var t=e.width;e.width=e.height,e.height=t}function xIt(e){Et(e.nodes(),function(t){rR(e.node(t))}),Et(e.edges(),function(t){var r=e.edge(t);Et(r.points,rR),jt(r,"y")&&rR(r)})}function rR(e){e.y=-e.y}function bIt(e){Et(e.nodes(),function(t){nR(e.node(t))}),Et(e.edges(),function(t){var r=e.edge(t);Et(r.points,nR),jt(r,"x")&&nR(r)})}function nR(e){var t=e.x;e.x=e.y,e.y=t}var Ant=R(()=>{"use strict";Ve();o(Ent,"adjust");o(Cnt,"undo");o(Snt,"swapWidthHeight");o(knt,"swapWidthHeightOne");o(xIt,"reverseY");o(rR,"reverseYOne");o(bIt,"swapXY");o(nR,"swapXYOne")});function _nt(e){e.graph().dummyChains=[],Et(e.edges(),function(t){TIt(e,t)})}function TIt(e,t){var r=t.v,n=e.node(r).rank,i=t.w,a=e.node(i).rank,s=t.name,l=e.edge(t),u=l.labelRank;if(a!==n+1){e.removeEdge(t);var h,f,d;for(d=0,++n;n{"use strict";Ve();Mc();o(_nt,"run");o(TIt,"normalizeEdge");o(Lnt,"undo")});function i2(e){var t={};function r(n){var i=e.node(n);if(jt(t,n))return i.rank;t[n]=!0;var a=Il(Xt(e.outEdges(n),function(s){return r(s.w)-e.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Et(e.sources(),r)}function qd(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var YT=R(()=>{"use strict";Ve();o(i2,"longestPath");o(qd,"slack")});function qT(e){var t=new yr({directed:!1}),r=e.nodes()[0],n=e.nodeCount();t.setNode(r,{});for(var i,a;kIt(t,e){"use strict";Ve();wa();YT();o(qT,"feasibleTree");o(kIt,"tightTree");o(EIt,"findMinSlackEdge");o(CIt,"shiftRanks")});var Rnt=R(()=>{"use strict"});var sR=R(()=>{"use strict"});var mWe,oR=R(()=>{"use strict";Ve();sR();mWe=Cs(1)});var Nnt=R(()=>{"use strict";oR()});var lR=R(()=>{"use strict"});var Mnt=R(()=>{"use strict";lR()});var SWe,Int=R(()=>{"use strict";Ve();SWe=Cs(1)});function cR(e){var t={},r={},n=[];function i(a){if(jt(r,a))throw new a2;jt(t,a)||(r[a]=!0,t[a]=!0,Et(e.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Et(e.sinks(),i),qD(t)!==e.nodeCount())throw new a2;return n}function a2(){}var uR=R(()=>{"use strict";Ve();cR.CycleException=a2;o(cR,"topsort");o(a2,"CycleException");a2.prototype=new Error});var Ont=R(()=>{"use strict";uR()});function XT(e,t,r){Le(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],a={};return Et(t,function(s){if(!e.hasNode(s))throw new Error("Graph does not have node: "+s);Pnt(e,s,r==="post",a,n,i)}),i}function Pnt(e,t,r,n,i,a){jt(n,t)||(n[t]=!0,r||a.push(t),Et(i(t),function(s){Pnt(e,s,r,n,i,a)}),r&&a.push(t))}var hR=R(()=>{"use strict";Ve();o(XT,"dfs");o(Pnt,"doDfs")});function fR(e,t){return XT(e,t,"post")}var Bnt=R(()=>{"use strict";hR();o(fR,"postorder")});function dR(e,t){return XT(e,t,"pre")}var Fnt=R(()=>{"use strict";hR();o(dR,"preorder")});var znt=R(()=>{"use strict";sR();UT()});var $nt=R(()=>{"use strict";Rnt();oR();Nnt();Mnt();Int();Ont();Bnt();Fnt();znt();lR();uR()});function af(e){e=pnt(e),i2(e);var t=qT(e);mR(t),pR(t,e);for(var r,n;r=Hnt(t);)n=Wnt(t,e,r),Ynt(t,e,r,n)}function pR(e,t){var r=fR(e,e.nodes());r=r.slice(0,r.length-1),Et(r,function(n){DIt(e,t,n)})}function DIt(e,t,r){var n=e.node(r),i=n.parent;e.edge(r,i).cutvalue=Vnt(e,t,r)}function Vnt(e,t,r){var n=e.node(r),i=n.parent,a=!0,s=t.edge(r,i),l=0;return s||(a=!1,s=t.edge(i,r)),l=s.weight,Et(t.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=t.edge(u).weight;if(l+=d?p:-p,NIt(e,r,f)){var m=e.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function mR(e,t){arguments.length<2&&(t=e.nodes()[0]),Unt(e,{},1,t)}function Unt(e,t,r,n,i){var a=r,s=e.node(n);return t[n]=!0,Et(e.neighbors(n),function(l){jt(t,l)||(r=Unt(e,t,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function Hnt(e){return rs(e.edges(),function(t){return e.edge(t).cutvalue<0})}function Wnt(e,t,r){var n=r.v,i=r.w;t.hasEdge(n,i)||(n=r.w,i=r.v);var a=e.node(n),s=e.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=Yr(t.edges(),function(f){return u===Gnt(e,e.node(f.v),l)&&u!==Gnt(e,e.node(f.w),l)});return Ud(h,function(f){return qd(t,f)})}function Ynt(e,t,r,n){var i=r.v,a=r.w;e.removeEdge(i,a),e.setEdge(n.v,n.w,{}),mR(e),pR(e,t),RIt(e,t)}function RIt(e,t){var r=rs(e.nodes(),function(i){return!t.node(i).parent}),n=dR(e,r);n=n.slice(1),Et(n,function(i){var a=e.node(i).parent,s=t.edge(i,a),l=!1;s||(s=t.edge(a,i),l=!0),t.node(i).rank=t.node(a).rank+(l?s.minlen:-s.minlen)})}function NIt(e,t,r){return e.hasEdge(t,r)}function Gnt(e,t,r){return r.low<=t.lim&&t.lim<=r.lim}var qnt=R(()=>{"use strict";Ve();$nt();Mc();aR();YT();af.initLowLimValues=mR;af.initCutValues=pR;af.calcCutValue=Vnt;af.leaveEdge=Hnt;af.enterEdge=Wnt;af.exchangeEdges=Ynt;o(af,"networkSimplex");o(pR,"initCutValues");o(DIt,"assignCutValue");o(Vnt,"calcCutValue");o(mR,"initLowLimValues");o(Unt,"dfsAssignLowLim");o(Hnt,"leaveEdge");o(Wnt,"enterEdge");o(Ynt,"exchangeEdges");o(RIt,"updateRanks");o(NIt,"isTreeEdge");o(Gnt,"isDescendant")});function gR(e){switch(e.graph().ranker){case"network-simplex":Xnt(e);break;case"tight-tree":IIt(e);break;case"longest-path":MIt(e);break;default:Xnt(e)}}function IIt(e){i2(e),qT(e)}function Xnt(e){af(e)}var MIt,yR=R(()=>{"use strict";aR();qnt();YT();o(gR,"rank");MIt=i2;o(IIt,"tightTreeRanker");o(Xnt,"networkSimplexRanker")});function jnt(e){var t=Nc(e,"root",{},"_root"),r=OIt(e),n=Is(gr(r))-1,i=2*n+1;e.graph().nestingRoot=t,Et(e.edges(),function(s){e.edge(s).minlen*=i});var a=PIt(e)+1;Et(e.children(),function(s){Knt(e,t,i,a,n,r,s)}),e.graph().nodeRankFactor=i}function Knt(e,t,r,n,i,a,s){var l=e.children(s);if(!l.length){s!==t&&e.setEdge(t,s,{weight:0,minlen:r});return}var u=tR(e,"_bt"),h=tR(e,"_bb"),f=e.node(s);e.setParent(u,s),f.borderTop=u,e.setParent(h,s),f.borderBottom=h,Et(l,function(d){Knt(e,t,r,n,i,a,d);var p=e.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;e.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),e.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),e.parent(s)||e.setEdge(t,u,{weight:0,minlen:i+a[s]})}function OIt(e){var t={};function r(n,i){var a=e.children(n);a&&a.length&&Et(a,function(s){r(s,i+1)}),t[n]=i}return o(r,"dfs"),Et(e.children(),function(n){r(n,1)}),t}function PIt(e){return qr(e.edges(),function(t,r){return t+e.edge(r).weight},0)}function Qnt(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,Et(e.edges(),function(r){var n=e.edge(r);n.nestingEdge&&e.removeEdge(r)})}var Znt=R(()=>{"use strict";Ve();Mc();o(jnt,"run");o(Knt,"dfs");o(OIt,"treeDepths");o(PIt,"sumWeights");o(Qnt,"cleanup")});function Jnt(e,t,r){var n={},i;Et(r,function(a){for(var s=e.parent(a),l,u;s;){if(l=e.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){t.setEdge(u,s);return}s=l}})}var tit=R(()=>{"use strict";Ve();o(Jnt,"addSubgraphConstraints")});function eit(e,t,r){var n=FIt(e),i=new yr({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return e.node(a)});return Et(e.nodes(),function(a){var s=e.node(a),l=e.parent(a);(s.rank===t||s.minRank<=t&&t<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Et(e[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=fr(f)?0:f.weight;i.setEdge(h,a,{weight:e.edge(u).weight+d})}),jt(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[t],borderRight:s.borderRight[t]}))}),i}function FIt(e){for(var t;e.hasNode(t=Wd("_root")););return t}var rit=R(()=>{"use strict";Ve();wa();o(eit,"buildLayerGraph");o(FIt,"createRootNode")});function nit(e,t){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var iit=R(()=>{"use strict";Ve();o(nit,"crossCount");o(zIt,"twoLayerCrossCount")});function ait(e){var t={},r=Yr(e.nodes(),function(l){return!e.children(l).length}),n=Is(Xt(r,function(l){return e.node(l).rank})),i=Xt(Ho(n+1),function(){return[]});function a(l){if(!jt(t,l)){t[l]=!0;var u=e.node(l);i[u.rank].push(l),Et(e.successors(l),a)}}o(a,"dfs");var s=Rc(r,function(l){return e.node(l).rank});return Et(s,a),i}var sit=R(()=>{"use strict";Ve();o(ait,"initOrder")});function oit(e,t){return Xt(t,function(r){var n=e.inEdges(r);if(n.length){var i=qr(n,function(a,s){var l=e.edge(s),u=e.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var lit=R(()=>{"use strict";Ve();o(oit,"barycenter")});function cit(e,t){var r={};Et(e,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};fr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Et(t.edges(),function(i){var a=r[i.v],s=r[i.w];!fr(a)&&!fr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=Yr(r,function(i){return!i.indegree});return $It(n)}function $It(e){var t=[];function r(a){return function(s){s.merged||(fr(s.barycenter)||fr(a.barycenter)||s.barycenter>=a.barycenter)&&GIt(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&e.push(s)}}for(o(n,"handleOut");e.length;){var i=e.pop();t.push(i),Et(i.in.reverse(),r(i)),Et(i.out,n(i))}return Xt(Yr(t,function(a){return!a.merged}),function(a){return Hd(a,["vs","i","barycenter","weight"])})}function GIt(e,t){var r=0,n=0;e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=r/n,e.weight=n,e.i=Math.min(t.i,e.i),t.merged=!0}var uit=R(()=>{"use strict";Ve();o(cit,"resolveConflicts");o($It,"doResolveConflicts");o(GIt,"mergeEntries")});function fit(e,t){var r=ynt(e,function(f){return jt(f,"barycenter")}),n=r.lhs,i=Rc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(VIt(!!t)),u=hit(a,i,u),Et(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=hit(a,i,u)});var h={vs:Wr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function hit(e,t,r){for(var n;t.length&&(n=xa(t)).i<=r;)t.pop(),e.push(n.vs),r++;return r}function VIt(e){return function(t,r){return t.barycenterr.barycenter?1:e?r.i-t.i:t.i-r.i}}var dit=R(()=>{"use strict";Ve();Mc();o(fit,"sort");o(hit,"consumeUnsortable");o(VIt,"compareWithBias")});function vR(e,t,r,n){var i=e.children(t),a=e.node(t),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=Yr(i,function(g){return g!==s&&g!==l}));var h=oit(e,i);Et(h,function(g){if(e.children(g.v).length){var y=vR(e,g.v,r,n);u[g.v]=y,jt(y,"barycenter")&&HIt(g,y)}});var f=cit(h,r);UIt(f,u);var d=fit(f,n);if(s&&(d.vs=Wr([s,d.vs,l]),e.predecessors(s).length)){var p=e.node(e.predecessors(s)[0]),m=e.node(e.predecessors(l)[0]);jt(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function UIt(e,t){Et(e,function(r){r.vs=Wr(r.vs.map(function(n){return t[n]?t[n].vs:n}))})}function HIt(e,t){fr(e.barycenter)?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}var pit=R(()=>{"use strict";Ve();lit();uit();dit();o(vR,"sortSubgraph");o(UIt,"expandSubgraphs");o(HIt,"mergeBarycenters")});function yit(e){var t=eR(e),r=mit(e,Ho(1,t+1),"inEdges"),n=mit(e,Ho(t-1,-1,-1),"outEdges"),i=ait(e);git(e,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){WIt(l%2?r:n,l%4>=2),i=rf(e);var h=nit(e,i);h{"use strict";Ve();wa();Mc();tit();rit();iit();sit();pit();o(yit,"order");o(mit,"buildLayerGraphs");o(WIt,"sweepLayerGraphs");o(git,"assignOrder")});function xit(e){var t=qIt(e);Et(e.graph().dummyChains,function(r){for(var n=e.node(r),i=n.edgeObj,a=YIt(e,t,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=e.node(r),f){for(;(h=s[u])!==l&&e.node(h).maxRanks||l>t[u].lim));for(h=u,u=n;(u=e.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function qIt(e){var t={},r=0;function n(i){var a=r;Et(e.children(i),n),t[i]={low:a,lim:r++}}return o(n,"dfs"),Et(e.children(),n),t}var bit=R(()=>{"use strict";Ve();o(xit,"parentDummyChains");o(YIt,"findPath");o(qIt,"postorder")});function XIt(e,t){var r={};function n(i,a){var s=0,l=0,u=i.length,h=xa(a);return Et(a,function(f,d){var p=KIt(e,f),m=p?e.node(p).order:u;(p||f===h)&&(Et(a.slice(l,d+1),function(g){Et(e.predecessors(g),function(y){var v=e.node(y),x=v.order;(xh)&&wit(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Et(s,function(f,d){if(e.node(f).dummy==="border"){var p=e.predecessors(f);p.length&&(u=e.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),qr(t,i),r}function KIt(e,t){if(e.node(t).dummy)return rs(e.predecessors(t),function(r){return e.node(r).dummy})}function wit(e,t,r){if(t>r){var n=t;t=r,r=n}var i=e[t];i||(e[t]=i={}),i[r]=!0}function QIt(e,t,r){if(t>r){var n=t;t=r,r=n}return jt(e[t],r)}function ZIt(e,t,r,n){var i={},a={},s={};return Et(t,function(l){Et(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Et(t,function(l){var u=-1;Et(l,function(h){var f=n(h);if(f.length){f=Rc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";Ve();wa();Mc();o(XIt,"findType1Conflicts");o(jIt,"findType2Conflicts");o(KIt,"findOtherInnerSegmentNode");o(wit,"addConflict");o(QIt,"hasConflict");o(ZIt,"verticalAlignment");o(JIt,"horizontalCompaction");o(tOt,"buildBlockGraph");o(eOt,"findSmallestWidthAlignment");o(rOt,"alignCoordinates");o(nOt,"balance");o(Tit,"positionX");o(iOt,"sep");o(aOt,"width")});function Eit(e){e=WT(e),sOt(e),FD(Tit(e),function(t,r){e.node(r).x=t})}function sOt(e){var t=rf(e),r=e.graph().ranksep,n=0;Et(t,function(i){var a=Is(Xt(i,function(s){return e.node(s).height}));Et(i,function(s){e.node(s).y=n+a/2}),n+=a+r})}var Cit=R(()=>{"use strict";Ve();Mc();kit();o(Eit,"position");o(sOt,"positionY")});function co(e,t){var r=t&&t.debugTiming?vnt:xnt;r("layout",function(){var n=r(" buildLayoutGraph",function(){return yOt(e)});r(" runLayout",function(){oOt(n,r)}),r(" updateInputGraph",function(){lOt(e,n)})})}function oOt(e,t){t(" makeSpaceForEdgeLabels",function(){vOt(e)}),t(" removeSelfEdges",function(){AOt(e)}),t(" acyclic",function(){hnt(e)}),t(" nestingGraph.run",function(){jnt(e)}),t(" rank",function(){gR(WT(e))}),t(" injectEdgeLabelProxies",function(){xOt(e)}),t(" removeEmptyRanks",function(){gnt(e)}),t(" nestingGraph.cleanup",function(){Qnt(e)}),t(" normalizeRanks",function(){mnt(e)}),t(" assignRankMinMax",function(){bOt(e)}),t(" removeEdgeLabelProxies",function(){wOt(e)}),t(" normalize.run",function(){_nt(e)}),t(" parentDummyChains",function(){xit(e)}),t(" addBorderSegments",function(){wnt(e)}),t(" order",function(){yit(e)}),t(" insertSelfEdges",function(){_Ot(e)}),t(" adjustCoordinateSystem",function(){Ent(e)}),t(" position",function(){Eit(e)}),t(" positionSelfEdges",function(){LOt(e)}),t(" removeBorderNodes",function(){SOt(e)}),t(" normalize.undo",function(){Lnt(e)}),t(" fixupEdgeLabelCoords",function(){EOt(e)}),t(" undoCoordinateSystem",function(){Cnt(e)}),t(" translateGraph",function(){TOt(e)}),t(" assignNodeIntersects",function(){kOt(e)}),t(" reversePoints",function(){COt(e)}),t(" acyclic.undo",function(){fnt(e)})}function lOt(e,t){Et(e.nodes(),function(r){var n=e.node(r),i=t.node(r);n&&(n.x=i.x,n.y=i.y,t.children(r).length&&(n.width=i.width,n.height=i.height))}),Et(e.edges(),function(r){var n=e.edge(r),i=t.edge(r);n.points=i.points,jt(i,"x")&&(n.x=i.x,n.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}function yOt(e){var t=new yr({multigraph:!0,compound:!0}),r=bR(e.graph());return t.setGraph(Gh({},uOt,xR(r,cOt),Hd(r,hOt))),Et(e.nodes(),function(n){var i=bR(e.node(n));t.setNode(n,Jh(xR(i,fOt),dOt)),t.setParent(n,e.parent(n))}),Et(e.edges(),function(n){var i=bR(e.edge(n));t.setEdge(n,Gh({},mOt,xR(i,pOt),Hd(i,gOt)))}),t}function vOt(e){var t=e.graph();t.ranksep/=2,Et(e.edges(),function(r){var n=e.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function xOt(e){Et(e.edges(),function(t){var r=e.edge(t);if(r.width&&r.height){var n=e.node(t.v),i=e.node(t.w),a={rank:(i.rank-n.rank)/2+n.rank,e:t};Nc(e,"edge-proxy",a,"_ep")}})}function bOt(e){var t=0;Et(e.nodes(),function(r){var n=e.node(r);n.borderTop&&(n.minRank=e.node(n.borderTop).rank,n.maxRank=e.node(n.borderBottom).rank,t=Is(t,n.maxRank))}),e.graph().maxRank=t}function wOt(e){Et(e.nodes(),function(t){var r=e.node(t);r.dummy==="edge-proxy"&&(e.edge(r.e).labelRank=r.rank,e.removeNode(t))})}function TOt(e){var t=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=e.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;t=Math.min(t,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Et(e.nodes(),function(h){u(e.node(h))}),Et(e.edges(),function(h){var f=e.edge(h);jt(f,"x")&&u(f)}),t-=s,n-=l,Et(e.nodes(),function(h){var f=e.node(h);f.x-=t,f.y-=n}),Et(e.edges(),function(h){var f=e.edge(h);Et(f.points,function(d){d.x-=t,d.y-=n}),jt(f,"x")&&(f.x-=t),jt(f,"y")&&(f.y-=n)}),a.width=r-t+s,a.height=i-n+l}function kOt(e){Et(e.edges(),function(t){var r=e.edge(t),n=e.node(t.v),i=e.node(t.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(JD(n,a)),r.points.push(JD(i,s))})}function EOt(e){Et(e.edges(),function(t){var r=e.edge(t);if(jt(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function COt(e){Et(e.edges(),function(t){var r=e.edge(t);r.reversed&&r.points.reverse()})}function SOt(e){Et(e.nodes(),function(t){if(e.children(t).length){var r=e.node(t),n=e.node(r.borderTop),i=e.node(r.borderBottom),a=e.node(xa(r.borderLeft)),s=e.node(xa(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Et(e.nodes(),function(t){e.node(t).dummy==="border"&&e.removeNode(t)})}function AOt(e){Et(e.edges(),function(t){if(t.v===t.w){var r=e.node(t.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function _Ot(e){var t=rf(e);Et(t,function(r){var n=0;Et(r,function(i,a){var s=e.node(i);s.order=a+n,Et(s.selfEdges,function(l){Nc(e,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function LOt(e){Et(e.nodes(),function(t){var r=e.node(t);if(r.dummy==="selfedge"){var n=e.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function xR(e,t){return Vd(Hd(e,t),Number)}function bR(e){var t={};return Et(e,function(r,n){t[n.toLowerCase()]=r}),t}var cOt,uOt,hOt,fOt,dOt,pOt,mOt,gOt,Sit=R(()=>{"use strict";Ve();wa();Tnt();Ant();ZD();iR();yR();Znt();vit();bit();Cit();Mc();o(co,"layout");o(oOt,"runLayout");o(lOt,"updateInputGraph");cOt=["nodesep","edgesep","ranksep","marginx","marginy"],uOt={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},hOt=["acyclicer","ranker","rankdir","align"],fOt=["width","height"],dOt={width:0,height:0},pOt=["minlen","weight","width","height","labeloffset"],mOt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},gOt=["labelpos"];o(yOt,"buildLayoutGraph");o(vOt,"makeSpaceForEdgeLabels");o(xOt,"injectEdgeLabelProxies");o(bOt,"assignRankMinMax");o(wOt,"removeEdgeLabelProxies");o(TOt,"translateGraph");o(kOt,"assignNodeIntersects");o(EOt,"fixupEdgeLabelCoords");o(COt,"reversePointsForReversedEdges");o(SOt,"removeBorderNodes");o(AOt,"removeSelfEdges");o(_Ot,"insertSelfEdges");o(LOt,"positionSelfEdges");o(xR,"selectNumberAttrs");o(bR,"canonicalize")});var Xd=R(()=>{"use strict";ZD();Sit();iR();yR()});function Yn(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:DOt(e),edges:ROt(e)};return fr(e.graph())||(t.value=rn(e.graph())),t}function DOt(e){return Xt(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return fr(r)||(i.value=r),fr(n)||(i.parent=n),i})}function ROt(e){return Xt(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return fr(t.name)||(n.name=t.name),fr(r)||(n.value=r),n})}var s2=R(()=>{"use strict";Ve();UT();o(Yn,"write");o(DOt,"writeNodes");o(ROt,"writeEdges")});var vr,jd,_it,Lit,KT,NOt,Dit,Rit,MOt,Zm,Ait,Nit,Mit,Iit,Oit,Pit=R(()=>{"use strict";ce();wa();s2();vr=new Map,jd=new Map,_it=new Map,Lit=o(()=>{jd.clear(),_it.clear(),vr.clear()},"clear"),KT=o((e,t)=>{let r=jd.get(t)||[];return V.trace("In isDescendant",t," ",e," = ",r.includes(e)),r.includes(e)},"isDescendant"),NOt=o((e,t)=>{let r=jd.get(t)||[];return V.info("Descendants of ",t," is ",r),V.info("Edge is ",e),e.v===t||e.w===t?!1:r?r.includes(e.v)||KT(e.v,t)||KT(e.w,t)||r.includes(e.w):(V.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),Dit=o((e,t,r,n)=>{V.warn("Copying children of ",e,"root",n,"data",t.node(e),n);let i=t.children(e)||[];e!==n&&i.push(e),V.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)Dit(a,t,r,n);else{let s=t.node(a);V.info("cp ",a," to ",n," with parent ",e),r.setNode(a,s),n!==t.parent(a)&&(V.warn("Setting parent",a,t.parent(a)),r.setParent(a,t.parent(a))),e!==n&&a!==e?(V.debug("Setting parent",a,e),r.setParent(a,e)):(V.info("In copy ",e,"root",n,"data",t.node(e),n),V.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==n,"node!==clusterId",a!==e));let l=t.edges(a);V.debug("Copying Edges",l),l.forEach(u=>{V.info("Edge",u);let h=t.edge(u.v,u.w,u.name);V.info("Edge data",h,n);try{NOt(u,n)?(V.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),V.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):V.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",e)}catch(f){V.error(f)}})}V.debug("Removing node",a),t.removeNode(a)})},"copy"),Rit=o((e,t)=>{let r=t.children(e),n=[...r];for(let i of r)_it.set(i,e),n=[...n,...Rit(i,t)];return n},"extractDescendants"),MOt=o((e,t,r)=>{let n=e.edges().filter(u=>u.v===t||u.w===t),i=e.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===t?r:u.v,w:u.w===t?t:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Zm=o((e,t,r)=>{let n=t.children(e);if(V.trace("Searching children of id ",e,n),n.length<1)return e;let i;for(let a of n){let s=Zm(a,t,r),l=MOt(t,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Ait=o(e=>!vr.has(e)||!vr.get(e).externalConnections?e:vr.has(e)?vr.get(e).id:e,"getAnchorId"),Nit=o((e,t)=>{if(!e||t>10){V.debug("Opting out, no graph ");return}else V.debug("Opting in, graph ");e.nodes().forEach(function(r){e.children(r).length>0&&(V.warn("Cluster identified",r," Replacement id in edges: ",Zm(r,e,r)),jd.set(r,Rit(r,e)),vr.set(r,{id:Zm(r,e,r),clusterData:e.node(r)}))}),e.nodes().forEach(function(r){let n=e.children(r),i=e.edges();n.length>0?(V.debug("Cluster identified",r,jd),i.forEach(a=>{let s=KT(a.v,r),l=KT(a.w,r);s^l&&(V.warn("Edge: ",a," leaves cluster ",r),V.warn("Descendants of XXX ",r,": ",jd.get(r)),vr.get(r).externalConnections=!0)})):V.debug("Not a cluster ",r,jd)});for(let r of vr.keys()){let n=vr.get(r).id,i=e.parent(n);i!==r&&vr.has(i)&&!vr.get(i).externalConnections&&(vr.get(r).id=i)}e.edges().forEach(function(r){let n=e.edge(r);V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(e.edge(r)));let i=r.v,a=r.w;if(V.warn("Fix XXX",vr,"ids:",r.v,r.w,"Translating: ",vr.get(r.v)," --- ",vr.get(r.w)),vr.get(r.v)||vr.get(r.w)){if(V.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Ait(r.v),a=Ait(r.w),e.removeEdge(r.v,r.w,r.name),i!==r.v){let s=e.parent(i);vr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=e.parent(a);vr.get(s).externalConnections=!0,n.toCluster=r.w}V.warn("Fix Replacing with XXX",i,a,r.name),e.setEdge(i,a,n,r.name)}}),V.warn("Adjusted Graph",Yn(e)),Mit(e,0),V.trace(vr)},"adjustClustersAndEdges"),Mit=o((e,t)=>{if(V.warn("extractor - ",t,Yn(e),e.children("D")),t>10){V.error("Bailing out");return}let r=e.nodes(),n=!1;for(let i of r){let a=e.children(i);n=n||a.length>0}if(!n){V.debug("Done, no node has children",e.nodes());return}V.debug("Nodes = ",r,t);for(let i of r)if(V.debug("Extracting node",i,vr,vr.has(i)&&!vr.get(i).externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!vr.has(i))V.debug("Not a cluster",i,t);else if(!vr.get(i).externalConnections&&e.children(i)&&e.children(i).length>0){V.warn("Cluster without external connections, without a parent and with children",i,t);let s=e.graph().rankdir==="TB"?"LR":"TB";vr.get(i)?.clusterData?.dir&&(s=vr.get(i).clusterData.dir,V.warn("Fixing dir",vr.get(i).clusterData.dir,s));let l=new yr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});V.warn("Old graph before copy",Yn(e)),Dit(i,e,l,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:vr.get(i).clusterData,label:vr.get(i).label,graph:l}),V.warn("New graph after copy node: (",i,")",Yn(l)),V.debug("Old graph after copy",Yn(e))}else V.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!vr.get(i).externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),V.debug(vr);r=e.nodes(),V.warn("New list of nodes",r);for(let i of r){let a=e.node(i);V.warn(" Now next level",i,a),a?.clusterNode&&Mit(a.graph,t+1)}},"extractor"),Iit=o((e,t)=>{if(t.length===0)return[];let r=Object.assign([],t);return t.forEach(n=>{let i=e.children(n),a=Iit(e,i);r=[...r,...a]}),r},"sorter"),Oit=o(e=>Iit(e,e.children()),"sortNodesByHierarchy")});var Fit={};xr(Fit,{render:()=>IOt});var Bit,IOt,zit=R(()=>{"use strict";Xd();s2();wa();XL();Be();Pit();sD();WL();qL();ce();Nd();Ue();Bit=o(async(e,t,r,n,i,a)=>{V.warn("Graph in recursive render:XAX",Yn(t),i);let s=t.graph().rankdir;V.trace("Dir in recursive render - dir:",s);let l=e.insert("g").attr("class","root");t.nodes()?V.info("Recursive render XXX",t.nodes()):V.info("No nodes found for",t),t.edges().length>0&&V.info("Recursive edges",t.edge(t.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(y){let v=t.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));V.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),t.setNode(i.id,x),t.parent(y)||(V.trace("Setting parent",y,i.id),t.setParent(y,i.id,x))}if(V.info("(Insert) Node XXX"+y+": "+JSON.stringify(t.node(y))),v?.clusterNode){V.info("Cluster identified XBX",y,v.width,t.node(y));let{ranksep:x,nodesep:b}=t.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let w=await Bit(d,v.graph,r,n,t.node(y),a),S=w.elem;Qt(v,S),v.diff=w.diff||0,V.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),eJ(S,v)}else t.children(y).length>0?(V.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",t),V.trace(Zm(v.id,t)),vr.set(v.id,{id:Zm(v.id,t),node:v})):(V.trace("Node - the non recursive path XAX",y,d,t.node(y),s),await qw(d,t.node(y),{config:a,dir:s}))})),await o(async()=>{let y=t.edges().map(async function(v){let x=t.edge(v.v,v.w,v.name);V.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),V.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(t.edge(v))),V.info("Fix",vr,"ids:",v.v,v.w,"Translating: ",vr.get(v.v),vr.get(v.w)),await Tw(f,x)});await Promise.all(y)},"processEdges")(),V.info("Graph before layout:",JSON.stringify(Yn(t))),V.info("############################################# XXX"),V.info("### Layout ### XXX"),V.info("############################################# XXX"),co(t),V.info("Graph after layout:",JSON.stringify(Yn(t)));let m=0,{subGraphTitleTotalMargin:g}=io(a);return await Promise.all(Oit(t).map(async function(y){let v=t.node(y);if(V.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,V.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,t.parent(y)),vr.get(v.id).node=v,aD(v);else if(t.children(y).length>0){V.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,t.parent(y)),v.height+=g,t.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,w=b-x||0;V.debug("OffsetY",w,"labelHeight",b,"halfPadding",x),await gw(u,v),vr.get(v.id).node=v}else{let x=t.node(v.parentId);v.y+=g/2,V.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),aD(v)}})),t.edges().forEach(function(y){let v=t.edge(y);V.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(S=>S.y+=g/2);let x=t.node(y.v);var b=t.node(y.w);let w=Ew(h,v,vr,r,x,b,n);kw(v,w)}),t.nodes().forEach(function(y){let v=t.node(y);V.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),V.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),IOt=o(async(e,t)=>{let r=new yr({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=t.select("g");Cw(n,e.markers,e.type,e.diagramId),rJ(),_Q(),TQ(),Lit(),e.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),V.debug("Edges:",e.edges),e.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyc{"use strict";iJ();ce();o2={},wR=o(e=>{for(let t of e)o2[t.name]=t},"registerLayoutLoaders"),OOt=o(()=>{wR([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(zit(),Fit)),"loader")}])},"registerDefaultLayoutLoaders");OOt();QT=o(async(e,t)=>{if(!(e.layoutAlgorithm in o2))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let r=o2[e.layoutAlgorithm];return(await r.loader()).render(e,t,nJ,{algorithm:r.algorithm})},"render"),$it=o((e="",{fallback:t="dagre"}={})=>{if(e in o2)return e;if(t in o2)return V.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm")});var JT,POt,BOt,TR=R(()=>{"use strict";Jn();ce();JT=o((e,t,r,n)=>{e.attr("class",r);let{width:i,height:a,x:s,y:l}=POt(e,t);Pr(e,a,i,n);let u=BOt(s,l,i,a,t);e.attr("viewBox",u),V.debug(`viewBox configured: ${u} with padding: ${t}`)},"setupViewPortForSVG"),POt=o((e,t)=>{let r=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+t*2,height:r.height+t*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),BOt=o((e,t,r,n,i)=>`${e-i} ${t-i} ${r} ${n}`,"createViewBox")});var FOt,zOt,Git,Vit=R(()=>{"use strict";ur();Ue();ce();pL();ZT();TR();_r();dL();FOt=o(function(e,t){return t.db.getClasses()},"getClasses"),zOt=o(async function(e,t,r,n){V.info("REF0:"),V.info("Drawing state diagram (v2)",t);let{securityLevel:i,flowchart:a,layout:s}=pt(),l;i==="sandbox"&&(l=Gt("#i"+t));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;V.debug("Before getData: ");let h=n.db.getData();V.debug("Data: ",h);let f=rw(t,i),d=fL();h.type=n.type,h.layoutAlgorithm=$it(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&V.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=t,V.debug("REF1:",h),await QT(h,f);let p=h.config.flowchart?.diagramPadding??8;Oe.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),JT(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=Gt(`#${t} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Git={getClasses:FOt,draw:zOt}});var kR,Uit,Hit=R(()=>{"use strict";kR=function(){var e=o(function(wi,Ae,Ie,we){for(Ie=Ie||{},we=wi.length;we--;Ie[wi[we]]=Ae);return Ie},"o"),t=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],w=[1,32],S=[1,33],T=[1,44],E=[1,46],_=[1,42],A=[1,47],L=[1,43],M=[1,50],N=[1,45],k=[1,51],I=[1,52],C=[1,34],O=[1,35],D=[1,36],P=[1,37],F=[1,57],B=[1,8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],G=[1,61],z=[1,60],W=[1,62],Q=[8,9,11,75,77],j=[1,77],at=[1,90],X=[1,95],J=[1,94],Z=[1,91],H=[1,87],q=[1,93],K=[1,89],ot=[1,96],ct=[1,92],ut=[1,97],et=[1,88],Mt=[8,9,10,11,40,75,77],it=[8,9,10,11,40,46,75,77],wt=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,88,101,104,105,108,110,113,114,115],Ot=[8,9,11,44,60,75,77,88,101,104,105,108,110,113,114,115],St=[44,60,88,101,104,105,108,110,113,114,115],Vt=[1,123],Pt=[1,122],_t=[1,130],dt=[1,144],Y=[1,145],ft=[1,146],mt=[1,147],rt=[1,132],ht=[1,134],nt=[1,138],st=[1,139],Tt=[1,140],kt=[1,141],Ct=[1,142],At=[1,143],$t=[1,148],Nt=[1,149],yt=[1,128],Ut=[1,129],zt=[1,136],ae=[1,131],ke=[1,135],Ee=[1,133],le=[8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],Zt=[1,151],me=[1,153],Ht=[8,9,11],ne=[8,9,10,11,14,44,60,88,104,105,108,110,113,114,115],xe=[1,173],Se=[1,169],Ye=[1,170],fe=[1,174],ee=[1,171],pe=[1,172],Me=[77,115,118],oe=[8,9,10,11,12,14,27,29,32,44,60,75,83,84,85,86,87,88,89,104,108,110,113,114,115],qe=[10,105],Cr=[31,49,51,53,55,57,62,64,66,67,69,71,115,116,117],En=[1,242],or=[1,240],ln=[1,244],Ir=[1,238],ii=[1,239],mn=[1,241],Pn=[1,243],Sr=[1,245],pi=[1,263],ps=[8,9,11,105],Bn=[8,9,10,11,60,83,104,105,108,109,110,111],Eo={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,edgeTextToken:78,STR:79,MD_STR:80,textToken:81,keywords:82,STYLE:83,LINKSTYLE:84,CLASSDEF:85,CLASS:86,CLICK:87,DOWN:88,UP:89,textNoTagsToken:90,stylesOpt:91,"idString[vertex]":92,"idString[class]":93,CALLBACKNAME:94,CALLBACKARGS:95,HREF:96,LINK_TARGET:97,"STR[link]":98,"STR[tooltip]":99,alphaNum:100,DEFAULT:101,numList:102,INTERPOLATE:103,NUM:104,COMMA:105,style:106,styleComponent:107,NODE_STRING:108,UNIT:109,BRKT:110,PCT:111,idStringToken:112,MINUS:113,MULT:114,UNICODE_TEXT:115,TEXT:116,TAGSTART:117,EDGE_TEXT:118,alphaNumToken:119,direction_tb:120,direction_bt:121,direction_rl:122,direction_lr:123,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",79:"STR",80:"MD_STR",83:"STYLE",84:"LINKSTYLE",85:"CLASSDEF",86:"CLASS",87:"CLICK",88:"DOWN",89:"UP",92:"idString[vertex]",93:"idString[class]",94:"CALLBACKNAME",95:"CALLBACKARGS",96:"HREF",97:"LINK_TARGET",98:"STR[link]",99:"STR[tooltip]",101:"DEFAULT",103:"INTERPOLATE",104:"NUM",105:"COMMA",108:"NODE_STRING",109:"UNIT",110:"BRKT",111:"PCT",113:"MINUS",114:"MULT",115:"UNICODE_TEXT",116:"TEXT",117:"TAGSTART",118:"EDGE_TEXT",120:"direction_tb",121:"direction_bt",122:"direction_rl",123:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[76,1],[76,2],[76,1],[76,1],[72,1],[73,3],[30,1],[30,2],[30,1],[30,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[102,1],[102,3],[91,1],[91,3],[106,1],[106,2],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[81,1],[81,1],[81,1],[81,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[78,1],[78,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[47,1],[47,2],[100,1],[100,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(Ae,Ie,we,Wt,Fe,gt,gn){var vt=gt.length-1;switch(Fe){case 2:this.$=[];break;case 3:(!Array.isArray(gt[vt])||gt[vt].length>0)&>[vt-1].push(gt[vt]),this.$=gt[vt-1];break;case 4:case 181:this.$=gt[vt];break;case 11:Wt.setDirection("TB"),this.$="TB";break;case 12:Wt.setDirection(gt[vt-1]),this.$=gt[vt-1];break;case 27:this.$=gt[vt-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=Wt.addSubGraph(gt[vt-6],gt[vt-1],gt[vt-4]);break;case 34:this.$=Wt.addSubGraph(gt[vt-3],gt[vt-1],gt[vt-3]);break;case 35:this.$=Wt.addSubGraph(void 0,gt[vt-1],void 0);break;case 37:this.$=gt[vt].trim(),Wt.setAccTitle(this.$);break;case 38:case 39:this.$=gt[vt].trim(),Wt.setAccDescription(this.$);break;case 43:this.$=gt[vt-1]+gt[vt];break;case 44:this.$=gt[vt];break;case 45:Wt.addVertex(gt[vt-1][0],void 0,void 0,void 0,void 0,void 0,void 0,gt[vt]),Wt.addLink(gt[vt-3].stmt,gt[vt-1],gt[vt-2]),this.$={stmt:gt[vt-1],nodes:gt[vt-1].concat(gt[vt-3].nodes)};break;case 46:Wt.addLink(gt[vt-2].stmt,gt[vt],gt[vt-1]),this.$={stmt:gt[vt],nodes:gt[vt].concat(gt[vt-2].nodes)};break;case 47:Wt.addLink(gt[vt-3].stmt,gt[vt-1],gt[vt-2]),this.$={stmt:gt[vt-1],nodes:gt[vt-1].concat(gt[vt-3].nodes)};break;case 48:this.$={stmt:gt[vt-1],nodes:gt[vt-1]};break;case 49:Wt.addVertex(gt[vt-1][0],void 0,void 0,void 0,void 0,void 0,void 0,gt[vt]),this.$={stmt:gt[vt-1],nodes:gt[vt-1],shapeData:gt[vt]};break;case 50:this.$={stmt:gt[vt],nodes:gt[vt]};break;case 51:this.$=[gt[vt]];break;case 52:Wt.addVertex(gt[vt-5][0],void 0,void 0,void 0,void 0,void 0,void 0,gt[vt-4]),this.$=gt[vt-5].concat(gt[vt]);break;case 53:this.$=gt[vt-4].concat(gt[vt]);break;case 54:this.$=gt[vt];break;case 55:this.$=gt[vt-2],Wt.setClass(gt[vt-2],gt[vt]);break;case 56:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"square");break;case 57:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"doublecircle");break;case 58:this.$=gt[vt-5],Wt.addVertex(gt[vt-5],gt[vt-2],"circle");break;case 59:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"ellipse");break;case 60:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"stadium");break;case 61:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"subroutine");break;case 62:this.$=gt[vt-7],Wt.addVertex(gt[vt-7],gt[vt-1],"rect",void 0,void 0,void 0,Object.fromEntries([[gt[vt-5],gt[vt-3]]]));break;case 63:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"cylinder");break;case 64:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"round");break;case 65:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"diamond");break;case 66:this.$=gt[vt-5],Wt.addVertex(gt[vt-5],gt[vt-2],"hexagon");break;case 67:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"odd");break;case 68:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"trapezoid");break;case 69:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"inv_trapezoid");break;case 70:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"lean_right");break;case 71:this.$=gt[vt-3],Wt.addVertex(gt[vt-3],gt[vt-1],"lean_left");break;case 72:this.$=gt[vt],Wt.addVertex(gt[vt]);break;case 73:gt[vt-1].text=gt[vt],this.$=gt[vt-1];break;case 74:case 75:gt[vt-2].text=gt[vt-1],this.$=gt[vt-2];break;case 76:this.$=gt[vt];break;case 77:var qa=Wt.destructLink(gt[vt],gt[vt-2]);this.$={type:qa.type,stroke:qa.stroke,length:qa.length,text:gt[vt-1]};break;case 78:this.$={text:gt[vt],type:"text"};break;case 79:this.$={text:gt[vt-1].text+""+gt[vt],type:gt[vt-1].type};break;case 80:this.$={text:gt[vt],type:"string"};break;case 81:this.$={text:gt[vt],type:"markdown"};break;case 82:var qa=Wt.destructLink(gt[vt]);this.$={type:qa.type,stroke:qa.stroke,length:qa.length};break;case 83:this.$=gt[vt-1];break;case 84:this.$={text:gt[vt],type:"text"};break;case 85:this.$={text:gt[vt-1].text+""+gt[vt],type:gt[vt-1].type};break;case 86:this.$={text:gt[vt],type:"string"};break;case 87:case 102:this.$={text:gt[vt],type:"markdown"};break;case 99:this.$={text:gt[vt],type:"text"};break;case 100:this.$={text:gt[vt-1].text+""+gt[vt],type:gt[vt-1].type};break;case 101:this.$={text:gt[vt],type:"text"};break;case 103:this.$=gt[vt-4],Wt.addClass(gt[vt-2],gt[vt]);break;case 104:this.$=gt[vt-4],Wt.setClass(gt[vt-2],gt[vt]);break;case 105:case 113:this.$=gt[vt-1],Wt.setClickEvent(gt[vt-1],gt[vt]);break;case 106:case 114:this.$=gt[vt-3],Wt.setClickEvent(gt[vt-3],gt[vt-2]),Wt.setTooltip(gt[vt-3],gt[vt]);break;case 107:this.$=gt[vt-2],Wt.setClickEvent(gt[vt-2],gt[vt-1],gt[vt]);break;case 108:this.$=gt[vt-4],Wt.setClickEvent(gt[vt-4],gt[vt-3],gt[vt-2]),Wt.setTooltip(gt[vt-4],gt[vt]);break;case 109:this.$=gt[vt-2],Wt.setLink(gt[vt-2],gt[vt]);break;case 110:this.$=gt[vt-4],Wt.setLink(gt[vt-4],gt[vt-2]),Wt.setTooltip(gt[vt-4],gt[vt]);break;case 111:this.$=gt[vt-4],Wt.setLink(gt[vt-4],gt[vt-2],gt[vt]);break;case 112:this.$=gt[vt-6],Wt.setLink(gt[vt-6],gt[vt-4],gt[vt]),Wt.setTooltip(gt[vt-6],gt[vt-2]);break;case 115:this.$=gt[vt-1],Wt.setLink(gt[vt-1],gt[vt]);break;case 116:this.$=gt[vt-3],Wt.setLink(gt[vt-3],gt[vt-2]),Wt.setTooltip(gt[vt-3],gt[vt]);break;case 117:this.$=gt[vt-3],Wt.setLink(gt[vt-3],gt[vt-2],gt[vt]);break;case 118:this.$=gt[vt-5],Wt.setLink(gt[vt-5],gt[vt-4],gt[vt]),Wt.setTooltip(gt[vt-5],gt[vt-2]);break;case 119:this.$=gt[vt-4],Wt.addVertex(gt[vt-2],void 0,void 0,gt[vt]);break;case 120:this.$=gt[vt-4],Wt.updateLink([gt[vt-2]],gt[vt]);break;case 121:this.$=gt[vt-4],Wt.updateLink(gt[vt-2],gt[vt]);break;case 122:this.$=gt[vt-8],Wt.updateLinkInterpolate([gt[vt-6]],gt[vt-2]),Wt.updateLink([gt[vt-6]],gt[vt]);break;case 123:this.$=gt[vt-8],Wt.updateLinkInterpolate(gt[vt-6],gt[vt-2]),Wt.updateLink(gt[vt-6],gt[vt]);break;case 124:this.$=gt[vt-6],Wt.updateLinkInterpolate([gt[vt-4]],gt[vt]);break;case 125:this.$=gt[vt-6],Wt.updateLinkInterpolate(gt[vt-4],gt[vt]);break;case 126:case 128:this.$=[gt[vt]];break;case 127:case 129:gt[vt-2].push(gt[vt]),this.$=gt[vt-2];break;case 131:this.$=gt[vt-1]+gt[vt];break;case 179:this.$=gt[vt];break;case 180:this.$=gt[vt-1]+""+gt[vt];break;case 182:this.$=gt[vt-1]+""+gt[vt];break;case 183:this.$={stmt:"dir",value:"TB"};break;case 184:this.$={stmt:"dir",value:"BT"};break;case 185:this.$={stmt:"dir",value:"RL"};break;case 186:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:t,10:r,12:n},{1:[3]},e(i,a,{5:6}),{4:7,9:t,10:r,12:n},{4:8,9:t,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:S,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I,120:C,121:O,122:D,123:P},e(i,[2,9]),e(i,[2,10]),e(i,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},e(B,[2,3]),e(B,[2,4]),e(B,[2,5]),e(B,[2,6]),e(B,[2,7]),e(B,[2,8]),{8:G,9:z,11:W,21:58,41:59,72:63,75:[1,64],77:[1,65]},{8:G,9:z,11:W,21:66},{8:G,9:z,11:W,21:67},{8:G,9:z,11:W,21:68},{8:G,9:z,11:W,21:69},{8:G,9:z,11:W,21:70},{8:G,9:z,10:[1,71],11:W,21:72},e(B,[2,36]),{35:[1,73]},{37:[1,74]},e(B,[2,39]),e(Q,[2,50],{18:75,39:76,10:F,40:j}),{10:[1,78]},{10:[1,79]},{10:[1,80]},{10:[1,81]},{14:at,44:X,60:J,79:[1,85],88:Z,94:[1,82],96:[1,83],100:84,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et,119:86},e(B,[2,183]),e(B,[2,184]),e(B,[2,185]),e(B,[2,186]),e(Mt,[2,51]),e(Mt,[2,54],{46:[1,98]}),e(it,[2,72],{112:111,29:[1,99],44:g,48:[1,100],50:[1,101],52:[1,102],54:[1,103],56:[1,104],58:[1,105],60:y,63:[1,106],65:[1,107],67:[1,108],68:[1,109],70:[1,110],88:T,101:E,104:_,105:A,108:L,110:M,113:N,114:k,115:I}),e(wt,[2,179]),e(wt,[2,140]),e(wt,[2,141]),e(wt,[2,142]),e(wt,[2,143]),e(wt,[2,144]),e(wt,[2,145]),e(wt,[2,146]),e(wt,[2,147]),e(wt,[2,148]),e(wt,[2,149]),e(wt,[2,150]),e(i,[2,12]),e(i,[2,18]),e(i,[2,19]),{9:[1,112]},e(Ot,[2,26],{18:113,10:F}),e(B,[2,27]),{42:114,43:38,44:g,45:39,47:40,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},e(B,[2,40]),e(B,[2,41]),e(B,[2,42]),e(St,[2,76],{73:115,62:[1,117],74:[1,116]}),{76:118,78:119,79:[1,120],80:[1,121],115:Vt,118:Pt},e([44,60,62,74,88,101,104,105,108,110,113,114,115],[2,82]),e(B,[2,28]),e(B,[2,29]),e(B,[2,30]),e(B,[2,31]),e(B,[2,32]),{10:_t,12:dt,14:Y,27:ft,28:124,32:mt,44:rt,60:ht,75:nt,79:[1,126],80:[1,127],82:137,83:st,84:Tt,85:kt,86:Ct,87:At,88:$t,89:Nt,90:125,104:yt,108:Ut,110:zt,113:ae,114:ke,115:Ee},e(le,a,{5:150}),e(B,[2,37]),e(B,[2,38]),e(Q,[2,48],{44:Zt}),e(Q,[2,49],{18:152,10:F,40:me}),e(Mt,[2,44]),{44:g,47:154,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},{101:[1,155],102:156,104:[1,157]},{44:g,47:158,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},{44:g,47:159,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},e(Ht,[2,105],{10:[1,160],95:[1,161]}),{79:[1,162]},e(Ht,[2,113],{119:164,10:[1,163],14:at,44:X,60:J,88:Z,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et}),e(Ht,[2,115],{10:[1,165]}),e(ne,[2,181]),e(ne,[2,168]),e(ne,[2,169]),e(ne,[2,170]),e(ne,[2,171]),e(ne,[2,172]),e(ne,[2,173]),e(ne,[2,174]),e(ne,[2,175]),e(ne,[2,176]),e(ne,[2,177]),e(ne,[2,178]),{44:g,47:166,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},{30:167,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:175,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:177,50:[1,176],67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:178,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:179,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:180,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{108:[1,181]},{30:182,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:183,65:[1,184],67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:185,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:186,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{30:187,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},e(wt,[2,180]),e(i,[2,20]),e(Ot,[2,25]),e(Q,[2,46],{39:188,18:189,10:F,40:j}),e(St,[2,73],{10:[1,190]}),{10:[1,191]},{30:192,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{77:[1,193],78:194,115:Vt,118:Pt},e(Me,[2,78]),e(Me,[2,80]),e(Me,[2,81]),e(Me,[2,166]),e(Me,[2,167]),{8:G,9:z,10:_t,11:W,12:dt,14:Y,21:196,27:ft,29:[1,195],32:mt,44:rt,60:ht,75:nt,82:137,83:st,84:Tt,85:kt,86:Ct,87:At,88:$t,89:Nt,90:197,104:yt,108:Ut,110:zt,113:ae,114:ke,115:Ee},e(oe,[2,99]),e(oe,[2,101]),e(oe,[2,102]),e(oe,[2,155]),e(oe,[2,156]),e(oe,[2,157]),e(oe,[2,158]),e(oe,[2,159]),e(oe,[2,160]),e(oe,[2,161]),e(oe,[2,162]),e(oe,[2,163]),e(oe,[2,164]),e(oe,[2,165]),e(oe,[2,88]),e(oe,[2,89]),e(oe,[2,90]),e(oe,[2,91]),e(oe,[2,92]),e(oe,[2,93]),e(oe,[2,94]),e(oe,[2,95]),e(oe,[2,96]),e(oe,[2,97]),e(oe,[2,98]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,198],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:S,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I,120:C,121:O,122:D,123:P},{10:F,18:199},{44:[1,200]},e(Mt,[2,43]),{10:[1,201],44:g,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:111,113:N,114:k,115:I},{10:[1,202]},{10:[1,203],105:[1,204]},e(qe,[2,126]),{10:[1,205],44:g,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:111,113:N,114:k,115:I},{10:[1,206],44:g,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:111,113:N,114:k,115:I},{79:[1,207]},e(Ht,[2,107],{10:[1,208]}),e(Ht,[2,109],{10:[1,209]}),{79:[1,210]},e(ne,[2,182]),{79:[1,211],97:[1,212]},e(Mt,[2,55],{112:111,44:g,60:y,88:T,101:E,104:_,105:A,108:L,110:M,113:N,114:k,115:I}),{31:[1,213],67:xe,81:214,115:fe,116:ee,117:pe},e(Cr,[2,84]),e(Cr,[2,86]),e(Cr,[2,87]),e(Cr,[2,151]),e(Cr,[2,152]),e(Cr,[2,153]),e(Cr,[2,154]),{49:[1,215],67:xe,81:214,115:fe,116:ee,117:pe},{30:216,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{51:[1,217],67:xe,81:214,115:fe,116:ee,117:pe},{53:[1,218],67:xe,81:214,115:fe,116:ee,117:pe},{55:[1,219],67:xe,81:214,115:fe,116:ee,117:pe},{57:[1,220],67:xe,81:214,115:fe,116:ee,117:pe},{60:[1,221]},{64:[1,222],67:xe,81:214,115:fe,116:ee,117:pe},{66:[1,223],67:xe,81:214,115:fe,116:ee,117:pe},{30:224,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},{31:[1,225],67:xe,81:214,115:fe,116:ee,117:pe},{67:xe,69:[1,226],71:[1,227],81:214,115:fe,116:ee,117:pe},{67:xe,69:[1,229],71:[1,228],81:214,115:fe,116:ee,117:pe},e(Q,[2,45],{18:152,10:F,40:me}),e(Q,[2,47],{44:Zt}),e(St,[2,75]),e(St,[2,74]),{62:[1,230],67:xe,81:214,115:fe,116:ee,117:pe},e(St,[2,77]),e(Me,[2,79]),{30:231,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},e(le,a,{5:232}),e(oe,[2,100]),e(B,[2,35]),{43:233,44:g,45:39,47:40,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},{10:F,18:234},{10:En,60:or,83:ln,91:235,104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},{10:En,60:or,83:ln,91:246,103:[1,247],104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},{10:En,60:or,83:ln,91:248,103:[1,249],104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},{104:[1,250]},{10:En,60:or,83:ln,91:251,104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},{44:g,47:252,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},e(Ht,[2,106]),{79:[1,253]},{79:[1,254],97:[1,255]},e(Ht,[2,114]),e(Ht,[2,116],{10:[1,256]}),e(Ht,[2,117]),e(it,[2,56]),e(Cr,[2,85]),e(it,[2,57]),{51:[1,257],67:xe,81:214,115:fe,116:ee,117:pe},e(it,[2,64]),e(it,[2,59]),e(it,[2,60]),e(it,[2,61]),{108:[1,258]},e(it,[2,63]),e(it,[2,65]),{66:[1,259],67:xe,81:214,115:fe,116:ee,117:pe},e(it,[2,67]),e(it,[2,68]),e(it,[2,70]),e(it,[2,69]),e(it,[2,71]),e([10,44,60,88,101,104,105,108,110,113,114,115],[2,83]),{31:[1,260],67:xe,81:214,115:fe,116:ee,117:pe},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,261],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:S,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I,120:C,121:O,122:D,123:P},e(Mt,[2,53]),{43:262,44:g,45:39,47:40,60:y,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I},e(Ht,[2,119],{105:pi}),e(ps,[2,128],{107:264,10:En,60:or,83:ln,104:Ir,108:ii,109:mn,110:Pn,111:Sr}),e(Bn,[2,130]),e(Bn,[2,132]),e(Bn,[2,133]),e(Bn,[2,134]),e(Bn,[2,135]),e(Bn,[2,136]),e(Bn,[2,137]),e(Bn,[2,138]),e(Bn,[2,139]),e(Ht,[2,120],{105:pi}),{10:[1,265]},e(Ht,[2,121],{105:pi}),{10:[1,266]},e(qe,[2,127]),e(Ht,[2,103],{105:pi}),e(Ht,[2,104],{112:111,44:g,60:y,88:T,101:E,104:_,105:A,108:L,110:M,113:N,114:k,115:I}),e(Ht,[2,108]),e(Ht,[2,110],{10:[1,267]}),e(Ht,[2,111]),{97:[1,268]},{51:[1,269]},{62:[1,270]},{66:[1,271]},{8:G,9:z,11:W,21:272},e(B,[2,34]),e(Mt,[2,52]),{10:En,60:or,83:ln,104:Ir,106:273,107:237,108:ii,109:mn,110:Pn,111:Sr},e(Bn,[2,131]),{14:at,44:X,60:J,88:Z,100:274,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et,119:86},{14:at,44:X,60:J,88:Z,100:275,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et,119:86},{97:[1,276]},e(Ht,[2,118]),e(it,[2,58]),{30:277,67:xe,79:Se,80:Ye,81:168,115:fe,116:ee,117:pe},e(it,[2,66]),e(le,a,{5:278}),e(ps,[2,129],{107:264,10:En,60:or,83:ln,104:Ir,108:ii,109:mn,110:Pn,111:Sr}),e(Ht,[2,124],{119:164,10:[1,279],14:at,44:X,60:J,88:Z,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et}),e(Ht,[2,125],{119:164,10:[1,280],14:at,44:X,60:J,88:Z,104:H,105:q,108:K,110:ot,113:ct,114:ut,115:et}),e(Ht,[2,112]),{31:[1,281],67:xe,81:214,115:fe,116:ee,117:pe},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,282],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:S,88:T,101:E,104:_,105:A,108:L,110:M,112:41,113:N,114:k,115:I,120:C,121:O,122:D,123:P},{10:En,60:or,83:ln,91:283,104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},{10:En,60:or,83:ln,91:284,104:Ir,106:236,107:237,108:ii,109:mn,110:Pn,111:Sr},e(it,[2,62]),e(B,[2,33]),e(Ht,[2,122],{105:pi}),e(Ht,[2,123],{105:pi})],defaultActions:{},parseError:o(function(Ae,Ie){if(Ie.recoverable)this.trace(Ae);else{var we=new Error(Ae);throw we.hash=Ie,we}},"parseError"),parse:o(function(Ae){var Ie=this,we=[0],Wt=[],Fe=[null],gt=[],gn=this.table,vt="",qa=0,W1=0,Y1=0,q1=2,X1=1,lp=gt.slice.call(arguments,1),jn=Object.create(this.lexer),ca={yy:{}};for(var Zl in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Zl)&&(ca.yy[Zl]=this.yy[Zl]);jn.setInput(Ae,ca.yy),ca.yy.lexer=jn,ca.yy.parser=this,typeof jn.yylloc>"u"&&(jn.yylloc={});var Vf=jn.yylloc;gt.push(Vf);var j1=jn.options&&jn.options.ranges;typeof ca.yy.parseError=="function"?this.parseError=ca.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function mz(Xa){we.length=we.length-2*Xa,Fe.length=Fe.length-Xa,gt.length=gt.length-Xa}o(mz,"popStack");function Uf(){var Xa;return Xa=Wt.pop()||jn.lex()||X1,typeof Xa!="number"&&(Xa instanceof Array&&(Wt=Xa,Xa=Wt.pop()),Xa=Ie.symbols_[Xa]||Xa),Xa}o(Uf,"lex");for(var ua,K1,Cn,Ni,gz,cp,Jl={},Hf,Co,Kb,Wf;;){if(Cn=we[we.length-1],this.defaultActions[Cn]?Ni=this.defaultActions[Cn]:((ua===null||typeof ua>"u")&&(ua=Uf()),Ni=gn[Cn]&&gn[Cn][ua]),typeof Ni>"u"||!Ni.length||!Ni[0]){var up="";Wf=[];for(Hf in gn[Cn])this.terminals_[Hf]&&Hf>q1&&Wf.push("'"+this.terminals_[Hf]+"'");jn.showPosition?up="Parse error on line "+(qa+1)+`: +`+jn.showPosition()+` +Expecting `+Wf.join(", ")+", got '"+(this.terminals_[ua]||ua)+"'":up="Parse error on line "+(qa+1)+": Unexpected "+(ua==X1?"end of input":"'"+(this.terminals_[ua]||ua)+"'"),this.parseError(up,{text:jn.match,token:this.terminals_[ua]||ua,line:jn.yylineno,loc:Vf,expected:Wf})}if(Ni[0]instanceof Array&&Ni.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Cn+", token: "+ua);switch(Ni[0]){case 1:we.push(ua),Fe.push(jn.yytext),gt.push(jn.yylloc),we.push(Ni[1]),ua=null,K1?(ua=K1,K1=null):(W1=jn.yyleng,vt=jn.yytext,qa=jn.yylineno,Vf=jn.yylloc,Y1>0&&Y1--);break;case 2:if(Co=this.productions_[Ni[1]][1],Jl.$=Fe[Fe.length-Co],Jl._$={first_line:gt[gt.length-(Co||1)].first_line,last_line:gt[gt.length-1].last_line,first_column:gt[gt.length-(Co||1)].first_column,last_column:gt[gt.length-1].last_column},j1&&(Jl._$.range=[gt[gt.length-(Co||1)].range[0],gt[gt.length-1].range[1]]),cp=this.performAction.apply(Jl,[vt,W1,qa,ca.yy,Ni[1],Fe,gt].concat(lp)),typeof cp<"u")return cp;Co&&(we=we.slice(0,-1*Co*2),Fe=Fe.slice(0,-1*Co),gt=gt.slice(0,-1*Co)),we.push(this.productions_[Ni[1]][0]),Fe.push(Jl.$),gt.push(Jl._$),Kb=gn[we[we.length-2]][we[we.length-1]],we.push(Kb);break;case 3:return!0}}return!0},"parse")},cl=function(){var wi={EOF:1,parseError:o(function(Ie,we){if(this.yy.parser)this.yy.parser.parseError(Ie,we);else throw new Error(Ie)},"parseError"),setInput:o(function(Ae,Ie){return this.yy=Ie||this.yy||{},this._input=Ae,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Ae=this._input[0];this.yytext+=Ae,this.yyleng++,this.offset++,this.match+=Ae,this.matched+=Ae;var Ie=Ae.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ae},"input"),unput:o(function(Ae){var Ie=Ae.length,we=Ae.split(/(?:\r\n?|\n)/g);this._input=Ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var Wt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),we.length-1&&(this.yylineno-=we.length-1);var Fe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:we?(we.length===Wt.length?this.yylloc.first_column:0)+Wt[Wt.length-we.length].length-we[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[Fe[0],Fe[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Ae){this.unput(this.match.slice(Ae))},"less"),pastInput:o(function(){var Ae=this.matched.substr(0,this.matched.length-this.match.length);return(Ae.length>20?"...":"")+Ae.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Ae=this.match;return Ae.length<20&&(Ae+=this._input.substr(0,20-Ae.length)),(Ae.substr(0,20)+(Ae.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Ae=this.pastInput(),Ie=new Array(Ae.length+1).join("-");return Ae+this.upcomingInput()+` +`+Ie+"^"},"showPosition"),test_match:o(function(Ae,Ie){var we,Wt,Fe;if(this.options.backtrack_lexer&&(Fe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Fe.yylloc.range=this.yylloc.range.slice(0))),Wt=Ae[0].match(/(?:\r\n?|\n).*/g),Wt&&(this.yylineno+=Wt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Wt?Wt[Wt.length-1].length-Wt[Wt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ae[0].length},this.yytext+=Ae[0],this.match+=Ae[0],this.matches=Ae,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ae[0].length),this.matched+=Ae[0],we=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),we)return we;if(this._backtrack){for(var gt in Fe)this[gt]=Fe[gt];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ae,Ie,we,Wt;this._more||(this.yytext="",this.match="");for(var Fe=this._currentRules(),gt=0;gtIe[0].length)){if(Ie=we,Wt=gt,this.options.backtrack_lexer){if(Ae=this.test_match(we,Fe[gt]),Ae!==!1)return Ae;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(Ae=this.test_match(Ie,Fe[Wt]),Ae!==!1?Ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ie=this.next();return Ie||this.lex()},"lex"),begin:o(function(Ie){this.conditionStack.push(Ie)},"begin"),popState:o(function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},"topState"),pushState:o(function(Ie){this.begin(Ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ie,we,Wt,Fe){var gt=Fe;switch(Wt){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),we.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let gn=/\n\s*/g;return we.yytext=we.yytext.replace(gn,"
        "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 94;case 17:this.popState();break;case 18:return 95;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 83;case 26:return 101;case 27:return 84;case 28:return 103;case 29:return 85;case 30:return 86;case 31:return 96;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 87;case 35:return Ie.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return Ie.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return Ie.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 97;case 41:return 97;case 42:return 97;case 43:return 97;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 120;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 104;case 60:return 110;case 61:return 46;case 62:return 60;case 63:return 44;case 64:return 8;case 65:return 105;case 66:return 114;case 67:return this.popState(),77;break;case 68:return this.pushState("edgeText"),75;break;case 69:return 118;case 70:return this.popState(),77;break;case 71:return this.pushState("thickEdgeText"),75;break;case 72:return 118;case 73:return this.popState(),77;break;case 74:return this.pushState("dottedEdgeText"),75;break;case 75:return 118;case 76:return 77;case 77:return this.popState(),53;break;case 78:return"TEXT";case 79:return this.pushState("ellipseText"),52;break;case 80:return this.popState(),55;break;case 81:return this.pushState("text"),54;break;case 82:return this.popState(),57;break;case 83:return this.pushState("text"),56;break;case 84:return 58;case 85:return this.pushState("text"),67;break;case 86:return this.popState(),64;break;case 87:return this.pushState("text"),63;break;case 88:return this.popState(),49;break;case 89:return this.pushState("text"),48;break;case 90:return this.popState(),69;break;case 91:return this.popState(),71;break;case 92:return 116;case 93:return this.pushState("trapText"),68;break;case 94:return this.pushState("trapText"),70;break;case 95:return 117;case 96:return 67;case 97:return 89;case 98:return"SEP";case 99:return 88;case 100:return 114;case 101:return 110;case 102:return 44;case 103:return 108;case 104:return 113;case 105:return 115;case 106:return this.popState(),62;break;case 107:return this.pushState("text"),62;break;case 108:return this.popState(),51;break;case 109:return this.pushState("text"),50;break;case 110:return this.popState(),31;break;case 111:return this.pushState("text"),29;break;case 112:return this.popState(),66;break;case 113:return this.pushState("text"),65;break;case 114:return"TEXT";case 115:return"QUOTE";case 116:return 9;case 117:return 10;case 118:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeData:{rules:[8,11,12,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackargs:{rules:[17,18,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackname:{rules:[14,15,16,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},href:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},click:{rules:[21,24,33,34,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dottedEdgeText:{rules:[21,24,73,75,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},thickEdgeText:{rules:[21,24,70,72,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},edgeText:{rules:[21,24,67,69,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},trapText:{rules:[21,24,76,79,81,83,87,89,90,91,92,93,94,107,109,111,113],inclusive:!1},ellipseText:{rules:[21,24,76,77,78,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},text:{rules:[21,24,76,79,80,81,82,83,86,87,88,89,93,94,106,107,108,109,110,111,112,113,114],inclusive:!1},vertex:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr:{rules:[3,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_title:{rules:[1,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},md_string:{rules:[19,20,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},string:{rules:[21,22,23,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,76,79,81,83,84,85,87,89,93,94,95,96,97,98,99,100,101,102,103,104,105,107,109,111,113,115,116,117,118],inclusive:!0}}};return wi}();Eo.lexer=cl;function Fn(){this.yy={}}return o(Fn,"Parser"),Fn.prototype=Eo,Eo.Parser=Fn,new Fn}();kR.parser=kR;Uit=kR});var $Ot,GOt,Wit,Yit=R(()=>{"use strict";ul();$Ot=o((e,t)=>{let r=ay,n=r(e,"r"),i=r(e,"g"),a=r(e,"b");return Xs(n,i,a,t)},"fade"),GOt=o(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span { + color: ${e.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${e.lineColor} !important; + stroke-width: 0; + stroke: ${e.lineColor}; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${$Ot(e.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + padding: 2px; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } +`,"getStyles"),Wit=GOt});var tk={};xr(tk,{diagram:()=>VOt});var VOt,ek=R(()=>{"use strict";Ue();dL();Vit();Hit();Yit();VOt={parser:Uit,db:ew,renderer:Git,styles:Wit,init:o(e=>{e.flowchart||(e.flowchart={}),e.layout&&W7({layout:e.layout}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,W7({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}}),ew.clear(),ew.setGen("gen-2")},"init")}});var ER,Qit,Zit=R(()=>{"use strict";ER=function(){var e=o(function(A,L,M,N){for(M=M||{},N=A.length;N--;M[A[N]]=L);return M},"o"),t=[6,8,10,20,22,24,26,27,28],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,14],l=[1,15],u=[1,21],h=[1,22],f=[1,23],d=[1,24],p=[1,25],m=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],g=[1,34],y=[27,28,46,47],v=[41,42,43,44,45],x=[17,34],b=[1,54],w=[1,53],S=[17,34,36,38],T={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:o(function(L,M,N,k,I,C,O){var D=C.length-1;switch(I){case 1:break;case 2:this.$=[];break;case 3:C[D-1].push(C[D]),this.$=C[D-1];break;case 4:case 5:this.$=C[D];break;case 6:case 7:this.$=[];break;case 8:k.addEntity(C[D-4]),k.addEntity(C[D-2]),k.addRelationship(C[D-4],C[D],C[D-2],C[D-3]);break;case 9:k.addEntity(C[D-3]),k.addAttributes(C[D-3],C[D-1]);break;case 10:k.addEntity(C[D-2]);break;case 11:k.addEntity(C[D]);break;case 12:k.addEntity(C[D-6],C[D-4]),k.addAttributes(C[D-6],C[D-1]);break;case 13:k.addEntity(C[D-5],C[D-3]);break;case 14:k.addEntity(C[D-3],C[D-1]);break;case 15:case 16:this.$=C[D].trim(),k.setAccTitle(this.$);break;case 17:case 18:this.$=C[D].trim(),k.setAccDescription(this.$);break;case 19:case 43:this.$=C[D];break;case 20:case 41:case 42:this.$=C[D].replace(/"/g,"");break;case 21:case 29:this.$=[C[D]];break;case 22:C[D].push(C[D-1]),this.$=C[D];break;case 23:this.$={attributeType:C[D-1],attributeName:C[D]};break;case 24:this.$={attributeType:C[D-2],attributeName:C[D-1],attributeKeyTypeList:C[D]};break;case 25:this.$={attributeType:C[D-2],attributeName:C[D-1],attributeComment:C[D]};break;case 26:this.$={attributeType:C[D-3],attributeName:C[D-2],attributeKeyTypeList:C[D-1],attributeComment:C[D]};break;case 27:case 28:case 31:this.$=C[D];break;case 30:C[D-2].push(C[D]),this.$=C[D-2];break;case 32:this.$=C[D].replace(/"/g,"");break;case 33:this.$={cardA:C[D],relType:C[D-1],cardB:C[D-2]};break;case 34:this.$=k.Cardinality.ZERO_OR_ONE;break;case 35:this.$=k.Cardinality.ZERO_OR_MORE;break;case 36:this.$=k.Cardinality.ONE_OR_MORE;break;case 37:this.$=k.Cardinality.ONLY_ONE;break;case 38:this.$=k.Cardinality.MD_PARENT;break;case 39:this.$=k.Identification.NON_IDENTIFYING;break;case 40:this.$=k.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:n,24:i,26:a,27:s,28:l},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:16,11:9,20:r,22:n,24:i,26:a,27:s,28:l},e(t,[2,5]),e(t,[2,6]),e(t,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:u,42:h,43:f,44:d,45:p}),{21:[1,26]},{23:[1,27]},{25:[1,28]},e(t,[2,18]),e(m,[2,19]),e(m,[2,20]),e(t,[2,4]),{11:29,27:s,28:l},{16:30,17:[1,31],29:32,30:33,34:g},{11:35,27:s,28:l},{40:36,46:[1,37],47:[1,38]},e(y,[2,34]),e(y,[2,35]),e(y,[2,36]),e(y,[2,37]),e(y,[2,38]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),{13:[1,39]},{17:[1,40]},e(t,[2,10]),{16:41,17:[2,21],29:32,30:33,34:g},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:u,42:h,43:f,44:d,45:p},e(v,[2,39]),e(v,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},e(t,[2,9]),{17:[2,22]},e(x,[2,23],{32:50,33:51,35:52,37:b,38:w}),e([17,34,37,38],[2,28]),e(t,[2,14],{15:[1,55]}),e([27,28],[2,33]),e(t,[2,8]),e(t,[2,41]),e(t,[2,42]),e(t,[2,43]),e(x,[2,24],{33:56,36:[1,57],38:w}),e(x,[2,25]),e(S,[2,29]),e(x,[2,32]),e(S,[2,31]),{16:58,17:[1,59],29:32,30:33,34:g},e(x,[2,26]),{35:60,37:b},{17:[1,61]},e(t,[2,13]),e(S,[2,30]),e(t,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:o(function(L,M){if(M.recoverable)this.trace(L);else{var N=new Error(L);throw N.hash=M,N}},"parseError"),parse:o(function(L){var M=this,N=[0],k=[],I=[null],C=[],O=this.table,D="",P=0,F=0,B=0,G=2,z=1,W=C.slice.call(arguments,1),Q=Object.create(this.lexer),j={yy:{}};for(var at in this.yy)Object.prototype.hasOwnProperty.call(this.yy,at)&&(j.yy[at]=this.yy[at]);Q.setInput(L,j.yy),j.yy.lexer=Q,j.yy.parser=this,typeof Q.yylloc>"u"&&(Q.yylloc={});var X=Q.yylloc;C.push(X);var J=Q.options&&Q.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(Pt){N.length=N.length-2*Pt,I.length=I.length-Pt,C.length=C.length-Pt}o(Z,"popStack");function H(){var Pt;return Pt=k.pop()||Q.lex()||z,typeof Pt!="number"&&(Pt instanceof Array&&(k=Pt,Pt=k.pop()),Pt=M.symbols_[Pt]||Pt),Pt}o(H,"lex");for(var q,K,ot,ct,ut,et,Mt={},it,wt,Ot,St;;){if(ot=N[N.length-1],this.defaultActions[ot]?ct=this.defaultActions[ot]:((q===null||typeof q>"u")&&(q=H()),ct=O[ot]&&O[ot][q]),typeof ct>"u"||!ct.length||!ct[0]){var Vt="";St=[];for(it in O[ot])this.terminals_[it]&&it>G&&St.push("'"+this.terminals_[it]+"'");Q.showPosition?Vt="Parse error on line "+(P+1)+`: +`+Q.showPosition()+` +Expecting `+St.join(", ")+", got '"+(this.terminals_[q]||q)+"'":Vt="Parse error on line "+(P+1)+": Unexpected "+(q==z?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(Vt,{text:Q.match,token:this.terminals_[q]||q,line:Q.yylineno,loc:X,expected:St})}if(ct[0]instanceof Array&&ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ot+", token: "+q);switch(ct[0]){case 1:N.push(q),I.push(Q.yytext),C.push(Q.yylloc),N.push(ct[1]),q=null,K?(q=K,K=null):(F=Q.yyleng,D=Q.yytext,P=Q.yylineno,X=Q.yylloc,B>0&&B--);break;case 2:if(wt=this.productions_[ct[1]][1],Mt.$=I[I.length-wt],Mt._$={first_line:C[C.length-(wt||1)].first_line,last_line:C[C.length-1].last_line,first_column:C[C.length-(wt||1)].first_column,last_column:C[C.length-1].last_column},J&&(Mt._$.range=[C[C.length-(wt||1)].range[0],C[C.length-1].range[1]]),et=this.performAction.apply(Mt,[D,F,P,j.yy,ct[1],I,C].concat(W)),typeof et<"u")return et;wt&&(N=N.slice(0,-1*wt*2),I=I.slice(0,-1*wt),C=C.slice(0,-1*wt)),N.push(this.productions_[ct[1]][0]),I.push(Mt.$),C.push(Mt._$),Ot=O[N[N.length-2]][N[N.length-1]],N.push(Ot);break;case 3:return!0}}return!0},"parse")},E=function(){var A={EOF:1,parseError:o(function(M,N){if(this.yy.parser)this.yy.parser.parseError(M,N);else throw new Error(M)},"parseError"),setInput:o(function(L,M){return this.yy=M||this.yy||{},this._input=L,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var L=this._input[0];this.yytext+=L,this.yyleng++,this.offset++,this.match+=L,this.matched+=L;var M=L.match(/(?:\r\n?|\n).*/g);return M?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),L},"input"),unput:o(function(L){var M=L.length,N=L.split(/(?:\r\n?|\n)/g);this._input=L+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-M),this.offset-=M;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),N.length-1&&(this.yylineno-=N.length-1);var I=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:N?(N.length===k.length?this.yylloc.first_column:0)+k[k.length-N.length].length-N[0].length:this.yylloc.first_column-M},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-M]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(L){this.unput(this.match.slice(L))},"less"),pastInput:o(function(){var L=this.matched.substr(0,this.matched.length-this.match.length);return(L.length>20?"...":"")+L.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var L=this.match;return L.length<20&&(L+=this._input.substr(0,20-L.length)),(L.substr(0,20)+(L.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var L=this.pastInput(),M=new Array(L.length+1).join("-");return L+this.upcomingInput()+` +`+M+"^"},"showPosition"),test_match:o(function(L,M){var N,k,I;if(this.options.backtrack_lexer&&(I={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(I.yylloc.range=this.yylloc.range.slice(0))),k=L[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+L[0].length},this.yytext+=L[0],this.match+=L[0],this.matches=L,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(L[0].length),this.matched+=L[0],N=this.performAction.call(this,this.yy,this,M,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var C in I)this[C]=I[C];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var L,M,N,k;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),C=0;CM[0].length)){if(M=N,k=C,this.options.backtrack_lexer){if(L=this.test_match(N,I[C]),L!==!1)return L;if(this._backtrack){M=!1;continue}else return!1}else if(!this.options.flex)break}return M?(L=this.test_match(M,I[k]),L!==!1?L:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var M=this.next();return M||this.lex()},"lex"),begin:o(function(M){this.conditionStack.push(M)},"begin"),popState:o(function(){var M=this.conditionStack.length-1;return M>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(M){return M=this.conditionStack.length-1-Math.abs(M||0),M>=0?this.conditionStack[M]:"INITIAL"},"topState"),pushState:o(function(M){this.begin(M)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(M,N,k,I){var C=I;switch(k){case 0:return this.begin("acc_title"),22;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),24;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;break;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;break;case 22:return N.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return N.yytext[0];case 55:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return A}();T.lexer=E;function _(){this.yy={}}return o(_,"Parser"),_.prototype=T,T.Parser=_,new _}();ER.parser=ER;Qit=ER});var Kd,CR,jOt,KOt,Jit,QOt,ZOt,JOt,tPt,ePt,tat,eat=R(()=>{"use strict";ce();Ue();Ci();Kd=new Map,CR=[],jOt={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},KOt={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},Jit=o(function(e,t=void 0){return Kd.has(e)?!Kd.get(e).alias&&t&&(Kd.get(e).alias=t,V.info(`Add alias '${t}' to entity '${e}'`)):(Kd.set(e,{attributes:[],alias:t}),V.info("Added new entity :",e)),Kd.get(e)},"addEntity"),QOt=o(()=>Kd,"getEntities"),ZOt=o(function(e,t){let r=Jit(e),n;for(n=t.length-1;n>=0;n--)r.attributes.push(t[n]),V.debug("Added attribute ",t[n].attributeName)},"addAttributes"),JOt=o(function(e,t,r,n){let i={entityA:e,roleA:t,entityB:r,relSpec:n};CR.push(i),V.debug("Added new relationship :",i)},"addRelationship"),tPt=o(()=>CR,"getRelationships"),ePt=o(function(){Kd=new Map,CR=[],Ar()},"clear"),tat={Cardinality:jOt,Identification:KOt,getConfig:o(()=>pt().er,"getConfig"),addEntity:Jit,addAttributes:ZOt,getEntities:QOt,addRelationship:JOt,getRelationships:tPt,clear:ePt,setAccTitle:Mr,getAccTitle:Br,setAccDescription:Fr,getAccDescription:zr,setDiagramTitle:cn,getDiagramTitle:Jr}});var Ol,rPt,Wo,rat=R(()=>{"use strict";Ol={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},rPt=o(function(e,t){let r;e.append("defs").append("marker").attr("id",Ol.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",Ol.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",Ol.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",Ol.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=e.append("defs").append("marker").attr("id",Ol.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",t.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=e.append("defs").append("marker").attr("id",Ol.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",t.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M21,0 L21,18"),e.append("defs").append("marker").attr("id",Ol.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",Ol.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=e.append("defs").append("marker").attr("id",Ol.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",t.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=e.append("defs").append("marker").attr("id",Ol.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",t.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",t.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"insertMarkers"),Wo={ERMarkers:Ol,insertMarkers:rPt}});var nat,iat=R(()=>{"use strict";nat=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function nPt(e){return typeof e=="string"&&nat.test(e)}var aat,sat=R(()=>{"use strict";iat();o(nPt,"validate");aat=nPt});function oat(e,t=0){return Ta[e[t+0]]+Ta[e[t+1]]+Ta[e[t+2]]+Ta[e[t+3]]+"-"+Ta[e[t+4]]+Ta[e[t+5]]+"-"+Ta[e[t+6]]+Ta[e[t+7]]+"-"+Ta[e[t+8]]+Ta[e[t+9]]+"-"+Ta[e[t+10]]+Ta[e[t+11]]+Ta[e[t+12]]+Ta[e[t+13]]+Ta[e[t+14]]+Ta[e[t+15]]}var Ta,lat=R(()=>{"use strict";Ta=[];for(let e=0;e<256;++e)Ta.push((e+256).toString(16).slice(1));o(oat,"unsafeStringify")});function iPt(e){if(!aat(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var cat,uat=R(()=>{"use strict";sat();o(iPt,"parse");cat=iPt});function aPt(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r{"use strict";lat();uat();o(aPt,"stringToBytes");sPt="6ba7b810-9dad-11d1-80b4-00c04fd430c8",oPt="6ba7b811-9dad-11d1-80b4-00c04fd430c8";o(SR,"v35")});function lPt(e,t,r,n){switch(e){case 0:return t&r^~t&n;case 1:return t^r^n;case 2:return t&r^t&n^r&n;case 3:return t^r^n}}function AR(e,t){return e<>>32-t}function cPt(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){let s=unescape(encodeURIComponent(e));e=[];for(let l=0;l>>0;p=d,d=f,f=AR(h,30)>>>0,h=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+h>>>0,r[2]=r[2]+f>>>0,r[3]=r[3]+d>>>0,r[4]=r[4]+p>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var fat,dat=R(()=>{"use strict";o(lPt,"f");o(AR,"ROTL");o(cPt,"sha1");fat=cPt});var uPt,_R,pat=R(()=>{"use strict";hat();dat();uPt=SR("v5",80,fat),_R=uPt});var mat=R(()=>{"use strict";pat()});function bPt(e="",t=""){let r=e.replace(hPt,"");return`${yat(t)}${yat(r)}${_R(e,xPt)}`}function yat(e=""){return e.length>0?`${e}-`:""}var hPt,zi,l2,fPt,dPt,pPt,mPt,vat,gPt,gat,yPt,vPt,xPt,xat,bat=R(()=>{"use strict";wa();ur();Xd();Ue();ce();_r();rat();Jn();hr();mat();hPt=/[^\dA-Za-z](\W)*/g,zi={},l2=new Map,fPt=o(function(e){let t=Object.keys(e);for(let r of t)zi[r]=e[r]},"setConf"),dPt=o((e,t,r)=>{let n=zi.entityPadding/3,i=zi.entityPadding/3,a=zi.fontSize*.85,s=t.node().getBBox(),l=[],u=!1,h=!1,f=0,d=0,p=0,m=0,g=s.height+n*2,y=1;r.forEach(w=>{w.attributeKeyTypeList!==void 0&&w.attributeKeyTypeList.length>0&&(u=!0),w.attributeComment!==void 0&&(h=!0)}),r.forEach(w=>{let S=`${t.node().id}-attr-${y}`,T=0,E=yh(w.attributeType),_=e.append("text").classed("er entityLabel",!0).attr("id",`${S}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",pt().fontFamily).style("font-size",a+"px").text(E),A=e.append("text").classed("er entityLabel",!0).attr("id",`${S}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",pt().fontFamily).style("font-size",a+"px").text(w.attributeName),L={};L.tn=_,L.nn=A;let M=_.node().getBBox(),N=A.node().getBBox();if(f=Math.max(f,M.width),d=Math.max(d,N.width),T=Math.max(M.height,N.height),u){let k=w.attributeKeyTypeList!==void 0?w.attributeKeyTypeList.join(","):"",I=e.append("text").classed("er entityLabel",!0).attr("id",`${S}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",pt().fontFamily).style("font-size",a+"px").text(k);L.kn=I;let C=I.node().getBBox();p=Math.max(p,C.width),T=Math.max(T,C.height)}if(h){let k=e.append("text").classed("er entityLabel",!0).attr("id",`${S}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",pt().fontFamily).style("font-size",a+"px").text(w.attributeComment||"");L.cn=k;let I=k.node().getBBox();m=Math.max(m,I.width),T=Math.max(T,I.height)}L.height=T,l.push(L),g+=T+n*2,y+=1});let v=4;u&&(v+=2),h&&(v+=2);let x=f+d+p+m,b={width:Math.max(zi.minEntityWidth,Math.max(s.width+zi.entityPadding*2,x+i*v)),height:r.length>0?g:Math.max(zi.minEntityHeight,s.height+zi.entityPadding*2)};if(r.length>0){let w=Math.max(0,(b.width-x-i*v)/(v/2));t.attr("transform","translate("+b.width/2+","+(n+s.height/2)+")");let S=s.height+n*2,T="attributeBoxOdd";l.forEach(E=>{let _=S+n+E.height/2;E.tn.attr("transform","translate("+i+","+_+")");let A=e.insert("rect","#"+E.tn.node().id).classed(`er ${T}`,!0).attr("x",0).attr("y",S).attr("width",f+i*2+w).attr("height",E.height+n*2),L=parseFloat(A.attr("x"))+parseFloat(A.attr("width"));E.nn.attr("transform","translate("+(L+i)+","+_+")");let M=e.insert("rect","#"+E.nn.node().id).classed(`er ${T}`,!0).attr("x",L).attr("y",S).attr("width",d+i*2+w).attr("height",E.height+n*2),N=parseFloat(M.attr("x"))+parseFloat(M.attr("width"));if(u){E.kn.attr("transform","translate("+(N+i)+","+_+")");let k=e.insert("rect","#"+E.kn.node().id).classed(`er ${T}`,!0).attr("x",N).attr("y",S).attr("width",p+i*2+w).attr("height",E.height+n*2);N=parseFloat(k.attr("x"))+parseFloat(k.attr("width"))}h&&(E.cn.attr("transform","translate("+(N+i)+","+_+")"),e.insert("rect","#"+E.cn.node().id).classed(`er ${T}`,"true").attr("x",N).attr("y",S).attr("width",m+i*2+w).attr("height",E.height+n*2)),S+=E.height+n*2,T=T==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else b.height=Math.max(zi.minEntityHeight,g),t.attr("transform","translate("+b.width/2+","+b.height/2+")");return b},"drawAttributes"),pPt=o(function(e,t,r){let n=[...t.keys()],i;return n.forEach(function(a){let s=bPt(a,"entity");l2.set(a,s);let l=e.append("g").attr("id",s);i=i===void 0?s:i;let u="text-"+s,h=l.append("text").classed("er entityLabel",!0).attr("id",u).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",pt().fontFamily).style("font-size",zi.fontSize+"px").text(t.get(a).alias??a),{width:f,height:d}=dPt(l,h,t.get(a).attributes),m=l.insert("rect","#"+u).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",f).attr("height",d).node().getBBox();r.setNode(s,{width:m.width,height:m.height,shape:"rect",id:s})}),i},"drawEntities"),mPt=o(function(e,t){t.nodes().forEach(function(r){r!==void 0&&t.node(r)!==void 0&&e.select("#"+r).attr("transform","translate("+(t.node(r).x-t.node(r).width/2)+","+(t.node(r).y-t.node(r).height/2)+" )")})},"adjustEntities"),vat=o(function(e){return(e.entityA+e.roleA+e.entityB).replace(/\s/g,"")},"getEdgeName"),gPt=o(function(e,t){return e.forEach(function(r){t.setEdge(l2.get(r.entityA),l2.get(r.entityB),{relationship:r},vat(r))}),e},"addRelationships"),gat=0,yPt=o(function(e,t,r,n,i){gat++;let a=r.edge(l2.get(t.entityA),l2.get(t.entityB),vat(t)),s=ma().x(function(y){return y.x}).y(function(y){return y.y}).curve(Ts),l=e.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",s(a.points)).style("stroke",zi.stroke).style("fill","none");t.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let u="";switch(zi.arrowMarkerAbsolute&&(u=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,u=u.replace(/\(/g,"\\("),u=u.replace(/\)/g,"\\)")),t.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_END+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_END+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_END+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_END+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.MD_PARENT_END+")");break}switch(t.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_START+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_START+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_START+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_START+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.MD_PARENT_START+")");break}let h=l.node().getTotalLength(),f=l.node().getPointAtLength(h*.5),d="rel"+gat,p=t.roleA.split(/
        /g),m=e.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",f.x).attr("y",f.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",pt().fontFamily).style("font-size",zi.fontSize+"px");if(p.length==1)m.text(t.roleA);else{let y=-(p.length-1)*.5;p.forEach((v,x)=>{m.append("tspan").attr("x",f.x).attr("dy",`${x===0?y:1}em`).text(v)})}let g=m.node().getBBox();e.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",f.x-g.width/2).attr("y",f.y-g.height/2).attr("width",g.width).attr("height",g.height)},"drawRelationshipFromLayout"),vPt=o(function(e,t,r,n){zi=pt().er,V.info("Drawing ER diagram");let i=pt().securityLevel,a;i==="sandbox"&&(a=Gt("#i"+t));let l=(i==="sandbox"?Gt(a.nodes()[0].contentDocument.body):Gt("body")).select(`[id='${t}']`);Wo.insertMarkers(l,zi);let u;u=new yr({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:zi.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let h=pPt(l,n.db.getEntities(),u),f=gPt(n.db.getRelationships(),u);co(u),mPt(l,u),f.forEach(function(y){yPt(l,y,u,h,n)});let d=zi.diagramPadding;Oe.insertTitle(l,"entityTitleText",zi.titleTopMargin,n.db.getDiagramTitle());let p=l.node().getBBox(),m=p.width+d*2,g=p.height+d*2;Pr(l,g,m,zi.useMaxWidth),l.attr("viewBox",`${p.x-d} ${p.y-d} ${m} ${g}`)},"draw"),xPt="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";o(bPt,"generateId");o(yat,"strWithHyphen");xat={setConf:fPt,draw:vPt}});var wPt,wat,Tat=R(()=>{"use strict";wPt=o(e=>` + .entityBox { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${e.attributeBackgroundColorOdd}; + stroke: ${e.nodeBorder}; + } + + .attributeBoxEven { + fill: ${e.attributeBackgroundColorEven}; + stroke: ${e.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${e.tertiaryColor}; + opacity: 0.7; + background-color: ${e.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${e.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; + } + +`,"getStyles"),wat=wPt});var kat={};xr(kat,{diagram:()=>TPt});var TPt,Eat=R(()=>{"use strict";Zit();eat();bat();Tat();TPt={parser:Qit,db:tat,renderer:xat,styles:wat}});function ri(e){return typeof e=="object"&&e!==null&&typeof e.$type=="string"}function ka(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"}function LR(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.type=="string"&&typeof e.path=="string"}function Zd(e){return typeof e=="object"&&e!==null&&ri(e.container)&&ka(e.reference)&&typeof e.message=="string"}function uo(e){return typeof e=="object"&&e!==null&&Array.isArray(e.content)}function sf(e){return typeof e=="object"&&e!==null&&typeof e.tokenType=="object"}function c2(e){return uo(e)&&typeof e.fullText=="string"}var Qd,Yo=R(()=>{"use strict";o(ri,"isAstNode");o(ka,"isReference");o(LR,"isAstNodeDescription");o(Zd,"isLinkingError");Qd=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(t,r){return ri(t)&&this.isSubtype(t.$type,r)}isSubtype(t,r){if(t===r)return!0;let n=this.subtypes[t];n||(n=this.subtypes[t]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(t,r);return n[r]=a,a}}getAllSubTypes(t){let r=this.allSubtypes[t];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,t)&&i.push(a);return this.allSubtypes[t]=i,i}}};o(uo,"isCompositeCstNode");o(sf,"isLeafCstNode");o(c2,"isRootCstNode")});function SPt(e){return typeof e=="string"?e:typeof e>"u"?"undefined":typeof e.toString=="function"?e.toString():Object.prototype.toString.call(e)}function rk(e){return!!e&&typeof e[Symbol.iterator]=="function"}function en(...e){if(e.length===1){let t=e[0];if(t instanceof ho)return t;if(rk(t))return new ho(()=>t[Symbol.iterator](),r=>r.next());if(typeof t.length=="number")return new ho(()=>({index:0}),r=>r.index1?new ho(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let r=t.iterator.next();if(!r.done)return r;t.iterator=void 0}if(t.array){if(t.arrIndex{"use strict";ho=class e{static{o(this,"StreamImpl")}constructor(t,r){this.startFn=t,this.nextFn=r}iterator(){let t={state:this.startFn(),next:o(()=>this.nextFn(t.state),"next"),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)r++,n=t.next();return r}toArray(){let t=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&t.push(n.value);while(!n.done);return t}toSet(){return new Set(this)}toMap(t,r){let n=this.map(i=>[t?t(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(t){let r=t[Symbol.iterator]();return new e(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=r.next(),!i.done)return i;while(!i.done);return ns})}join(t=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=t),n+=SPt(i.value)),a=!0;while(!i.done);return n}indexOf(t,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===t)return i;a=n.next(),i++}return-1}every(t){let r=this.iterator(),n=r.next();for(;!n.done;){if(!t(n.value))return!1;n=r.next()}return!0}some(t){let r=this.iterator(),n=r.next();for(;!n.done;){if(t(n.value))return!0;n=r.next()}return!1}forEach(t){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)t(i.value,n),i=r.next(),n++}map(t){return new e(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?ns:{done:!1,value:t(i)}})}filter(t){return new e(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&t(n.value))return n;while(!n.done);return ns})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=t(i,a.value),a=n.next();return i}reduceRight(t,r){return this.recursiveReduce(this.iterator(),t,r)}recursiveReduce(t,r,n){let i=t.next();if(i.done)return n;let a=this.recursiveReduce(t,r,n);return a===void 0?i.value:r(a,i.value)}find(t){let r=this.iterator(),n=r.next();for(;!n.done;){if(t(n.value))return n.value;n=r.next()}}findIndex(t){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(t(i.value))return n;i=r.next(),n++}return-1}includes(t){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===t)return!0;n=r.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=t(i);if(rk(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return ns})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let r=t>1?this.flat(t-1):this;return new e(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(rk(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return ns})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(t=1){return new e(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>t?ns:this.nextFn(r.state)))}distinct(t){let r=new Set;return this.filter(n=>{let i=t?t(n):n;return r.has(i)?!1:(r.add(i),!0)})}exclude(t,r){let n=new Set;for(let i of t){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(SPt,"toString");o(rk,"isIterable");u2=new ho(()=>{},()=>ns),ns=Object.freeze({done:!0,value:void 0});o(en,"stream");Ic=class extends ho{static{o(this,"TreeStreamImpl")}constructor(t,r,n){super(()=>({iterators:n?.includeRoot?[[t][Symbol.iterator]()]:[r(t)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return ns})}iterator(){let t={state:this.startFn(),next:o(()=>this.nextFn(t.state),"next"),prune:o(()=>{t.state.pruned=!0},"prune"),[Symbol.iterator]:()=>t};return t}};(function(e){function t(a){return a.reduce((s,l)=>s+l,0)}o(t,"sum"),e.sum=t;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),e.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),e.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),e.max=i})(Jm||(Jm={}))});var ik={};xr(ik,{DefaultNameRegexp:()=>nk,RangeComparison:()=>Fu,compareRange:()=>_at,findCommentNode:()=>MR,findDeclarationNodeAtOffset:()=>_Pt,findLeafNodeAtOffset:()=>IR,findLeafNodeBeforeOffset:()=>Lat,flattenCst:()=>APt,getInteriorNodes:()=>RPt,getNextNode:()=>LPt,getPreviousNode:()=>Rat,getStartlineNode:()=>DPt,inRange:()=>NR,isChildNode:()=>RR,isCommentNode:()=>DR,streamCst:()=>Jd,toDocumentSegment:()=>t0,tokenToRange:()=>tg});function Jd(e){return new Ic(e,t=>uo(t)?t.content:[],{includeRoot:!0})}function APt(e){return Jd(e).filter(sf)}function RR(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function tg(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function t0(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}function _at(e,t){if(e.end.linet.end.line||e.start.line===t.end.line&&e.start.character>t.end.character)return Fu.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.lineFu.After}function _Pt(e,t,r=nk){if(e){if(t>0){let n=t-e.offset,i=e.text.charAt(n);r.test(i)||t--}return IR(e,t)}}function MR(e,t){if(e){let r=Rat(e,!0);if(r&&DR(r,t))return r;if(c2(e)){let n=e.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=e.content[i];if(DR(a,t))return a}}}}function DR(e,t){return sf(e)&&t.includes(e.tokenType.name)}function IR(e,t){if(sf(e))return e;if(uo(e)){let r=Dat(e,t,!1);if(r)return IR(r,t)}}function Lat(e,t){if(sf(e))return e;if(uo(e)){let r=Dat(e,t,!0);if(r)return Lat(r,t)}}function Dat(e,t,r){let n=0,i=e.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=e.content[s];if(l.offset<=t&&l.end>t)return l;l.end<=t?(a=r?l:void 0,n=s+1):i=s-1}return a}function Rat(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let i=r.content[n];if(t||!i.hidden)return i}e=r}}function LPt(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e),i=r.content.length-1;for(;n{"use strict";Yo();Ps();o(Jd,"streamCst");o(APt,"flattenCst");o(RR,"isChildNode");o(tg,"tokenToRange");o(t0,"toDocumentSegment");(function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside"})(Fu||(Fu={}));o(_at,"compareRange");o(NR,"inRange");nk=/^[\w\p{L}]$/u;o(_Pt,"findDeclarationNodeAtOffset");o(MR,"findCommentNode");o(DR,"isCommentNode");o(IR,"findLeafNodeAtOffset");o(Lat,"findLeafNodeBeforeOffset");o(Dat,"binarySearch");o(Rat,"getPreviousNode");o(LPt,"getNextNode");o(DPt,"getStartlineNode");o(RPt,"getInteriorNodes");o(NPt,"getCommonParent");o(Aat,"getParentChain")});function of(e){throw new Error("Error! The input value was not handled.")}var e0,ak=R(()=>{"use strict";e0=class extends Error{static{o(this,"ErrorWithLocation")}constructor(t,r){super(t?`${r} at ${t.range.start.line}:${t.range.start.character}`:r)}};o(of,"assertUnreachable")});var m2={};xr(m2,{AbstractElement:()=>PR,AbstractRule:()=>h2,AbstractType:()=>f2,Action:()=>uN,Alternatives:()=>hN,ArrayLiteral:()=>BR,ArrayType:()=>FR,Assignment:()=>fN,BooleanLiteral:()=>$R,CharacterRange:()=>dN,Condition:()=>sk,Conjunction:()=>VR,CrossReference:()=>mN,Disjunction:()=>HR,EndOfFile:()=>gN,Grammar:()=>YR,GrammarImport:()=>Mat,Group:()=>vN,InferredType:()=>qR,Interface:()=>XR,Keyword:()=>xN,LangiumGrammarAstReflection:()=>eg,LangiumGrammarTerminals:()=>MPt,NamedArgument:()=>Iat,NegatedToken:()=>bN,Negation:()=>jR,NumberLiteral:()=>QR,Parameter:()=>ZR,ParameterReference:()=>JR,ParserRule:()=>eN,ReferenceType:()=>rN,RegexToken:()=>TN,ReturnType:()=>Oat,RuleCall:()=>EN,SimpleType:()=>aN,StringLiteral:()=>sN,TerminalAlternatives:()=>CN,TerminalGroup:()=>AN,TerminalRule:()=>lk,TerminalRuleCall:()=>LN,Type:()=>oN,TypeAttribute:()=>Pat,TypeDefinition:()=>OR,UnionType:()=>lN,UnorderedGroup:()=>DN,UntilToken:()=>RN,ValueLiteral:()=>ok,Wildcard:()=>MN,isAbstractElement:()=>d2,isAbstractRule:()=>IPt,isAbstractType:()=>OPt,isAction:()=>zu,isAlternatives:()=>fk,isArrayLiteral:()=>$Pt,isArrayType:()=>zR,isAssignment:()=>Bl,isBooleanLiteral:()=>GR,isCharacterRange:()=>pN,isCondition:()=>PPt,isConjunction:()=>UR,isCrossReference:()=>r0,isDisjunction:()=>WR,isEndOfFile:()=>yN,isFeatureName:()=>BPt,isGrammar:()=>GPt,isGrammarImport:()=>VPt,isGroup:()=>lf,isInferredType:()=>ck,isInterface:()=>uk,isKeyword:()=>Xo,isNamedArgument:()=>UPt,isNegatedToken:()=>wN,isNegation:()=>KR,isNumberLiteral:()=>HPt,isParameter:()=>WPt,isParameterReference:()=>tN,isParserRule:()=>$a,isPrimitiveType:()=>Nat,isReferenceType:()=>nN,isRegexToken:()=>kN,isReturnType:()=>iN,isRuleCall:()=>Fl,isSimpleType:()=>hk,isStringLiteral:()=>YPt,isTerminalAlternatives:()=>SN,isTerminalGroup:()=>_N,isTerminalRule:()=>qo,isTerminalRuleCall:()=>dk,isType:()=>p2,isTypeAttribute:()=>qPt,isTypeDefinition:()=>FPt,isUnionType:()=>cN,isUnorderedGroup:()=>pk,isUntilToken:()=>NN,isValueLiteral:()=>zPt,isWildcard:()=>IN,reflection:()=>lr});function IPt(e){return lr.isInstance(e,h2)}function OPt(e){return lr.isInstance(e,f2)}function PPt(e){return lr.isInstance(e,sk)}function BPt(e){return Nat(e)||e==="current"||e==="entry"||e==="extends"||e==="false"||e==="fragment"||e==="grammar"||e==="hidden"||e==="import"||e==="interface"||e==="returns"||e==="terminal"||e==="true"||e==="type"||e==="infer"||e==="infers"||e==="with"||typeof e=="string"&&/\^?[_a-zA-Z][\w_]*/.test(e)}function Nat(e){return e==="string"||e==="number"||e==="boolean"||e==="Date"||e==="bigint"}function FPt(e){return lr.isInstance(e,OR)}function zPt(e){return lr.isInstance(e,ok)}function d2(e){return lr.isInstance(e,PR)}function $Pt(e){return lr.isInstance(e,BR)}function zR(e){return lr.isInstance(e,FR)}function GR(e){return lr.isInstance(e,$R)}function UR(e){return lr.isInstance(e,VR)}function WR(e){return lr.isInstance(e,HR)}function GPt(e){return lr.isInstance(e,YR)}function VPt(e){return lr.isInstance(e,Mat)}function ck(e){return lr.isInstance(e,qR)}function uk(e){return lr.isInstance(e,XR)}function UPt(e){return lr.isInstance(e,Iat)}function KR(e){return lr.isInstance(e,jR)}function HPt(e){return lr.isInstance(e,QR)}function WPt(e){return lr.isInstance(e,ZR)}function tN(e){return lr.isInstance(e,JR)}function $a(e){return lr.isInstance(e,eN)}function nN(e){return lr.isInstance(e,rN)}function iN(e){return lr.isInstance(e,Oat)}function hk(e){return lr.isInstance(e,aN)}function YPt(e){return lr.isInstance(e,sN)}function qo(e){return lr.isInstance(e,lk)}function p2(e){return lr.isInstance(e,oN)}function qPt(e){return lr.isInstance(e,Pat)}function cN(e){return lr.isInstance(e,lN)}function zu(e){return lr.isInstance(e,uN)}function fk(e){return lr.isInstance(e,hN)}function Bl(e){return lr.isInstance(e,fN)}function pN(e){return lr.isInstance(e,dN)}function r0(e){return lr.isInstance(e,mN)}function yN(e){return lr.isInstance(e,gN)}function lf(e){return lr.isInstance(e,vN)}function Xo(e){return lr.isInstance(e,xN)}function wN(e){return lr.isInstance(e,bN)}function kN(e){return lr.isInstance(e,TN)}function Fl(e){return lr.isInstance(e,EN)}function SN(e){return lr.isInstance(e,CN)}function _N(e){return lr.isInstance(e,AN)}function dk(e){return lr.isInstance(e,LN)}function pk(e){return lr.isInstance(e,DN)}function NN(e){return lr.isInstance(e,RN)}function IN(e){return lr.isInstance(e,MN)}var MPt,h2,f2,sk,OR,ok,PR,BR,FR,$R,VR,HR,YR,Mat,qR,XR,Iat,jR,QR,ZR,JR,eN,rN,Oat,aN,sN,lk,oN,Pat,lN,uN,hN,fN,dN,mN,gN,vN,xN,bN,TN,EN,CN,AN,LN,DN,RN,MN,eg,lr,Oc=R(()=>{"use strict";Yo();MPt={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},h2="AbstractRule";o(IPt,"isAbstractRule");f2="AbstractType";o(OPt,"isAbstractType");sk="Condition";o(PPt,"isCondition");o(BPt,"isFeatureName");o(Nat,"isPrimitiveType");OR="TypeDefinition";o(FPt,"isTypeDefinition");ok="ValueLiteral";o(zPt,"isValueLiteral");PR="AbstractElement";o(d2,"isAbstractElement");BR="ArrayLiteral";o($Pt,"isArrayLiteral");FR="ArrayType";o(zR,"isArrayType");$R="BooleanLiteral";o(GR,"isBooleanLiteral");VR="Conjunction";o(UR,"isConjunction");HR="Disjunction";o(WR,"isDisjunction");YR="Grammar";o(GPt,"isGrammar");Mat="GrammarImport";o(VPt,"isGrammarImport");qR="InferredType";o(ck,"isInferredType");XR="Interface";o(uk,"isInterface");Iat="NamedArgument";o(UPt,"isNamedArgument");jR="Negation";o(KR,"isNegation");QR="NumberLiteral";o(HPt,"isNumberLiteral");ZR="Parameter";o(WPt,"isParameter");JR="ParameterReference";o(tN,"isParameterReference");eN="ParserRule";o($a,"isParserRule");rN="ReferenceType";o(nN,"isReferenceType");Oat="ReturnType";o(iN,"isReturnType");aN="SimpleType";o(hk,"isSimpleType");sN="StringLiteral";o(YPt,"isStringLiteral");lk="TerminalRule";o(qo,"isTerminalRule");oN="Type";o(p2,"isType");Pat="TypeAttribute";o(qPt,"isTypeAttribute");lN="UnionType";o(cN,"isUnionType");uN="Action";o(zu,"isAction");hN="Alternatives";o(fk,"isAlternatives");fN="Assignment";o(Bl,"isAssignment");dN="CharacterRange";o(pN,"isCharacterRange");mN="CrossReference";o(r0,"isCrossReference");gN="EndOfFile";o(yN,"isEndOfFile");vN="Group";o(lf,"isGroup");xN="Keyword";o(Xo,"isKeyword");bN="NegatedToken";o(wN,"isNegatedToken");TN="RegexToken";o(kN,"isRegexToken");EN="RuleCall";o(Fl,"isRuleCall");CN="TerminalAlternatives";o(SN,"isTerminalAlternatives");AN="TerminalGroup";o(_N,"isTerminalGroup");LN="TerminalRuleCall";o(dk,"isTerminalRuleCall");DN="UnorderedGroup";o(pk,"isUnorderedGroup");RN="UntilToken";o(NN,"isUntilToken");MN="Wildcard";o(IN,"isWildcard");eg=class extends Qd{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(t,r){switch(t){case uN:case hN:case fN:case dN:case mN:case gN:case vN:case xN:case bN:case TN:case EN:case CN:case AN:case LN:case DN:case RN:case MN:return this.isSubtype(PR,r);case BR:case QR:case sN:return this.isSubtype(ok,r);case FR:case rN:case aN:case lN:return this.isSubtype(OR,r);case $R:return this.isSubtype(sk,r)||this.isSubtype(ok,r);case VR:case HR:case jR:case JR:return this.isSubtype(sk,r);case qR:case XR:case oN:return this.isSubtype(f2,r);case eN:return this.isSubtype(h2,r)||this.isSubtype(f2,r);case lk:return this.isSubtype(h2,r);default:return!1}}getReferenceType(t){let r=`${t.container.$type}:${t.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return f2;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return h2;case"Grammar:usedGrammars":return YR;case"NamedArgument:parameter":case"ParameterReference:parameter":return ZR;case"TerminalRuleCall:rule":return lk;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:t,properties:[]}}}},lr=new eg});var gk={};xr(gk,{assignMandatoryProperties:()=>BN,copyAstNode:()=>PN,findLocalReferences:()=>jPt,findRootNode:()=>Bat,getContainerOfType:()=>n0,getDocument:()=>$i,hasContainerOfType:()=>XPt,linkContentToContainer:()=>mk,streamAllContents:()=>Pc,streamAst:()=>jo,streamContents:()=>g2,streamReferences:()=>rg});function mk(e){for(let[t,r]of Object.entries(e))t.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{ri(n)&&(n.$container=e,n.$containerProperty=t,n.$containerIndex=i)}):ri(r)&&(r.$container=e,r.$containerProperty=t))}function n0(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function XPt(e,t){let r=e;for(;r;){if(t(r))return!0;r=r.$container}return!1}function $i(e){let r=Bat(e).$document;if(!r)throw new Error("AST node has no document.");return r}function Bat(e){for(;e.$container;)e=e.$container;return e}function g2(e,t){if(!e)throw new Error("Node must be an AstNode.");let r=t?.range;return new ho(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexg2(r,t))}function jo(e,t){if(e){if(t?.range&&!ON(e,t.range))return new Ic(e,()=>[])}else throw new Error("Root node must be an AstNode.");return new Ic(e,r=>g2(r,t),{includeRoot:!0})}function ON(e,t){var r;if(!t)return!0;let n=(r=e.$cstNode)===null||r===void 0?void 0:r.range;return n?NR(n,t):!1}function rg(e){return new ho(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex{rg(n).forEach(i=>{i.reference.ref===e&&r.push(i.reference)})}),en(r)}function BN(e,t){let r=e.getTypeMetaData(t.$type),n=t;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Fat(i.defaultValue))}function Fat(e){return Array.isArray(e)?[...e.map(Fat)]:e}function PN(e,t){let r={$type:e.$type};for(let[n,i]of Object.entries(e))if(!n.startsWith("$"))if(ri(i))r[n]=PN(i,t);else if(ka(i))r[n]=t(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)ri(s)?a.push(PN(s,t)):ka(s)?a.push(t(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return mk(r),r}var is=R(()=>{"use strict";Yo();Ps();Pl();o(mk,"linkContentToContainer");o(n0,"getContainerOfType");o(XPt,"hasContainerOfType");o($i,"getDocument");o(Bat,"findRootNode");o(g2,"streamContents");o(Pc,"streamAllContents");o(jo,"streamAst");o(ON,"isAstNodeInRange");o(rg,"streamReferences");o(jPt,"findLocalReferences");o(BN,"assignMandatoryProperties");o(Fat,"copyDefaultValue");o(PN,"copyAstNode")});function ar(e){return e.charCodeAt(0)}function yk(e,t){Array.isArray(e)?e.forEach(function(r){t.push(r)}):t.push(e)}function ng(e,t){if(e[t]===!0)throw"duplicate flag "+t;let r=e[t];e[t]=!0}function i0(e){if(e===void 0)throw Error("Internal Error - Should never get here!");return!0}function y2(){throw Error("Internal Error - Should never get here!")}function FN(e){return e.type==="Character"}var zN=R(()=>{"use strict";o(ar,"cc");o(yk,"insertToSet");o(ng,"addFlag");o(i0,"ASSERT_EXISTS");o(y2,"ASSERT_NEVER_REACH_HERE");o(FN,"isCharacter")});var v2,x2,$N,zat=R(()=>{"use strict";zN();v2=[];for(let e=ar("0");e<=ar("9");e++)v2.push(e);x2=[ar("_")].concat(v2);for(let e=ar("a");e<=ar("z");e++)x2.push(e);for(let e=ar("A");e<=ar("Z");e++)x2.push(e);$N=[ar(" "),ar("\f"),ar(` +`),ar("\r"),ar(" "),ar("\v"),ar(" "),ar("\xA0"),ar("\u1680"),ar("\u2000"),ar("\u2001"),ar("\u2002"),ar("\u2003"),ar("\u2004"),ar("\u2005"),ar("\u2006"),ar("\u2007"),ar("\u2008"),ar("\u2009"),ar("\u200A"),ar("\u2028"),ar("\u2029"),ar("\u202F"),ar("\u205F"),ar("\u3000"),ar("\uFEFF")]});var KPt,vk,QPt,a0,$at=R(()=>{"use strict";zN();zat();KPt=/[0-9a-fA-F]/,vk=/[0-9]/,QPt=/[1-9]/,a0=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(t){this.idx=t.idx,this.input=t.input,this.groupIdx=t.groupIdx}pattern(t){this.idx=0,this.input=t,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:t.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":ng(n,"global");break;case"i":ng(n,"ignoreCase");break;case"m":ng(n,"multiLine");break;case"u":ng(n,"unicode");break;case"y":ng(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let t=[],r=this.idx;for(t.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),t.push(this.alternative());return{type:"Disjunction",value:t,loc:this.loc(r)}}alternative(){let t=[],r=this.idx;for(;this.isTerm();)t.push(this.term());return{type:"Alternative",value:t,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let t=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(t)};case"$":return{type:"EndAnchor",loc:this.loc(t)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(t)};case"B":return{type:"NonWordBoundary",loc:this.loc(t)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}i0(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(t)}}return y2()}quantifier(t=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(t===!0&&r===void 0)return;i0(r);break}if(!(t===!0&&r===void 0)&&i0(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let t,r=this.idx;switch(this.peekChar()){case".":t=this.dotAll();break;case"\\":t=this.atomEscape();break;case"[":t=this.characterClass();break;case"(":t=this.group();break}return t===void 0&&this.isPatternCharacter()&&(t=this.patternCharacter()),i0(t)?(t.loc=this.loc(r),this.isQuantifier()&&(t.quantifier=this.quantifier()),t):y2()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[ar(` +`),ar("\r"),ar("\u2028"),ar("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let t,r=!1;switch(this.popChar()){case"d":t=v2;break;case"D":t=v2,r=!0;break;case"s":t=$N;break;case"S":t=$N,r=!0;break;case"w":t=x2;break;case"W":t=x2,r=!0;break}return i0(t)?{type:"Set",value:t,complement:r}:y2()}controlEscapeAtom(){let t;switch(this.popChar()){case"f":t=ar("\f");break;case"n":t=ar(` +`);break;case"r":t=ar("\r");break;case"t":t=ar(" ");break;case"v":t=ar("\v");break}return i0(t)?{type:"Character",value:t}:y2()}controlLetterEscapeAtom(){this.consumeChar("c");let t=this.popChar();if(/[a-zA-Z]/.test(t)===!1)throw Error("Invalid ");return{type:"Character",value:t.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:ar("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let t=this.popChar();return{type:"Character",value:ar(t)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let t=this.popChar();return{type:"Character",value:ar(t)}}}characterClass(){let t=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(FN(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(FN(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(t){return{begin:t,end:this.idx}}}});var Bc,Gat=R(()=>{"use strict";Bc=class{static{o(this,"BaseRegExpVisitor")}visitChildren(t){for(let r in t){let n=t[r];t.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(t){switch(t.type){case"Pattern":this.visitPattern(t);break;case"Flags":this.visitFlags(t);break;case"Disjunction":this.visitDisjunction(t);break;case"Alternative":this.visitAlternative(t);break;case"StartAnchor":this.visitStartAnchor(t);break;case"EndAnchor":this.visitEndAnchor(t);break;case"WordBoundary":this.visitWordBoundary(t);break;case"NonWordBoundary":this.visitNonWordBoundary(t);break;case"Lookahead":this.visitLookahead(t);break;case"NegativeLookahead":this.visitNegativeLookahead(t);break;case"Character":this.visitCharacter(t);break;case"Set":this.visitSet(t);break;case"Group":this.visitGroup(t);break;case"GroupBackReference":this.visitGroupBackReference(t);break;case"Quantifier":this.visitQuantifier(t);break}this.visitChildren(t)}visitPattern(t){}visitFlags(t){}visitDisjunction(t){}visitAlternative(t){}visitStartAnchor(t){}visitEndAnchor(t){}visitWordBoundary(t){}visitNonWordBoundary(t){}visitLookahead(t){}visitNegativeLookahead(t){}visitCharacter(t){}visitSet(t){}visitGroup(t){}visitGroupBackReference(t){}visitQuantifier(t){}}});var b2=R(()=>{"use strict";$at();Gat()});var bk={};xr(bk,{NEWLINE_REGEXP:()=>VN,escapeRegExp:()=>o0,getCaseInsensitivePattern:()=>HN,getTerminalParts:()=>ZPt,isMultilineComment:()=>UN,isWhitespace:()=>xk,partialMatches:()=>WN,partialRegExp:()=>Uat});function ZPt(e){try{typeof e!="string"&&(e=e.source),e=`/${e}/`;let t=Vat.pattern(e),r=[];for(let n of t.value.value)s0.reset(e),s0.visit(n),r.push({start:s0.startRegexp,end:s0.endRegex});return r}catch{return[]}}function UN(e){try{return typeof e=="string"&&(e=new RegExp(e)),e=e.toString(),s0.reset(e),s0.visit(Vat.pattern(e)),s0.multiline}catch{return!1}}function xk(e){return(typeof e=="string"?new RegExp(e):e).test(" ")}function o0(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function HN(e){return Array.prototype.map.call(e,t=>/\w/.test(t)?`[${t.toLowerCase()}${t.toUpperCase()}]`:o0(t)).join("")}function WN(e,t){let r=Uat(e),n=t.match(r);return!!n&&n[0].length>0}function Uat(e){typeof e=="string"&&(e=new RegExp(e));let t=e,r=e.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),e.flags)}var VN,Vat,GN,s0,ig=R(()=>{"use strict";b2();VN=/\r?\n/gm,Vat=new a0,GN=class extends Bc{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(t){this.multiline=!1,this.regex=t,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(t){t.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(t){let r=String.fromCharCode(t.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=o0(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(t){if(!this.multiline){let r=this.regex.substring(t.loc.begin,t.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(t.loc.begin,t.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(t){t.type==="Group"&&t.quantifier||super.visitChildren(t)}},s0=new GN;o(ZPt,"getTerminalParts");o(UN,"isMultilineComment");o(xk,"isWhitespace");o(o0,"escapeRegExp");o(HN,"getCaseInsensitivePattern");o(WN,"partialMatches");o(Uat,"partialRegExp")});var Tk={};xr(Tk,{findAssignment:()=>tM,findNameAssignment:()=>wk,findNodeForKeyword:()=>ZN,findNodeForProperty:()=>T2,findNodesForKeyword:()=>JPt,findNodesForKeywordInternal:()=>JN,findNodesForProperty:()=>KN,getActionAtElement:()=>Xat,getActionType:()=>Kat,getAllReachableRules:()=>w2,getCrossReferenceTerminal:()=>XN,getEntryRule:()=>Hat,getExplicitRuleType:()=>eM,getHiddenRules:()=>Wat,getRuleType:()=>rM,getTypeName:()=>l0,isArrayCardinality:()=>eBt,isArrayOperator:()=>rBt,isCommentTerminal:()=>jN,isDataType:()=>nBt,isDataTypeRule:()=>k2,isOptionalCardinality:()=>tBt,terminalRegex:()=>ag});function Hat(e){return e.rules.find(t=>$a(t)&&t.entry)}function Wat(e){return e.rules.filter(t=>qo(t)&&t.hidden)}function w2(e,t){let r=new Set,n=Hat(e);if(!n)return new Set(e.rules);let i=[n].concat(Wat(e));for(let s of i)Yat(s,r,t);let a=new Set;for(let s of e.rules)(r.has(s.name)||qo(s)&&s.hidden)&&a.add(s);return a}function Yat(e,t,r){t.add(e.name),Pc(e).forEach(n=>{if(Fl(n)||r&&dk(n)){let i=n.rule.ref;i&&!t.has(i.name)&&Yat(i,t,r)}})}function XN(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=wk(e.type.ref);return t?.terminal}}function jN(e){return e.hidden&&!ag(e).test(" ")}function KN(e,t){return!e||!t?[]:QN(e,t,e.astNode,!0)}function T2(e,t,r){if(!e||!t)return;let n=QN(e,t,e.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function QN(e,t,r,n){if(!n){let i=n0(e.grammarSource,Bl);if(i&&i.feature===t)return[e]}return uo(e)&&e.astNode===r?e.content.flatMap(i=>QN(i,t,r,!1)):[]}function JPt(e,t){return e?JN(e,t,e?.astNode):[]}function ZN(e,t,r){if(!e)return;let n=JN(e,t,e?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function JN(e,t,r){if(e.astNode!==r)return[];if(Xo(e.grammarSource)&&e.grammarSource.value===t)return[e];let n=Jd(e).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Xo(s.grammarSource)&&s.grammarSource.value===t&&a.push(s):n.prune()}while(!i.done);return a}function tM(e){var t;let r=e.astNode;for(;r===((t=e.container)===null||t===void 0?void 0:t.astNode);){let n=n0(e.grammarSource,Bl);if(n)return n;e=e.container}}function wk(e){let t=e;return ck(t)&&(zu(t.$container)?t=t.$container.$container:$a(t.$container)?t=t.$container:of(t.$container)),qat(e,t,new Map)}function qat(e,t,r){var n;function i(a,s){let l;return n0(a,Bl)||(l=qat(s,s,r)),r.set(e,l),l}if(o(i,"go"),r.has(e))return r.get(e);r.set(e,void 0);for(let a of Pc(t)){if(Bl(a)&&a.feature.toLowerCase()==="name")return r.set(e,a),a;if(Fl(a)&&$a(a.rule.ref))return i(a,a.rule.ref);if(hk(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Xat(e){let t=e.$container;if(lf(t)){let r=t.elements,n=r.indexOf(e);for(let i=n-1;i>=0;i--){let a=r[i];if(zu(a))return a;{let s=Pc(r[i]).find(zu);if(s)return s}}}if(d2(t))return Xat(t)}function tBt(e,t){return e==="?"||e==="*"||lf(t)&&!!t.guardCondition}function eBt(e){return e==="*"||e==="+"}function rBt(e){return e==="+="}function k2(e){return jat(e,new Set)}function jat(e,t){if(t.has(e))return!0;t.add(e);for(let r of Pc(e))if(Fl(r)){if(!r.rule.ref||$a(r.rule.ref)&&!jat(r.rule.ref,t))return!1}else{if(Bl(r))return!1;if(zu(r))return!1}return!!e.definition}function nBt(e){return qN(e.type,new Set)}function qN(e,t){if(t.has(e))return!0;if(t.add(e),zR(e))return!1;if(nN(e))return!1;if(cN(e))return e.types.every(r=>qN(r,t));if(hk(e)){if(e.primitiveType!==void 0)return!0;if(e.stringType!==void 0)return!0;if(e.typeRef!==void 0){let r=e.typeRef.ref;return p2(r)?qN(r.type,t):!1}else return!1}else return!1}function eM(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t){if($a(t))return t.name;if(uk(t)||p2(t))return t.name}}}function l0(e){var t;if($a(e))return k2(e)?e.name:(t=eM(e))!==null&&t!==void 0?t:e.name;if(uk(e)||p2(e)||iN(e))return e.name;if(zu(e)){let r=Kat(e);if(r)return r}else if(ck(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function Kat(e){var t;if(e.inferredType)return e.inferredType.name;if(!((t=e.type)===null||t===void 0)&&t.ref)return l0(e.type.ref)}function rM(e){var t,r,n;return qo(e)?(r=(t=e.type)===null||t===void 0?void 0:t.name)!==null&&r!==void 0?r:"string":k2(e)?e.name:(n=eM(e))!==null&&n!==void 0?n:e.name}function ag(e){let t={s:!1,i:!1,u:!1},r=sg(e.definition,t),n=Object.entries(t).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function sg(e,t){if(SN(e))return iBt(e);if(_N(e))return aBt(e);if(pN(e))return lBt(e);if(dk(e)){let r=e.rule.ref;if(!r)throw new Error("Missing rule reference.");return $u(sg(r.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}else{if(wN(e))return oBt(e);if(NN(e))return sBt(e);if(kN(e)){let r=e.regex.lastIndexOf("/"),n=e.regex.substring(1,r),i=e.regex.substring(r+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),$u(n,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}else{if(IN(e))return $u(nM,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${e?.$type}`)}}}function iBt(e){return $u(e.elements.map(t=>sg(t)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}function aBt(e){return $u(e.elements.map(t=>sg(t)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}function sBt(e){return $u(`${nM}*?${sg(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}function oBt(e){return $u(`(?!${sg(e.terminal)})${nM}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}function lBt(e){return e.right?$u(`[${YN(e.left)}-${YN(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):$u(YN(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}function YN(e){return o0(e.value)}function $u(e,t){var r;return(t.wrap!==!1||t.lookahead)&&(e=`(${(r=t.lookahead)!==null&&r!==void 0?r:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}var nM,zl=R(()=>{"use strict";ak();Oc();Yo();is();Pl();ig();o(Hat,"getEntryRule");o(Wat,"getHiddenRules");o(w2,"getAllReachableRules");o(Yat,"ruleDfs");o(XN,"getCrossReferenceTerminal");o(jN,"isCommentTerminal");o(KN,"findNodesForProperty");o(T2,"findNodeForProperty");o(QN,"findNodesForPropertyInternal");o(JPt,"findNodesForKeyword");o(ZN,"findNodeForKeyword");o(JN,"findNodesForKeywordInternal");o(tM,"findAssignment");o(wk,"findNameAssignment");o(qat,"findNameAssignmentInternal");o(Xat,"getActionAtElement");o(tBt,"isOptionalCardinality");o(eBt,"isArrayCardinality");o(rBt,"isArrayOperator");o(k2,"isDataTypeRule");o(jat,"isDataTypeRuleInternal");o(nBt,"isDataType");o(qN,"isDataTypeInternal");o(eM,"getExplicitRuleType");o(l0,"getTypeName");o(Kat,"getActionType");o(rM,"getRuleType");o(ag,"terminalRegex");nM=/[\s\S]/.source;o(sg,"abstractElementToRegex");o(iBt,"terminalAlternativesToRegex");o(aBt,"terminalGroupToRegex");o(sBt,"untilTokenToRegex");o(oBt,"negateTokenToRegex");o(lBt,"characterRangeToRegex");o(YN,"keywordToRegex");o($u,"withCardinality")});function iM(e){let t=[],r=e.Grammar;for(let n of r.rules)qo(n)&&jN(n)&&UN(ag(n))&&t.push(n.name);return{multilineCommentRules:t,nameRegexp:nk}}var aM=R(()=>{"use strict";Pl();zl();ig();Oc();o(iM,"createGrammarConfig")});var sM=R(()=>{"use strict"});function og(e){console&&console.error&&console.error(`Error: ${e}`)}function E2(e){console&&console.warn&&console.warn(`Warning: ${e}`)}var Qat=R(()=>{"use strict";o(og,"PRINT_ERROR");o(E2,"PRINT_WARNING")});function C2(e){let t=new Date().getTime(),r=e();return{time:new Date().getTime()-t,value:r}}var Zat=R(()=>{"use strict";o(C2,"timer")});function S2(e){function t(){}o(t,"FakeConstructor"),t.prototype=e;let r=new t;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),e;(0,eval)(e)}var Jat=R(()=>{"use strict";o(S2,"toFastProperties")});var lg=R(()=>{"use strict";Qat();Zat();Jat()});function cBt(e){return uBt(e)?e.LABEL:e.name}function uBt(e){return yi(e.LABEL)&&e.LABEL!==""}function kk(e){return Xt(e,cg)}function cg(e){function t(r){return Xt(r,cg)}if(o(t,"convertDefinition"),e instanceof nn){let r={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return yi(e.label)&&(r.label=e.label),r}else{if(e instanceof Ln)return{type:"Alternative",definition:t(e.definition)};if(e instanceof an)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Dn)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof Rn)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:cg(new br({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof bn)return{type:"RepetitionWithSeparator",idx:e.idx,separator:cg(new br({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof Lr)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof wn)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof br){let r={type:"Terminal",name:e.terminalType.name,label:cBt(e.terminalType),idx:e.idx};yi(e.label)&&(r.terminalLabel=e.label);let n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(r.pattern=Uo(n)?n.source:n),r}else{if(e instanceof as)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}}}var fo,nn,as,Ln,an,Dn,Rn,Lr,bn,wn,br,Ek=R(()=>{"use strict";Ve();o(cBt,"tokenLabel");o(uBt,"hasTokenLabel");fo=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){this._definition=t}accept(t){t.visit(this),Et(this.definition,r=>{r.accept(t)})}},nn=class extends fo{static{o(this,"NonTerminal")}constructor(t){super([]),this.idx=1,va(this,Os(t,r=>r!==void 0))}set definition(t){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(t){t.visit(this)}},as=class extends fo{static{o(this,"Rule")}constructor(t){super(t.definition),this.orgText="",va(this,Os(t,r=>r!==void 0))}},Ln=class extends fo{static{o(this,"Alternative")}constructor(t){super(t.definition),this.ignoreAmbiguities=!1,va(this,Os(t,r=>r!==void 0))}},an=class extends fo{static{o(this,"Option")}constructor(t){super(t.definition),this.idx=1,va(this,Os(t,r=>r!==void 0))}},Dn=class extends fo{static{o(this,"RepetitionMandatory")}constructor(t){super(t.definition),this.idx=1,va(this,Os(t,r=>r!==void 0))}},Rn=class extends fo{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(t){super(t.definition),this.idx=1,va(this,Os(t,r=>r!==void 0))}},Lr=class extends fo{static{o(this,"Repetition")}constructor(t){super(t.definition),this.idx=1,va(this,Os(t,r=>r!==void 0))}},bn=class extends fo{static{o(this,"RepetitionWithSeparator")}constructor(t){super(t.definition),this.idx=1,va(this,Os(t,r=>r!==void 0))}},wn=class extends fo{static{o(this,"Alternation")}get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){super(t.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,va(this,Os(t,r=>r!==void 0))}},br=class{static{o(this,"Terminal")}constructor(t){this.idx=1,va(this,Os(t,r=>r!==void 0))}accept(t){t.visit(this)}};o(kk,"serializeGrammar");o(cg,"serializeProduction")});var ss,tst=R(()=>{"use strict";Ek();ss=class{static{o(this,"GAstVisitor")}visit(t){let r=t;switch(r.constructor){case nn:return this.visitNonTerminal(r);case Ln:return this.visitAlternative(r);case an:return this.visitOption(r);case Dn:return this.visitRepetitionMandatory(r);case Rn:return this.visitRepetitionMandatoryWithSeparator(r);case bn:return this.visitRepetitionWithSeparator(r);case Lr:return this.visitRepetition(r);case wn:return this.visitAlternation(r);case br:return this.visitTerminal(r);case as:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(t){}visitAlternative(t){}visitOption(t){}visitRepetition(t){}visitRepetitionMandatory(t){}visitRepetitionMandatoryWithSeparator(t){}visitRepetitionWithSeparator(t){}visitAlternation(t){}visitTerminal(t){}visitRule(t){}}});function oM(e){return e instanceof Ln||e instanceof an||e instanceof Lr||e instanceof Dn||e instanceof Rn||e instanceof bn||e instanceof br||e instanceof as}function c0(e,t=[]){return e instanceof an||e instanceof Lr||e instanceof bn?!0:e instanceof wn?r2(e.definition,n=>c0(n,t)):e instanceof nn&&Wn(t,e)?!1:e instanceof fo?(e instanceof nn&&t.push(e),za(e.definition,n=>c0(n,t))):!1}function lM(e){return e instanceof wn}function Bs(e){if(e instanceof nn)return"SUBRULE";if(e instanceof an)return"OPTION";if(e instanceof wn)return"OR";if(e instanceof Dn)return"AT_LEAST_ONE";if(e instanceof Rn)return"AT_LEAST_ONE_SEP";if(e instanceof bn)return"MANY_SEP";if(e instanceof Lr)return"MANY";if(e instanceof br)return"CONSUME";throw Error("non exhaustive match")}var est=R(()=>{"use strict";Ve();Ek();o(oM,"isSequenceProd");o(c0,"isOptionalProd");o(lM,"isBranchingProd");o(Bs,"getProductionDslName")});var os=R(()=>{"use strict";Ek();tst();est()});function rst(e,t,r){return[new an({definition:[new br({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}var Gu,Ck=R(()=>{"use strict";Ve();os();Gu=class{static{o(this,"RestWalker")}walk(t,r=[]){Et(t.definition,(n,i)=>{let a=gi(t.definition,i+1);if(n instanceof nn)this.walkProdRef(n,a,r);else if(n instanceof br)this.walkTerminal(n,a,r);else if(n instanceof Ln)this.walkFlat(n,a,r);else if(n instanceof an)this.walkOption(n,a,r);else if(n instanceof Dn)this.walkAtLeastOne(n,a,r);else if(n instanceof Rn)this.walkAtLeastOneSep(n,a,r);else if(n instanceof bn)this.walkManySep(n,a,r);else if(n instanceof Lr)this.walkMany(n,a,r);else if(n instanceof wn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(t,r,n){}walkProdRef(t,r,n){}walkFlat(t,r,n){let i=r.concat(n);this.walk(t,i)}walkOption(t,r,n){let i=r.concat(n);this.walk(t,i)}walkAtLeastOne(t,r,n){let i=[new an({definition:t.definition})].concat(r,n);this.walk(t,i)}walkAtLeastOneSep(t,r,n){let i=rst(t,r,n);this.walk(t,i)}walkMany(t,r,n){let i=[new an({definition:t.definition})].concat(r,n);this.walk(t,i)}walkManySep(t,r,n){let i=rst(t,r,n);this.walk(t,i)}walkOr(t,r,n){let i=r.concat(n);Et(t.definition,a=>{let s=new Ln({definition:[a]});this.walk(s,i)})}};o(rst,"restForRepetitionWithSeparator")});function u0(e){if(e instanceof nn)return u0(e.referencedRule);if(e instanceof br)return dBt(e);if(oM(e))return hBt(e);if(lM(e))return fBt(e);throw Error("non exhaustive match")}function hBt(e){let t=[],r=e.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=c0(a),t=t.concat(u0(a)),n=n+1,i=r.length>n;return Qm(t)}function fBt(e){let t=Xt(e.definition,r=>u0(r));return Qm(Wr(t))}function dBt(e){return[e.terminalType]}var cM=R(()=>{"use strict";Ve();os();o(u0,"first");o(hBt,"firstForSequence");o(fBt,"firstForBranching");o(dBt,"firstForTerminal")});var Sk,uM=R(()=>{"use strict";Sk="_~IN~_"});function nst(e){let t={};return Et(e,r=>{let n=new hM(r).startWalking();va(t,n)}),t}function pBt(e,t){return e.name+t+Sk}var hM,ist=R(()=>{"use strict";Ck();cM();Ve();uM();os();hM=class extends Gu{static{o(this,"ResyncFollowsWalker")}constructor(t){super(),this.topProd=t,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(t,r,n){}walkProdRef(t,r,n){let i=pBt(t.referencedRule,t.idx)+this.topProd.name,a=r.concat(n),s=new Ln({definition:a}),l=u0(s);this.follows[i]=l}};o(nst,"computeAllProdsFollows");o(pBt,"buildBetweenProdsFollowPrefix")});function ug(e){let t=e.toString();if(Ak.hasOwnProperty(t))return Ak[t];{let r=mBt.pattern(t);return Ak[t]=r,r}}function ast(){Ak={}}var Ak,mBt,_k=R(()=>{"use strict";b2();Ak={},mBt=new a0;o(ug,"getRegExpAst");o(ast,"clearRegExpParserCache")});function lst(e,t=!1){try{let r=ug(e);return fM(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===ost)t&&E2(`${A2} Unable to optimize: < ${e.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";t&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),og(`${A2} + Failed parsing: < ${e.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function fM(e,t,r){switch(e.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")Lk(u,t,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)Lk(f,t,r);else{for(let f=h.from;f<=h.to&&f=hg){let f=h.from>=hg?h.from:hg,d=h.to,p=Fc(f),m=Fc(d);for(let g=p;g<=m;g++)t[g]=g}}}});break;case"Group":fM(s.value,t,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&dM(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return gr(t)}function Lk(e,t,r){let n=Fc(e);t[n]=n,r===!0&&gBt(e,t)}function gBt(e,t){let r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){let i=Fc(n.charCodeAt(0));t[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Fc(i.charCodeAt(0));t[a]=a}}}function sst(e,t){return rs(e.value,r=>{if(typeof r=="number")return Wn(t,r);{let n=r;return rs(t,i=>n.from<=i&&i<=n.to)!==void 0}})}function dM(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?Le(e.value)?za(e.value,dM):dM(e.value):!1}function Dk(e,t){if(t instanceof RegExp){let r=ug(t),n=new pM(e);return n.visit(r),n.found}else return rs(t,r=>Wn(e,r.charCodeAt(0)))!==void 0}var ost,A2,pM,cst=R(()=>{"use strict";b2();Ve();lg();_k();mM();ost="Complement Sets are not supported for first char optimization",A2=`Unable to use "first char" lexer optimizations: +`;o(lst,"getOptimizedStartCodesIndices");o(fM,"firstCharOptimizedIndices");o(Lk,"addOptimizedIdxToResult");o(gBt,"handleIgnoreCase");o(sst,"findCode");o(dM,"isWholeOptional");pM=class extends Bc{static{o(this,"CharCodeFinder")}constructor(t){super(),this.targetCharCodes=t,this.found=!1}visitChildren(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}super.visitChildren(t)}}visitCharacter(t){Wn(this.targetCharCodes,t.value)&&(this.found=!0)}visitSet(t){t.complement?sst(t,this.targetCharCodes)===void 0&&(this.found=!0):sst(t,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(Dk,"canMatchCharCode")});function fst(e,t){t=Jh(t,{useSticky:yM,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,w)=>w(),"tracer")});let r=t.tracer;r("initCharCodeToOptimizedIndexMap",()=>{IBt()});let n;r("Reject Lexer.NA",()=>{n=ef(e,b=>b[h0]===li.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=Xt(n,b=>{let w=b[h0];if(Uo(w)){let S=w.source;return S.length===1&&S!=="^"&&S!=="$"&&S!=="."&&!w.ignoreCase?S:S.length===2&&S[0]==="\\"&&!Wn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],S[1])?S[1]:t.useSticky?hst(w):ust(w)}else{if(Si(w))return i=!0,{exec:w};if(typeof w=="object")return i=!0,w;if(typeof w=="string"){if(w.length===1)return w;{let S=w.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(S);return t.useSticky?hst(T):ust(T)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=Xt(n,b=>b.tokenTypeIdx),l=Xt(n,b=>{let w=b.GROUP;if(w!==li.SKIPPED){if(yi(w))return w;if(fr(w))return!1;throw Error("non exhaustive match")}}),u=Xt(n,b=>{let w=b.LONGER_ALT;if(w)return Le(w)?Xt(w,T=>PT(n,T)):[PT(n,w)]}),h=Xt(n,b=>b.PUSH_MODE),f=Xt(n,b=>jt(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=bst(t.lineTerminatorCharacters);d=Xt(n,w=>!1),t.positionTracking!=="onlyOffset"&&(d=Xt(n,w=>jt(w,"LINE_BREAKS")?!!w.LINE_BREAKS:xst(w,b)===!1&&Dk(b,w.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=Xt(n,yst),m=Xt(a,NBt),g=qr(n,(b,w)=>{let S=w.GROUP;return yi(S)&&S!==li.SKIPPED&&(b[S]=[]),b},{}),y=Xt(a,(b,w)=>({pattern:a[w],longerAlt:u[w],canLineTerminator:d[w],isCustom:p[w],short:m[w],group:l[w],push:h[w],pop:f[w],tokenTypeIdx:s[w],tokenType:n[w]}))});let v=!0,x=[];return t.safeMode||r("First Char Optimization",()=>{x=qr(n,(b,w,S)=>{if(typeof w.PATTERN=="string"){let T=w.PATTERN.charCodeAt(0),E=Fc(T);gM(b,E,y[S])}else if(Le(w.START_CHARS_HINT)){let T;Et(w.START_CHARS_HINT,E=>{let _=typeof E=="string"?E.charCodeAt(0):E,A=Fc(_);T!==A&&(T=A,gM(b,A,y[S]))})}else if(Uo(w.PATTERN))if(w.PATTERN.unicode)v=!1,t.ensureOptimizations&&og(`${A2} Unable to analyze < ${w.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=lst(w.PATTERN,t.ensureOptimizations);cr(T)&&(v=!1),Et(T,E=>{gM(b,E,y[S])})}else t.ensureOptimizations&&og(`${A2} TokenType: <${w.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function dst(e,t){let r=[],n=vBt(e);r=r.concat(n.errors);let i=xBt(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(yBt(a)),r=r.concat(ABt(a)),r=r.concat(_Bt(a,t)),r=r.concat(LBt(a)),r}function yBt(e){let t=[],r=Yr(e,n=>Uo(n[h0]));return t=t.concat(wBt(r)),t=t.concat(EBt(r)),t=t.concat(CBt(r)),t=t.concat(SBt(r)),t=t.concat(TBt(r)),t}function vBt(e){let t=Yr(e,i=>!jt(i,h0)),r=Xt(t,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:qn.MISSING_PATTERN,tokenTypes:[i]})),n=tf(e,t);return{errors:r,valid:n}}function xBt(e){let t=Yr(e,i=>{let a=i[h0];return!Uo(a)&&!Si(a)&&!jt(a,"exec")&&!yi(a)}),r=Xt(t,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:qn.INVALID_PATTERN,tokenTypes:[i]})),n=tf(e,t);return{errors:r,valid:n}}function wBt(e){class t extends Bc{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=Yr(e,i=>{let a=i.PATTERN;try{let s=ug(a),l=new t;return l.visit(s),l.found}catch{return bBt.test(a.source)}});return Xt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:qn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function TBt(e){let t=Yr(e,n=>n.PATTERN.test(""));return Xt(t,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:qn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function EBt(e){class t extends Bc{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=Yr(e,i=>{let a=i.PATTERN;try{let s=ug(a),l=new t;return l.visit(s),l.found}catch{return kBt.test(a.source)}});return Xt(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:qn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function CBt(e){let t=Yr(e,n=>{let i=n[h0];return i instanceof RegExp&&(i.multiline||i.global)});return Xt(t,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:qn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function SBt(e){let t=[],r=Xt(e,a=>qr(e,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!Wn(t,l)&&l.PATTERN!==li.NA&&(t.push(l),s.push(l)),s),[]));r=Dc(r);let n=Yr(r,a=>a.length>1);return Xt(n,a=>{let s=Xt(a,u=>u.name);return{message:`The same RegExp pattern ->${aa(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:qn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function ABt(e){let t=Yr(e,n=>{if(!jt(n,"GROUP"))return!1;let i=n.GROUP;return i!==li.SKIPPED&&i!==li.NA&&!yi(i)});return Xt(t,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:qn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function _Bt(e,t){let r=Yr(e,i=>i.PUSH_MODE!==void 0&&!Wn(t,i.PUSH_MODE));return Xt(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:qn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function LBt(e){let t=[],r=qr(e,(n,i,a)=>{let s=i.PATTERN;return s===li.NA||(yi(s)?n.push({str:s,idx:a,tokenType:i}):Uo(s)&&RBt(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Et(e,(n,i)=>{Et(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:u,type:qn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),t}function DBt(e,t){if(Uo(t)){let r=t.exec(e);return r!==null&&r.index===0}else{if(Si(t))return t(e,0,[],{});if(jt(t,"exec"))return t.exec(e,0,[],{});if(typeof t=="string")return t===e;throw Error("non exhaustive match")}}function RBt(e){return rs([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>e.source.indexOf(r)!==-1)===void 0}function ust(e){let t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function hst(e){let t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function pst(e,t,r){let n=[];return jt(e,fg)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+fg+`> property in its definition +`,type:qn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),jt(e,Rk)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Rk+`> property in its definition +`,type:qn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),jt(e,Rk)&&jt(e,fg)&&!jt(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${fg}: <${e.defaultMode}>which does not exist +`,type:qn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),jt(e,Rk)&&Et(e.modes,(i,a)=>{Et(i,(s,l)=>{if(fr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:qn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(jt(s,"LONGER_ALT")){let u=Le(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Et(u,h=>{!fr(h)&&!Wn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:qn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function mst(e,t,r){let n=[],i=!1,a=Dc(Wr(gr(e.modes))),s=ef(a,u=>u[h0]===li.NA),l=bst(r);return t&&Et(s,u=>{let h=xst(u,l);if(h!==!1){let d={message:MBt(u,h),type:h.issue,tokenType:u};n.push(d)}else jt(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):Dk(l,u.PATTERN)&&(i=!0)}),t&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:qn.NO_LINE_BREAKS_FLAGS}),n}function gst(e){let t={},r=$r(e);return Et(r,n=>{let i=e[n];if(Le(i))t[n]=[];else throw Error("non exhaustive match")}),t}function yst(e){let t=e.PATTERN;if(Uo(t))return!1;if(Si(t))return!0;if(jt(t,"exec"))return!0;if(yi(t))return!1;throw Error("non exhaustive match")}function NBt(e){return yi(e)&&e.length===1?e.charCodeAt(0):!1}function xst(e,t){if(jt(e,"LINE_BREAKS"))return!1;if(Uo(e.PATTERN)){try{Dk(t,e.PATTERN)}catch(r){return{issue:qn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(yi(e.PATTERN))return!1;if(yst(e))return{issue:qn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function MBt(e,t){if(t.issue===qn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${e.name}> Token Type + Root cause: ${t.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===qn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${e.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function bst(e){return Xt(e,r=>yi(r)?r.charCodeAt(0):r)}function gM(e,t,r){e[t]===void 0?e[t]=[r]:e[t].push(r)}function Fc(e){return e255?255+~~(e/255):e}}var h0,fg,Rk,yM,bBt,kBt,vst,hg,Nk,mM=R(()=>{"use strict";b2();_2();Ve();lg();cst();_k();h0="PATTERN",fg="defaultMode",Rk="modes",yM=typeof new RegExp("(?:)").sticky=="boolean";o(fst,"analyzeTokenTypes");o(dst,"validatePatterns");o(yBt,"validateRegExpPattern");o(vBt,"findMissingPatterns");o(xBt,"findInvalidPatterns");bBt=/[^\\][$]/;o(wBt,"findEndOfInputAnchor");o(TBt,"findEmptyMatchRegExps");kBt=/[^\\[][\^]|^\^/;o(EBt,"findStartOfInputAnchor");o(CBt,"findUnsupportedFlags");o(SBt,"findDuplicatePatterns");o(ABt,"findInvalidGroupType");o(_Bt,"findModesThatDoNotExist");o(LBt,"findUnreachablePatterns");o(DBt,"testTokenType");o(RBt,"noMetaChar");o(ust,"addStartOfInput");o(hst,"addStickyFlag");o(pst,"performRuntimeChecks");o(mst,"performWarningRuntimeChecks");o(gst,"cloneEmptyGroups");o(yst,"isCustomPattern");o(NBt,"isShortPattern");vst={test:o(function(e){let t=e.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function OBt(e){let t=rn(e),r=e,n=!0;for(;n;){r=Dc(Wr(Xt(r,a=>a.CATEGORIES)));let i=tf(r,t);t=t.concat(i),cr(i)?n=!1:r=i}return t}function PBt(e){Et(e,t=>{vM(t)||(kst[wst]=t,t.tokenTypeIdx=wst++),Tst(t)&&!Le(t.CATEGORIES)&&(t.CATEGORIES=[t.CATEGORIES]),Tst(t)||(t.CATEGORIES=[]),zBt(t)||(t.categoryMatches=[]),$Bt(t)||(t.categoryMatchesMap={})})}function BBt(e){Et(e,t=>{t.categoryMatches=[],Et(t.categoryMatchesMap,(r,n)=>{t.categoryMatches.push(kst[n].tokenTypeIdx)})})}function FBt(e){Et(e,t=>{Est([],t)})}function Est(e,t){Et(e,r=>{t.categoryMatchesMap[r.tokenTypeIdx]=!0}),Et(t.CATEGORIES,r=>{let n=e.concat(t);Wn(n,r)||Est(n,r)})}function vM(e){return jt(e,"tokenTypeIdx")}function Tst(e){return jt(e,"CATEGORIES")}function zBt(e){return jt(e,"categoryMatches")}function $Bt(e){return jt(e,"categoryMatchesMap")}function Cst(e){return jt(e,"tokenTypeIdx")}var wst,kst,f0=R(()=>{"use strict";Ve();o(Vu,"tokenStructuredMatcher");o(dg,"tokenStructuredMatcherNoCategories");wst=1,kst={};o(Uu,"augmentTokenTypes");o(OBt,"expandCategories");o(PBt,"assignTokenDefaultProps");o(BBt,"assignCategoriesTokensProp");o(FBt,"assignCategoriesMapProp");o(Est,"singleAssignCategoriesToksMap");o(vM,"hasShortKeyProperty");o(Tst,"hasCategoriesProperty");o(zBt,"hasExtendingTokensTypesProperty");o($Bt,"hasExtendingTokensTypesMapProperty");o(Cst,"isTokenType")});var xM,bM=R(()=>{"use strict";xM={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,r,n,i){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`}}});var qn,L2,li,_2=R(()=>{"use strict";mM();Ve();lg();f0();bM();_k();(function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(qn||(qn={}));L2={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:xM,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(L2);li=class{static{o(this,"Lexer")}constructor(t,r=L2){if(this.lexerDefinition=t,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=C2(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=va({},L2,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===L2.lineTerminatorsPattern)this.config.lineTerminatorsPattern=vst;else if(this.config.lineTerminatorCharacters===L2.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Le(t)?i={modes:{defaultMode:rn(t)},defaultMode:fg}:(a=!1,i=rn(t))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(pst(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(mst(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Et(i.modes,(l,u)=>{i.modes[u]=ef(l,h=>fr(h))});let s=$r(i.modes);if(Et(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(dst(l,s))}),cr(this.lexerDefinitionErrors)){Uu(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=fst(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=va({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!cr(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=Xt(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Et(this.lexerDefinitionWarning,l=>{E2(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(yM?(this.chopInput=na,this.match=this.matchWithTest):(this.updateLastIndex=ei,this.match=this.matchWithExec),a&&(this.handleModes=ei),this.trackStartLines===!1&&(this.computeNewColumn=na),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ei),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=qr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!cr(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{ast()}),this.TRACE_INIT("toFastProperties",()=>{S2(this)})})}tokenize(t,r=this.defaultMode){if(!cr(this.lexerDefinitionErrors)){let i=Xt(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(t,r)}tokenizeInternal(t,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,w=t,S=w.length,T=0,E=0,_=this.hasCustom?0:Math.floor(t.length/10),A=new Array(_),L=[],M=this.trackStartLines?1:void 0,N=this.trackStartLines?1:void 0,k=gst(this.emptyGroups),I=this.trackStartLines,C=this.config.lineTerminatorsPattern,O=0,D=[],P=[],F=[],B=[];Object.freeze(B);let G;function z(){return D}o(z,"getPossiblePatternsSlow");function W(J){let Z=Fc(J),H=P[Z];return H===void 0?B:H}o(W,"getPossiblePatternsOptimized");let Q=o(J=>{if(F.length===1&&J.tokenType.PUSH_MODE===void 0){let Z=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(J);L.push({offset:J.startOffset,line:J.startLine,column:J.startColumn,length:J.image.length,message:Z})}else{F.pop();let Z=xa(F);D=this.patternIdxToConfig[Z],P=this.charCodeToPatternIdxToConfig[Z],O=D.length;let H=this.canModeBeOptimized[Z]&&this.config.safeMode===!1;P&&H?G=W:G=z}},"pop_mode");function j(J){F.push(J),P=this.charCodeToPatternIdxToConfig[J],D=this.patternIdxToConfig[J],O=D.length,O=D.length;let Z=this.canModeBeOptimized[J]&&this.config.safeMode===!1;P&&Z?G=W:G=z}o(j,"push_mode"),j.call(this,r);let at,X=this.config.recoveryEnabled;for(;Tu.length){u=s,h=f,at=ct;break}}}break}}if(u!==null){if(d=u.length,p=at.group,p!==void 0&&(m=at.tokenTypeIdx,g=this.createTokenInstance(u,T,m,at.tokenType,M,N,d),this.handlePayload(g,h),p===!1?E=this.addToken(A,E,g):k[p].push(g)),t=this.chopInput(t,d),T=T+d,N=this.computeNewColumn(N,d),I===!0&&at.canLineTerminator===!0){let q=0,K,ot;C.lastIndex=0;do K=C.test(u),K===!0&&(ot=C.lastIndex-1,q++);while(K===!0);q!==0&&(M=M+q,N=d-ot,this.updateTokenEndLineColumnLocation(g,p,ot,q,M,N,d))}this.handleModes(at,Q,j,g)}else{let q=T,K=M,ot=N,ct=X===!1;for(;ct===!1&&T{"use strict";Ve();_2();f0();o(Hu,"tokenLabel");o(wM,"hasTokenLabel");GBt="parent",Sst="categories",Ast="label",_st="group",Lst="push_mode",Dst="pop_mode",Rst="longer_alt",Nst="line_breaks",Mst="start_chars_hint";o(Mk,"createToken");o(VBt,"createTokenInternal");po=Mk({name:"EOF",pattern:li.NA});Uu([po]);o(d0,"createTokenInstance");o(D2,"tokenMatcher")});var Wu,Ist,$l,pg=R(()=>{"use strict";p0();Ve();os();Wu={buildMismatchTokenMessage({expected:e,actual:t,previous:r,ruleName:n}){return`Expecting ${wM(e)?`--> ${Hu(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+aa(t).image+"'";if(n)return a+n+l;{let u=qr(e,(p,m)=>p.concat(m),[]),h=Xt(u,p=>`[${Xt(p,m=>Hu(m)).join(", ")}]`),d=`one of these possible Token sequences: +${Xt(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+aa(t).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${Xt(e,h=>`[${Xt(h,f=>Hu(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Wu);Ist={buildRuleNotFoundError(e,t){return"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+`<- +inside top level rule: ->`+e.name+"<-"}},$l={buildDuplicateFoundError(e,t){function r(f){return f instanceof br?f.terminalType.name:f instanceof nn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=e.name,i=aa(t),a=i.idx,s=Bs(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${t.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(e){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(e){let t=Xt(e.prefixPath,i=>Hu(i)).join(", "),r=e.alternation.idx===0?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(e){let t=Xt(e.prefixPath,i=>Hu(i)).join(", "),r=e.alternation.idx===0?"":e.alternation.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(e){let t=Bs(e.repetition);return e.repetition.idx!==0&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(e){return"deprecated"},buildEmptyAlternationError(e){return`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in inside <${e.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(e){return`An Alternation cannot have more than 256 alternatives: + inside <${e.topLevelRule.name}> Rule. + has ${e.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(e){let t=e.topLevelRule.name,r=Xt(e.leftRecursionPath,a=>a.name),n=`${t} --> ${r.concat([t]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${t}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return"deprecated"},buildDuplicateRuleNameError(e){let t;return e.topLevelRule instanceof as?t=e.topLevelRule.name:t=e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}}});function Ost(e,t){let r=new TM(e,t);return r.resolveRefs(),r.errors}var TM,Pst=R(()=>{"use strict";Fs();Ve();os();o(Ost,"resolveGrammar");TM=class extends ss{static{o(this,"GastRefResolverVisitor")}constructor(t,r){super(),this.nameToTopRule=t,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Et(gr(this.nameToTopRule),t=>{this.currTopLevel=t,t.accept(this)})}visitNonTerminal(t){let r=this.nameToTopRule[t.nonTerminalName];if(r)t.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:Gi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}}}});function Bk(e,t,r=[]){r=rn(r);let n=[],i=0;function a(l){return l.concat(gi(e,i+1))}o(a,"remainingPathWith");function s(l){let u=Bk(a(l),t,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{cr(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof br)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:gi(e,i)}),n}function Fk(e,t,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=t.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!cr(d);){let p=d.pop();if(p===s){l&&xa(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(cr(m))continue;let x=m[0];if(x===i){let b={idx:g,def:gi(m),ruleStack:Pu(y),occurrenceStack:Pu(v)};d.push(b)}else if(x instanceof br)if(g=0;b--){let w=x.definition[b],S={idx:g,def:w.definition.concat(gi(m)),ruleStack:y,occurrenceStack:v};d.push(S),d.push(s)}else if(x instanceof Ln)d.push({idx:g,def:x.definition.concat(gi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof as)d.push(UBt(x,g,y,v));else throw Error("non exhaustive match")}return f}function UBt(e,t,r,n){let i=rn(r);i.push(e.name);let a=rn(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}var kM,Ik,mg,Ok,R2,Pk,N2,M2=R(()=>{"use strict";Ve();cM();Ck();os();kM=class extends Gu{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(t,r){super(),this.topProd=t,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=rn(this.path.ruleStack).reverse(),this.occurrenceStack=rn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(t,r=[]){this.found||super.walk(t,r)}walkProdRef(t,r,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,i)}}updateExpectedNext(){cr(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Ik=class extends kM{static{o(this,"NextAfterTokenWalker")}constructor(t,r){super(t,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(t,r,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Ln({definition:i});this.possibleTokTypes=u0(a),this.found=!0}}},mg=class extends Gu{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(t,r){super(),this.topRule=t,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Ok=class extends mg{static{o(this,"NextTerminalAfterManyWalker")}walkMany(t,r,n){if(t.idx===this.occurrence){let i=aa(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof br&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(t,r,n)}},R2=class extends mg{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(t,r,n){if(t.idx===this.occurrence){let i=aa(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof br&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(t,r,n)}},Pk=class extends mg{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(t,r,n){if(t.idx===this.occurrence){let i=aa(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof br&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(t,r,n)}},N2=class extends mg{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(t,r,n){if(t.idx===this.occurrence){let i=aa(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof br&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(t,r,n)}};o(Bk,"possiblePathsFrom");o(Fk,"nextPossibleTokensAfter");o(UBt,"expandTopLevelRule")});function I2(e){if(e instanceof an||e==="Option")return Xn.OPTION;if(e instanceof Lr||e==="Repetition")return Xn.REPETITION;if(e instanceof Dn||e==="RepetitionMandatory")return Xn.REPETITION_MANDATORY;if(e instanceof Rn||e==="RepetitionMandatoryWithSeparator")return Xn.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof bn||e==="RepetitionWithSeparator")return Xn.REPETITION_WITH_SEPARATOR;if(e instanceof wn||e==="Alternation")return Xn.ALTERNATION;throw Error("non exhaustive match")}function $k(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=I2(n);return a===Xn.ALTERNATION?gg(t,r,i):yg(t,r,a,i)}function Fst(e,t,r,n,i,a){let s=gg(e,t,r),l=Hst(s)?dg:Vu;return a(s,n,l,i)}function zst(e,t,r,n,i,a){let s=yg(e,t,i,r),l=Hst(s)?dg:Vu;return a(s[0],l,n)}function $st(e,t,r,n){let i=e.length,a=za(e,s=>za(s,l=>l.length===1));if(t)return function(s){let l=Xt(s,u=>u.GATE);for(let u=0;uWr(u)),l=qr(s,(u,h,f)=>(Et(h,d=>{jt(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Et(d.categoryMatches,p=>{jt(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=e.length;if(n&&!r){let a=Wr(e);if(a.length===1&&cr(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=qr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Et(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){t:for(let a=0;aBk([s],1)),n=Bst(r.length),i=Xt(r,s=>{let l={};return Et(s,u=>{let h=EM(u.partialPath);Et(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=t;s++){let l=a;a=Bst(l.length);for(let u=0;u{let x=EM(v.partialPath);Et(x,b=>{i[u][b]=!0})})}}}}return n}function gg(e,t,r,n){let i=new zk(e,Xn.ALTERNATION,n);return t.accept(i),Vst(i.result,r)}function yg(e,t,r,n){let i=new zk(e,r);t.accept(i);let a=i.result,l=new CM(t,e,r).startWalking(),u=new Ln({definition:a}),h=new Ln({definition:l});return Vst([u,h],n)}function Gk(e,t){t:for(let r=0;r{let i=t[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function Hst(e){return za(e,t=>za(t,r=>za(r,n=>cr(n.categoryMatches))))}var Xn,CM,zk,vg=R(()=>{"use strict";Ve();M2();Ck();f0();os();(function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"})(Xn||(Xn={}));o(I2,"getProdType");o($k,"getLookaheadPaths");o(Fst,"buildLookaheadFuncForOr");o(zst,"buildLookaheadFuncForOptionalProd");o($st,"buildAlternativesLookAheadFunc");o(Gst,"buildSingleAlternativeLookaheadFunction");CM=class extends Gu{static{o(this,"RestDefinitionFinderWalker")}constructor(t,r,n){super(),this.topProd=t,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(t,r,n,i){return t.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(t,r,n){this.checkIsTarget(t,Xn.OPTION,r,n)||super.walkOption(t,r,n)}walkAtLeastOne(t,r,n){this.checkIsTarget(t,Xn.REPETITION_MANDATORY,r,n)||super.walkOption(t,r,n)}walkAtLeastOneSep(t,r,n){this.checkIsTarget(t,Xn.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(t,r,n)}walkMany(t,r,n){this.checkIsTarget(t,Xn.REPETITION,r,n)||super.walkOption(t,r,n)}walkManySep(t,r,n){this.checkIsTarget(t,Xn.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(t,r,n)}},zk=class extends ss{static{o(this,"InsideDefinitionFinderVisitor")}constructor(t,r,n){super(),this.targetOccurrence=t,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(t,r){t.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)}visitOption(t){this.checkIsTarget(t,Xn.OPTION)}visitRepetition(t){this.checkIsTarget(t,Xn.REPETITION)}visitRepetitionMandatory(t){this.checkIsTarget(t,Xn.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(t){this.checkIsTarget(t,Xn.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(t){this.checkIsTarget(t,Xn.REPETITION_WITH_SEPARATOR)}visitAlternation(t){this.checkIsTarget(t,Xn.ALTERNATION)}};o(Bst,"initializeArrayOfArrays");o(EM,"pathToHashKeys");o(HBt,"isUniquePrefixHash");o(Vst,"lookAheadSequenceFromAlternatives");o(gg,"getLookaheadPathsForOr");o(yg,"getLookaheadPathsForOptionalProd");o(Gk,"containsPath");o(Ust,"isStrictPrefixOfPath");o(Hst,"areTokenCategoriesNotUsed")});function Wst(e){let t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return Xt(t,r=>Object.assign({type:Gi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function Yst(e,t,r,n){let i=ba(e,u=>WBt(u,r)),a=QBt(e,t,r),s=ba(e,u=>XBt(u,r)),l=ba(e,u=>qBt(u,e,n,r));return i.concat(a,s,l)}function WBt(e,t){let r=new SM;e.accept(r);let n=r.allProductions,i=zD(n,YBt),a=Os(i,l=>l.length>1);return Xt(gr(a),l=>{let u=aa(l),h=t.buildDuplicateFoundError(e,l),f=Bs(u),d={message:h,type:Gi.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:f,occurrence:u.idx},p=qst(u);return p&&(d.parameter=p),d})}function YBt(e){return`${Bs(e)}_#_${e.idx}_#_${qst(e)}`}function qst(e){return e instanceof br?e.terminalType.name:e instanceof nn?e.nonTerminalName:""}function qBt(e,t,r,n){let i=[];if(qr(t,(s,l)=>l.name===e.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:s,type:Gi.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function Xst(e,t,r){let n=[],i;return Wn(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:Gi.INVALID_RULE_OVERRIDE,ruleName:e})),n}function _M(e,t,r,n=[]){let i=[],a=Vk(t.definition);if(cr(a))return[];{let s=e.name;Wn(a,e)&&i.push({message:r.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:n}),type:Gi.LEFT_RECURSION,ruleName:s});let u=tf(a,n.concat([e])),h=ba(u,f=>{let d=rn(n);return d.push(f),_M(e,f,r,d)});return i.concat(h)}}function Vk(e){let t=[];if(cr(e))return t;let r=aa(e);if(r instanceof nn)t.push(r.referencedRule);else if(r instanceof Ln||r instanceof an||r instanceof Dn||r instanceof Rn||r instanceof bn||r instanceof Lr)t=t.concat(Vk(r.definition));else if(r instanceof wn)t=Wr(Xt(r.definition,a=>Vk(a.definition)));else if(!(r instanceof br))throw Error("non exhaustive match");let n=c0(r),i=e.length>1;if(n&&i){let a=gi(e);return t.concat(Vk(a))}else return t}function jst(e,t){let r=new O2;e.accept(r);let n=r.alternations;return ba(n,a=>{let s=Pu(a.definition);return ba(s,(l,u)=>{let h=Fk([l],[],Vu,1);return cr(h)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:a,emptyChoiceIdx:u}),type:Gi.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:a.idx,alternative:u+1}]:[]})})}function Kst(e,t,r){let n=new O2;e.accept(n);let i=n.alternations;return i=ef(i,s=>s.ignoreAmbiguities===!0),ba(i,s=>{let l=s.idx,u=s.maxLookahead||t,h=gg(l,e,u,s),f=jBt(h,s,e,r),d=KBt(h,s,e,r);return f.concat(d)})}function XBt(e,t){let r=new O2;e.accept(r);let n=r.alternations;return ba(n,a=>a.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:a}),type:Gi.TOO_MANY_ALTS,ruleName:e.name,occurrence:a.idx}]:[])}function Qst(e,t,r){let n=[];return Et(e,i=>{let a=new AM;i.accept(a);let s=a.allProductions;Et(s,l=>{let u=I2(l),h=l.maxLookahead||t,f=l.idx,p=yg(f,i,u,h)[0];if(cr(Wr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:Gi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function jBt(e,t,r,n){let i=[],a=qr(e,(l,u,h)=>(t.definition[h].ignoreAmbiguities===!0||Et(u,f=>{let d=[h];Et(e,(p,m)=>{h!==m&&Gk(p,f)&&t.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!Gk(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return Xt(a,l=>{let u=Xt(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:u,prefixPath:l.path}),type:Gi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:l.alts}})}function KBt(e,t,r,n){let i=qr(e,(s,l,u)=>{let h=Xt(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return Dc(ba(i,s=>{if(t.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=Yr(i,p=>t.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=t.idx===0?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:m,prefixPath:p.path}),type:Gi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function QBt(e,t,r){let n=[],i=Xt(t,a=>a.name);return Et(e,a=>{let s=a.name;if(Wn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:Gi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var SM,O2,AM,P2=R(()=>{"use strict";Ve();Fs();os();vg();M2();f0();o(Wst,"validateLookahead");o(Yst,"validateGrammar");o(WBt,"validateDuplicateProductions");o(YBt,"identifyProductionForDuplicates");o(qst,"getExtraProductionArgument");SM=class extends ss{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(t){this.allProductions.push(t)}visitOption(t){this.allProductions.push(t)}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}visitAlternation(t){this.allProductions.push(t)}visitTerminal(t){this.allProductions.push(t)}};o(qBt,"validateRuleDoesNotAlreadyExist");o(Xst,"validateRuleIsOverridden");o(_M,"validateNoLeftRecursion");o(Vk,"getFirstNoneTerminal");O2=class extends ss{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(t){this.alternations.push(t)}};o(jst,"validateEmptyOrAlternative");o(Kst,"validateAmbiguousAlternationAlternatives");AM=class extends ss{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}};o(XBt,"validateTooManyAlts");o(Qst,"validateSomeNonEmptyLookaheadPath");o(jBt,"checkAlternativesAmbiguities");o(KBt,"checkPrefixAlternativesAmbiguities");o(QBt,"checkTerminalAndNoneTerminalsNameSpace")});function Zst(e){let t=Jh(e,{errMsgProvider:Ist}),r={};return Et(e.rules,n=>{r[n.name]=n}),Ost(r,t.errMsgProvider)}function Jst(e){return e=Jh(e,{errMsgProvider:$l}),Yst(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}var tot=R(()=>{"use strict";Ve();Pst();P2();pg();o(Zst,"resolveGrammar");o(Jst,"validateGrammar")});function cf(e){return Wn(aot,e.name)}var eot,rot,not,iot,aot,xg,m0,B2,F2,z2,bg=R(()=>{"use strict";Ve();eot="MismatchedTokenException",rot="NoViableAltException",not="EarlyExitException",iot="NotAllInputParsedException",aot=[eot,rot,not,iot];Object.freeze(aot);o(cf,"isRecognitionException");xg=class extends Error{static{o(this,"RecognitionException")}constructor(t,r){super(t),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},m0=class extends xg{static{o(this,"MismatchedTokenException")}constructor(t,r,n){super(t,r),this.previousToken=n,this.name=eot}},B2=class extends xg{static{o(this,"NoViableAltException")}constructor(t,r,n){super(t,r),this.previousToken=n,this.name=rot}},F2=class extends xg{static{o(this,"NotAllInputParsedException")}constructor(t,r){super(t,r),this.name=iot}},z2=class extends xg{static{o(this,"EarlyExitException")}constructor(t,r,n){super(t,r),this.previousToken=n,this.name=not}}});function ZBt(e,t,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=po,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(e,t,r,h)}var LM,RM,DM,Uk,NM=R(()=>{"use strict";p0();Ve();bg();uM();Fs();LM={},RM="InRuleRecoveryException",DM=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(t){super(t),this.name=RM}},Uk=class{static{o(this,"Recoverable")}initRecoverable(t){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=jt(t,"recoveryEnabled")?t.recoveryEnabled:ls.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=ZBt)}getTokenToInsert(t){let r=d0(t,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(t){return!0}canTokenTypeBeDeletedInRecovery(t){return!0}tryInRepetitionRecovery(t,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new m0(m,h,this.LA(0));g.resyncedTokens=Pu(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),t.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(t,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),t)||this.isBackTracking()||this.canPerformInRuleRecovery(t,this.getFollowsForInRuleRecovery(t,r)))}getFollowsForInRuleRecovery(t,r){let n=this.getCurrentGrammarPath(t,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(t,r){if(this.canRecoverWithSingleTokenInsertion(t,r))return this.getTokenToInsert(t);if(this.canRecoverWithSingleTokenDeletion(t)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new DM("sad sad panda")}canPerformInRuleRecovery(t,r){return this.canRecoverWithSingleTokenInsertion(t,r)||this.canRecoverWithSingleTokenDeletion(t)}canRecoverWithSingleTokenInsertion(t,r){if(!this.canTokenTypeBeInsertedInRecovery(t)||cr(r))return!1;let n=this.LA(1);return rs(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(t){return this.canTokenTypeBeDeletedInRecovery(t)?this.tokenMatcher(this.LA(2),t):!1}isInCurrentRuleReSyncSet(t){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return Wn(n,t)}findReSyncTokenType(){let t=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=rs(t,a=>D2(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return LM;let t=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let t=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return Xt(t,(n,i)=>i===0?LM:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(t[i-1])})}flattenFollowSet(){let t=Xt(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return Wr(t)}getFollowSetFromFollowKey(t){if(t===LM)return[po];let r=t.ruleName+t.idxInCallingRule+Sk+t.inRule;return this.resyncFollows[r]}addToResyncTokens(t,r){return this.tokenMatcher(t,po)||r.push(t),r}reSyncTo(t){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,t)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Pu(r)}attemptInRepetitionRecovery(t,r,n,i,a,s,l){}getCurrentGrammarPath(t,r){let n=this.getHumanReadableRuleStack(),i=rn(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:t,lastTokOccurrence:r}}getHumanReadableRuleStack(){return Xt(this.RULE_STACK,t=>this.shortRuleNameToFullName(t))}};o(ZBt,"attemptInRepetitionRecovery")});function Hk(e,t,r){return r|t|e}var Wk=R(()=>{"use strict";o(Hk,"getKeyForAutomaticLookahead")});var Yu,MM=R(()=>{"use strict";Ve();pg();Fs();P2();vg();Yu=class{static{o(this,"LLkLookaheadStrategy")}constructor(t){var r;this.maxLookahead=(r=t?.maxLookahead)!==null&&r!==void 0?r:ls.maxLookahead}validate(t){let r=this.validateNoLeftRecursion(t.rules);if(cr(r)){let n=this.validateEmptyOrAlternatives(t.rules),i=this.validateAmbiguousAlternationAlternatives(t.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(t.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(t){return ba(t,r=>_M(r,r,$l))}validateEmptyOrAlternatives(t){return ba(t,r=>jst(r,$l))}validateAmbiguousAlternationAlternatives(t,r){return ba(t,n=>Kst(n,r,$l))}validateSomeNonEmptyLookaheadPath(t,r){return Qst(t,r,$l)}buildLookaheadForAlternation(t){return Fst(t.prodOccurrence,t.rule,t.maxLookahead,t.hasPredicates,t.dynamicTokensEnabled,$st)}buildLookaheadForOptional(t){return zst(t.prodOccurrence,t.rule,t.maxLookahead,t.dynamicTokensEnabled,I2(t.prodType),Gst)}}});function JBt(e){Yk.reset(),e.accept(Yk);let t=Yk.dslMethods;return Yk.reset(),t}var qk,IM,Yk,sot=R(()=>{"use strict";Ve();Fs();Wk();os();MM();qk=class{static{o(this,"LooksAhead")}initLooksAhead(t){this.dynamicTokensEnabled=jt(t,"dynamicTokensEnabled")?t.dynamicTokensEnabled:ls.dynamicTokensEnabled,this.maxLookahead=jt(t,"maxLookahead")?t.maxLookahead:ls.maxLookahead,this.lookaheadStrategy=jt(t,"lookaheadStrategy")?t.lookaheadStrategy:new Yu({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(t){Et(t,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=JBt(r);Et(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Bs(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=Hk(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Et(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Bs(h))}),Et(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Bs(h))}),Et(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Bs(h))}),Et(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Bs(h))}),Et(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Bs(h))})})})}computeLookaheadFunc(t,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:t,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=Hk(this.fullRuleNameToShort[t.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(t,r){let n=this.getLastExplicitRuleShortName();return Hk(n,t,r)}getLaFuncFromCache(t){return this.lookAheadFuncsCache.get(t)}setLaFuncCache(t,r){this.lookAheadFuncsCache.set(t,r)}},IM=class extends ss{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(t){this.dslMethods.option.push(t)}visitRepetitionWithSeparator(t){this.dslMethods.repetitionWithSeparator.push(t)}visitRepetitionMandatory(t){this.dslMethods.repetitionMandatory.push(t)}visitRepetitionMandatoryWithSeparator(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)}visitRepetition(t){this.dslMethods.repetition.push(t)}visitAlternation(t){this.dslMethods.alternation.push(t)}},Yk=new IM;o(JBt,"collectMethods")});function BM(e,t){isNaN(e.startOffset)===!0?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset{"use strict";o(BM,"setNodeLocationOnlyOffset");o(FM,"setNodeLocationFull");o(oot,"addTerminalToCst");o(lot,"addNoneTerminalToCst")});function zM(e,t){Object.defineProperty(e,tFt,{enumerable:!1,configurable:!0,writable:!1,value:t})}var tFt,uot=R(()=>{"use strict";tFt="name";o(zM,"defineNameProp")});function eFt(e,t){let r=$r(e),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=t,r}function fot(e,t,r){let n=o(function(){},"derivedConstructor");zM(n,e+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Et(t,a=>{i[a]=eFt}),n.prototype=i,n.prototype.constructor=n,n}function rFt(e,t){return nFt(e,t)}function nFt(e,t){let r=Yr(t,i=>Si(e[i])===!1),n=Xt(r,i=>({msg:`Missing visitor method: <${i}> on ${e.constructor.name} CST Visitor.`,type:$M.MISSING_METHOD,methodName:i}));return Dc(n)}var $M,dot=R(()=>{"use strict";Ve();uot();o(eFt,"defaultVisit");o(hot,"createBaseSemanticVisitorConstructor");o(fot,"createBaseVisitorConstructorWithDefaults");(function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"})($M||($M={}));o(rFt,"validateVisitor");o(nFt,"validateMissingCstMethods")});var Qk,pot=R(()=>{"use strict";cot();Ve();dot();Fs();Qk=class{static{o(this,"TreeBuilder")}initTreeBuilder(t){if(this.CST_STACK=[],this.outputCst=t.outputCst,this.nodeLocationTracking=jt(t,"nodeLocationTracking")?t.nodeLocationTracking:ls.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ei,this.cstFinallyStateUpdate=ei,this.cstPostTerminal=ei,this.cstPostNonTerminal=ei,this.cstPostRule=ei;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=FM,this.setNodeLocationFromNode=FM,this.cstPostRule=ei,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ei,this.setNodeLocationFromNode=ei,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=BM,this.setNodeLocationFromNode=BM,this.cstPostRule=ei,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ei,this.setNodeLocationFromNode=ei,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ei,this.setNodeLocationFromNode=ei,this.cstPostRule=ei,this.setInitialNodeLocation=ei;else throw Error(`Invalid config option: "${t.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(t){t.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(t){t.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(t){t.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(t){let r=this.LA(1);t.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(t){let r={name:t,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(t){let r=this.LA(0),n=t.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(t){let r=this.LA(0),n=t.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(t,r){let n=this.CST_STACK[this.CST_STACK.length-1];oot(n,r,t),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(t,r){let n=this.CST_STACK[this.CST_STACK.length-1];lot(n,r,t),this.setNodeLocationFromNode(n.location,t.location)}getBaseCstVisitorConstructor(){if(fr(this.baseCstVisitorConstructor)){let t=hot(this.className,$r(this.gastProductionsCache));return this.baseCstVisitorConstructor=t,t}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(fr(this.baseCstVisitorWithDefaultsConstructor)){let t=fot(this.className,$r(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=t,t}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let t=this.RULE_STACK;return t[t.length-1]}getPreviousExplicitRuleShortName(){let t=this.RULE_STACK;return t[t.length-2]}getLastExplicitRuleOccurrenceIndex(){let t=this.RULE_OCCURRENCE_STACK;return t[t.length-1]}}});var Zk,mot=R(()=>{"use strict";Fs();Zk=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(t){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=t,this.tokVectorLength=t.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):wg}LA(t){let r=this.currIdx+t;return r<0||this.tokVectorLength<=r?wg:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(t){this.currIdx=t}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var Jk,got=R(()=>{"use strict";Ve();bg();Fs();pg();P2();os();Jk=class{static{o(this,"RecognizerApi")}ACTION(t){return t.call(this)}consume(t,r,n){return this.consumeInternal(r,t,n)}subrule(t,r,n){return this.subruleInternal(r,t,n)}option(t,r){return this.optionInternal(r,t)}or(t,r){return this.orInternal(r,t)}many(t,r){return this.manyInternal(t,r)}atLeastOne(t,r){return this.atLeastOneInternal(t,r)}CONSUME(t,r){return this.consumeInternal(t,0,r)}CONSUME1(t,r){return this.consumeInternal(t,1,r)}CONSUME2(t,r){return this.consumeInternal(t,2,r)}CONSUME3(t,r){return this.consumeInternal(t,3,r)}CONSUME4(t,r){return this.consumeInternal(t,4,r)}CONSUME5(t,r){return this.consumeInternal(t,5,r)}CONSUME6(t,r){return this.consumeInternal(t,6,r)}CONSUME7(t,r){return this.consumeInternal(t,7,r)}CONSUME8(t,r){return this.consumeInternal(t,8,r)}CONSUME9(t,r){return this.consumeInternal(t,9,r)}SUBRULE(t,r){return this.subruleInternal(t,0,r)}SUBRULE1(t,r){return this.subruleInternal(t,1,r)}SUBRULE2(t,r){return this.subruleInternal(t,2,r)}SUBRULE3(t,r){return this.subruleInternal(t,3,r)}SUBRULE4(t,r){return this.subruleInternal(t,4,r)}SUBRULE5(t,r){return this.subruleInternal(t,5,r)}SUBRULE6(t,r){return this.subruleInternal(t,6,r)}SUBRULE7(t,r){return this.subruleInternal(t,7,r)}SUBRULE8(t,r){return this.subruleInternal(t,8,r)}SUBRULE9(t,r){return this.subruleInternal(t,9,r)}OPTION(t){return this.optionInternal(t,0)}OPTION1(t){return this.optionInternal(t,1)}OPTION2(t){return this.optionInternal(t,2)}OPTION3(t){return this.optionInternal(t,3)}OPTION4(t){return this.optionInternal(t,4)}OPTION5(t){return this.optionInternal(t,5)}OPTION6(t){return this.optionInternal(t,6)}OPTION7(t){return this.optionInternal(t,7)}OPTION8(t){return this.optionInternal(t,8)}OPTION9(t){return this.optionInternal(t,9)}OR(t){return this.orInternal(t,0)}OR1(t){return this.orInternal(t,1)}OR2(t){return this.orInternal(t,2)}OR3(t){return this.orInternal(t,3)}OR4(t){return this.orInternal(t,4)}OR5(t){return this.orInternal(t,5)}OR6(t){return this.orInternal(t,6)}OR7(t){return this.orInternal(t,7)}OR8(t){return this.orInternal(t,8)}OR9(t){return this.orInternal(t,9)}MANY(t){this.manyInternal(0,t)}MANY1(t){this.manyInternal(1,t)}MANY2(t){this.manyInternal(2,t)}MANY3(t){this.manyInternal(3,t)}MANY4(t){this.manyInternal(4,t)}MANY5(t){this.manyInternal(5,t)}MANY6(t){this.manyInternal(6,t)}MANY7(t){this.manyInternal(7,t)}MANY8(t){this.manyInternal(8,t)}MANY9(t){this.manyInternal(9,t)}MANY_SEP(t){this.manySepFirstInternal(0,t)}MANY_SEP1(t){this.manySepFirstInternal(1,t)}MANY_SEP2(t){this.manySepFirstInternal(2,t)}MANY_SEP3(t){this.manySepFirstInternal(3,t)}MANY_SEP4(t){this.manySepFirstInternal(4,t)}MANY_SEP5(t){this.manySepFirstInternal(5,t)}MANY_SEP6(t){this.manySepFirstInternal(6,t)}MANY_SEP7(t){this.manySepFirstInternal(7,t)}MANY_SEP8(t){this.manySepFirstInternal(8,t)}MANY_SEP9(t){this.manySepFirstInternal(9,t)}AT_LEAST_ONE(t){this.atLeastOneInternal(0,t)}AT_LEAST_ONE1(t){return this.atLeastOneInternal(1,t)}AT_LEAST_ONE2(t){this.atLeastOneInternal(2,t)}AT_LEAST_ONE3(t){this.atLeastOneInternal(3,t)}AT_LEAST_ONE4(t){this.atLeastOneInternal(4,t)}AT_LEAST_ONE5(t){this.atLeastOneInternal(5,t)}AT_LEAST_ONE6(t){this.atLeastOneInternal(6,t)}AT_LEAST_ONE7(t){this.atLeastOneInternal(7,t)}AT_LEAST_ONE8(t){this.atLeastOneInternal(8,t)}AT_LEAST_ONE9(t){this.atLeastOneInternal(9,t)}AT_LEAST_ONE_SEP(t){this.atLeastOneSepFirstInternal(0,t)}AT_LEAST_ONE_SEP1(t){this.atLeastOneSepFirstInternal(1,t)}AT_LEAST_ONE_SEP2(t){this.atLeastOneSepFirstInternal(2,t)}AT_LEAST_ONE_SEP3(t){this.atLeastOneSepFirstInternal(3,t)}AT_LEAST_ONE_SEP4(t){this.atLeastOneSepFirstInternal(4,t)}AT_LEAST_ONE_SEP5(t){this.atLeastOneSepFirstInternal(5,t)}AT_LEAST_ONE_SEP6(t){this.atLeastOneSepFirstInternal(6,t)}AT_LEAST_ONE_SEP7(t){this.atLeastOneSepFirstInternal(7,t)}AT_LEAST_ONE_SEP8(t){this.atLeastOneSepFirstInternal(8,t)}AT_LEAST_ONE_SEP9(t){this.atLeastOneSepFirstInternal(9,t)}RULE(t,r,n=Tg){if(Wn(this.definedRulesNames,t)){let s={message:$l.buildDuplicateRuleNameError({topLevelRule:t,grammarName:this.className}),type:Gi.DUPLICATE_RULE_NAME,ruleName:t};this.definitionErrors.push(s)}this.definedRulesNames.push(t);let i=this.defineRule(t,r,n);return this[t]=i,i}OVERRIDE_RULE(t,r,n=Tg){let i=Xst(t,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(t,r,n);return this[t]=a,a}BACKTRACK(t,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return t.apply(this,r),!0}catch(i){if(cf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return kk(gr(this.gastProductionsCache))}}});var tE,yot=R(()=>{"use strict";Ve();Wk();bg();vg();M2();Fs();NM();p0();f0();tE=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(t,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=dg,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},jt(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(Le(t)){if(cr(t))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof t[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(Le(t))this.tokensMap=qr(t,(a,s)=>(a[s.name]=s,a),{});else if(jt(t,"modes")&&za(Wr(gr(t.modes)),Cst)){let a=Wr(gr(t.modes)),s=Qm(a);this.tokensMap=qr(s,(l,u)=>(l[u.name]=u,l),{})}else if(xn(t))this.tokensMap=rn(t);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=po;let n=jt(t,"modes")?Wr(gr(t.modes)):gr(t),i=za(n,a=>cr(a.categoryMatches));this.tokenMatcher=i?dg:Vu,Uu(gr(this.tokensMap))}defineRule(t,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${t}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=jt(n,"resyncEnabled")?n.resyncEnabled:Tg.resyncEnabled,a=jt(n,"recoveryValueFunc")?n.recoveryValueFunc:Tg.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=t,this.fullRuleNameToShort[t]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,t,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,t,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:t,originalGrammarAction:r})}invokeRuleCatch(t,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(cf(t)){let s=t;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(t);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(t);throw s}}else throw t}optionInternal(t,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(t,r,n)}optionInternalLogic(t,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof t!="function"){a=t.DEF;let s=t.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=t;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(t,r){let n=this.getKeyForAutomaticLookahead(1024,t);return this.atLeastOneInternalLogic(t,r,n)}atLeastOneInternalLogic(t,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(t,Xn.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[t,r],i,1024,t,Pk)}atLeastOneSepFirstInternal(t,r){let n=this.getKeyForAutomaticLookahead(1536,t);this.atLeastOneSepFirstInternalLogic(t,r,n)}atLeastOneSepFirstInternalLogic(t,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,a,l,i,N2],l,1536,t,N2)}else throw this.raiseEarlyExitException(t,Xn.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(t,r){let n=this.getKeyForAutomaticLookahead(768,t);return this.manyInternalLogic(t,r,n)}manyInternalLogic(t,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[t,r],i,768,t,Ok,s)}manySepFirstInternal(t,r){let n=this.getKeyForAutomaticLookahead(1280,t);this.manySepFirstInternalLogic(t,r,n)}manySepFirstInternalLogic(t,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,a,l,i,R2],l,1280,t,R2)}}repetitionSepSecondInternal(t,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,r,n,i,a],n,1536,t,a)}doSingleRepetition(t){let r=this.getLexerPosition();return t.call(this),this.getLexerPosition()>r}orInternal(t,r){let n=this.getKeyForAutomaticLookahead(256,r),i=Le(t)?t:t.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,t.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let t=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:t,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new F2(r,t))}}subruleInternal(t,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=t.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:t.ruleName),i}catch(a){throw this.subruleInternalError(a,n,t.ruleName)}}subruleInternalError(t,r,n){throw cf(t)&&t.partialCstResult!==void 0&&(this.cstPostNonTerminal(t.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete t.partialCstResult),t}consumeInternal(t,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,t)===!0?(this.consumeToken(),i=a):this.consumeInternalError(t,a,n)}catch(a){i=this.consumeInternalRecovery(t,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:t.name,i),i}consumeInternalError(t,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:t,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new m0(i,r,a))}consumeInternalRecovery(t,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(t,r);try{return this.tryInRuleRecovery(t,i)}catch(a){throw a.name===RM?n:a}}else throw n}saveRecogState(){let t=this.errors,r=rn(this.RULE_STACK);return{errors:t,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(t){this.errors=t.errors,this.importLexerState(t.lexerState),this.RULE_STACK=t.RULE_STACK}ruleInvocationStateUpdate(t,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(t),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let t=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[t]}shortRuleNameToFullName(t){return this.shortRuleNameToFull[t]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),po)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var eE,vot=R(()=>{"use strict";bg();Ve();vg();Fs();eE=class{static{o(this,"ErrorHandler")}initErrorHandler(t){this._errors=[],this.errorMessageProvider=jt(t,"errorMessageProvider")?t.errorMessageProvider:ls.errorMessageProvider}SAVE_ERROR(t){if(cf(t))return t.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:rn(this.RULE_OCCURRENCE_STACK)},this._errors.push(t),t;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return rn(this._errors)}set errors(t){this._errors=t}raiseEarlyExitException(t,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=yg(t,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new z2(h,this.LA(1),this.LA(0)))}raiseNoAltException(t,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=gg(t,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new B2(u,this.LA(1),l))}}});var rE,xot=R(()=>{"use strict";M2();Ve();rE=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(t,r){let n=this.gastProductionsCache[t];if(fr(n))throw Error(`Rule ->${t}<- does not exist in this grammar.`);return Fk([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(t){let r=aa(t.ruleStack),i=this.getGAstProductions()[r];return new Ik(i,t).startWalking()}}});function G2(e,t,r,n=!1){iE(r);let i=xa(this.recordingProdStack),a=Si(t)?t:t.DEF,s=new e({definition:[],idx:r});return n&&(s.separator=t.SEP),jt(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),aE}function sFt(e,t){iE(t);let r=xa(this.recordingProdStack),n=Le(e)===!1,i=n===!1?e:e.DEF,a=new wn({definition:[],idx:t,ignoreAmbiguities:n&&e.IGNORE_AMBIGUITIES===!0});jt(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD);let s=r2(i,l=>Si(l.GATE));return a.hasPredicates=s,r.definition.push(a),Et(i,l=>{let u=new Ln({definition:[]});a.definition.push(u),jt(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:jt(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),aE}function Tot(e){return e===0?"":`${e}`}function iE(e){if(e<0||e>wot){let t=new Error(`Invalid DSL Method idx value: <${e}> + Idx value must be a none negative value smaller than ${wot+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}var aE,bot,wot,kot,Eot,aFt,nE,Cot=R(()=>{"use strict";Ve();os();_2();f0();p0();Fs();Wk();aE={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(aE);bot=!0,wot=Math.pow(2,8)-1,kot=Mk({name:"RECORDING_PHASE_TOKEN",pattern:li.NA});Uu([kot]);Eot=d0(kot,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Eot);aFt={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},nE=class{static{o(this,"GastRecorder")}initGastRecorder(t){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let t=0;t<10;t++){let r=t>0?t:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,t,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,t,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,t)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,t)},this[`MANY${r}`]=function(n){this.manyInternalRecord(t,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(t,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(t,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(t,n)}}this.consume=function(t,r,n){return this.consumeInternalRecord(r,t,n)},this.subrule=function(t,r,n){return this.subruleInternalRecord(r,t,n)},this.option=function(t,r){return this.optionInternalRecord(r,t)},this.or=function(t,r){return this.orInternalRecord(r,t)},this.many=function(t,r){this.manyInternalRecord(t,r)},this.atLeastOne=function(t,r){this.atLeastOneInternalRecord(t,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let t=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete t[`CONSUME${n}`],delete t[`SUBRULE${n}`],delete t[`OPTION${n}`],delete t[`OR${n}`],delete t[`MANY${n}`],delete t[`MANY_SEP${n}`],delete t[`AT_LEAST_ONE${n}`],delete t[`AT_LEAST_ONE_SEP${n}`]}delete t.consume,delete t.subrule,delete t.option,delete t.or,delete t.many,delete t.atLeastOne,delete t.ACTION,delete t.BACKTRACK,delete t.LA})}ACTION_RECORD(t){}BACKTRACK_RECORD(t,r){return()=>!0}LA_RECORD(t){return wg}topLevelRuleRecord(t,r){try{let n=new as({definition:[],name:t});return n.name=t,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(t,r){return G2.call(this,an,t,r)}atLeastOneInternalRecord(t,r){G2.call(this,Dn,r,t)}atLeastOneSepFirstInternalRecord(t,r){G2.call(this,Rn,r,t,bot)}manyInternalRecord(t,r){G2.call(this,Lr,r,t)}manySepFirstInternalRecord(t,r){G2.call(this,bn,r,t,bot)}orInternalRecord(t,r){return sFt.call(this,t,r)}subruleInternalRecord(t,r,n){if(iE(r),!t||jt(t,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(t)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=xa(this.recordingProdStack),a=t.ruleName,s=new nn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?aFt:aE}consumeInternalRecord(t,r,n){if(iE(r),!vM(t)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(t)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=xa(this.recordingProdStack),a=new br({idx:r,terminalType:t,label:n?.LABEL});return i.definition.push(a),Eot}};o(G2,"recordProd");o(sFt,"recordOrProd");o(Tot,"getIdxSuffix");o(iE,"assertMethodIdxIsValid")});var sE,Sot=R(()=>{"use strict";Ve();lg();Fs();sE=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(t){if(jt(t,"traceInitPerf")){let r=t.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=ls.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(t,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${t}>`);let{time:i,value:a}=C2(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Aot(e,t){t.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(e.prototype,i,a):e.prototype[i]=r.prototype[i]})})}var _ot=R(()=>{"use strict";o(Aot,"applyMixins")});function oE(e=void 0){return function(){return e}}var wg,ls,Tg,Gi,V2,U2,Fs=R(()=>{"use strict";Ve();lg();ist();p0();pg();tot();NM();sot();pot();mot();got();yot();vot();xot();Cot();Sot();_ot();P2();wg=d0(po,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(wg);ls=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Wu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Tg=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(Gi||(Gi={}));o(oE,"EMPTY_ALT");V2=class e{static{o(this,"Parser")}static performSelfAnalysis(t){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let t;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{S2(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Et(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=Zst({rules:gr(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(cr(n)&&this.skipValidations===!1){let i=Jst({rules:gr(this.gastProductionsCache),tokenTypes:gr(this.tokensMap),errMsgProvider:$l,grammarName:r}),a=Wst({lookaheadStrategy:this.lookaheadStrategy,rules:gr(this.gastProductionsCache),tokenTypes:gr(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),cr(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=nst(gr(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:gr(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(gr(this.gastProductionsCache))})),!e.DEFER_DEFINITION_ERRORS_HANDLING&&!cr(this.definitionErrors))throw t=Xt(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${t.join(` +------------------------------- +`)}`)})}constructor(t,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(t,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),jt(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=jt(r,"skipValidations")?r.skipValidations:ls.skipValidations}};V2.DEFER_DEFINITION_ERRORS_HANDLING=!1;Aot(V2,[Uk,qk,Qk,Zk,tE,Jk,eE,rE,nE,sE]);U2=class extends V2{static{o(this,"EmbeddedActionsParser")}constructor(t,r=ls){let n=rn(r);n.outputCst=!1,super(t,n)}}});var Lot=R(()=>{"use strict";os()});var Dot=R(()=>{"use strict"});var Rot=R(()=>{"use strict";Lot();Dot()});var Not=R(()=>{"use strict";sM()});var g0=R(()=>{"use strict";sM();Fs();_2();p0();vg();MM();pg();bg();bM();os();os();Rot();Not()});function y0(e,t,r){return`${e.name}_${t}_${r}`}function Pot(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};dFt(t,e);let r=e.length;for(let n=0;nBot(e,t,s));return Sg(e,t,n,r,...i)}function xFt(e,t,r){let n=sa(e,t,r,{type:uf});hf(e,n);let i=Sg(e,t,n,r,v0(e,t,r));return bFt(e,t,r,i)}function v0(e,t,r){let n=Yr(Xt(r.definition,i=>Bot(e,t,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:TFt(e,n)}function Fot(e,t,r,n,i){let a=n.left,s=n.right,l=sa(e,t,r,{type:fFt});hf(e,l);let u=sa(e,t,r,{type:Oot});return a.loopback=l,u.loopback=l,e.decisionMap[y0(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,_i(s,l),i===void 0?(_i(l,a),_i(l,u)):(_i(l,u),_i(l,i.left),_i(i.right,a)),{left:a,right:u}}function zot(e,t,r,n,i){let a=n.left,s=n.right,l=sa(e,t,r,{type:hFt});hf(e,l);let u=sa(e,t,r,{type:Oot}),h=sa(e,t,r,{type:uFt});return l.loopback=h,u.loopback=h,_i(l,a),_i(l,u),_i(s,h),i!==void 0?(_i(h,u),_i(h,i.left),_i(i.right,a)):_i(h,l),e.decisionMap[y0(t,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function bFt(e,t,r,n){let i=n.left,a=n.right;return _i(i,a),e.decisionMap[y0(t,"Option",r.idx)]=i,n}function hf(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function Sg(e,t,r,n,...i){let a=sa(e,t,n,{type:cFt,start:r});r.end=a;for(let l of i)l!==void 0?(_i(r,l.left),_i(l.right,a)):_i(r,a);let s={left:r,right:a};return e.decisionMap[y0(t,wFt(n),n.idx)]=r,s}function wFt(e){if(e instanceof wn)return"Alternation";if(e instanceof an)return"Option";if(e instanceof Lr)return"Repetition";if(e instanceof bn)return"RepetitionWithSeparator";if(e instanceof Dn)return"RepetitionMandatory";if(e instanceof Rn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function TFt(e,t){let r=t.length;for(let a=0;a{"use strict";Xm();ID();g0();o(y0,"buildATNKey");uf=1,lFt=2,Mot=4,Iot=5,Cg=7,cFt=8,uFt=9,hFt=10,fFt=11,Oot=12,H2=class{static{o(this,"AbstractTransition")}constructor(t){this.target=t}isEpsilon(){return!1}},kg=class extends H2{static{o(this,"AtomTransition")}constructor(t,r){super(t),this.tokenType=r}},W2=class extends H2{static{o(this,"EpsilonTransition")}constructor(t){super(t)}isEpsilon(){return!0}},Eg=class extends H2{static{o(this,"RuleTransition")}constructor(t,r,n){super(t),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(Pot,"createATN");o(dFt,"createRuleStartAndStopATNStates");o(Bot,"atom");o(pFt,"repetition");o(mFt,"repetitionSep");o(gFt,"repetitionMandatory");o(yFt,"repetitionMandatorySep");o(vFt,"alternation");o(xFt,"option");o(v0,"block");o(Fot,"plus");o(zot,"star");o(bFt,"optional");o(hf,"defineDecisionState");o(Sg,"makeAlts");o(wFt,"getProdType");o(TFt,"makeBlock");o(VM,"tokenRef");o(kFt,"ruleRef");o(EFt,"buildRuleHandle");o(_i,"epsilon");o(sa,"newState");o(UM,"addTransition");o(CFt,"removeState")});function HM(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(r=>r.stateNumber.toString()).join("_")}`}var Y2,Ag,Got=R(()=>{"use strict";Xm();Y2={},Ag=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(t){let r=HM(t);r in this.map||(this.map[r]=this.configs.length,this.configs.push(t))}get elements(){return this.configs}get alts(){return Xt(this.configs,t=>t.alt)}get key(){let t="";for(let r in this.map)t+=r+":";return t}};o(HM,"getATNConfigKey")});function SFt(e,t){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:e,decision:t,states:{}},r[i]=a),a}}function Uot(e,t=!0){let r=new Set;for(let n of e){let i=new Set;for(let a of n){if(a===void 0){if(t)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function AFt(e){let t=e.decisionStates.length,r=Array(t);for(let n=0;nHu(i)).join(", "),r=e.production.idx===0?"":e.production.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${NFt(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function NFt(e){if(e instanceof nn)return"SUBRULE";if(e instanceof an)return"OPTION";if(e instanceof wn)return"OR";if(e instanceof Dn)return"AT_LEAST_ONE";if(e instanceof Rn)return"AT_LEAST_ONE_SEP";if(e instanceof bn)return"MANY_SEP";if(e instanceof Lr)return"MANY";if(e instanceof br)return"CONSUME";throw Error("non exhaustive match")}function MFt(e,t,r){let n=ba(t.configs.elements,a=>a.state.transitions),i=Zrt(n.filter(a=>a instanceof kg).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:e}}function IFt(e,t){return e.edges[t.tokenTypeIdx]}function OFt(e,t,r){let n=new Ag,i=[];for(let s of e.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===Cg){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!$Ft(a))for(let s of i)a.add(s);return a}function PFt(e,t){if(e instanceof kg&&D2(t,e.tokenType))return e.target}function BFt(e,t){let r;for(let n of e.elements)if(t.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function Wot(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Hot(e,t,r,n){return n=Yot(e,n),t.edges[r.tokenTypeIdx]=n,n}function Yot(e,t){if(t===Y2)return t;let r=t.configs.key,n=e.states[r];return n!==void 0?n:(t.configs.finalize(),e.states[r]=t,t)}function FFt(e){let t=new Ag,r=e.transitions.length;for(let n=0;n0){let i=[...e.stack],s={state:i.pop(),alt:e.alt,stack:i};cE(s,t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function WFt(e){for(let t of Array.from(e.values()))if(Object.keys(t).length===1)return!0;return!1}var lE,Vot,q2,qot=R(()=>{"use strict";g0();$ot();Got();VD();PD();Jrt();Xm();nT();NT();BT();YD();o(SFt,"createDFACache");lE=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(t){return t>=this.predicates.length||this.predicates[t]}set(t,r){this.predicates[t]=r}toString(){let t="",r=this.predicates.length;for(let n=0;nconsole.log(n)}initialize(t){this.atn=Pot(t.rules),this.dfas=AFt(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(t){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=t,s=this.dfas,l=this.logging,u=y0(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=Xt($k({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>Xt(p,m=>m[0]));if(Uot(d,!1)&&!a){let p=qr(d,(m,g,y)=>(Et(g,v=>{v&&(m[v.tokenTypeIdx]=y,Et(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new lE,g=p===void 0?0:p.length;for(let v=0;vXt(p,m=>m[0]));if(Uot(d)&&d[0][0]&&!a){let p=d[0],m=Wr(p);if(m.length===1&&cr(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=qr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Et(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=WM.call(this,s,f,Vot,l);return typeof p=="object"?!1:p===0}}};o(Uot,"isLL1Sequence");o(AFt,"initATNSimulator");o(WM,"adaptivePredict");o(_Ft,"performLookahead");o(LFt,"computeLookaheadTarget");o(DFt,"reportLookaheadAmbiguity");o(RFt,"buildAmbiguityError");o(NFt,"getProductionDslName");o(MFt,"buildAdaptivePredictError");o(IFt,"getExistingTargetState");o(OFt,"computeReachSet");o(PFt,"getReachableTarget");o(BFt,"getUniqueAlt");o(Wot,"newDFAState");o(Hot,"addDFAEdge");o(Yot,"addDFAState");o(FFt,"computeStartState");o(cE,"closure");o(zFt,"getEpsilonTarget");o($Ft,"hasConfigInRuleStopState");o(GFt,"allConfigsInRuleStopStates");o(VFt,"hasConflictTerminatingPrediction");o(UFt,"getConflictingAltSets");o(HFt,"hasConflictingAltSet");o(WFt,"hasStateAssociatedWithOneAlt")});var Xot=R(()=>{"use strict";qot()});var jot,YM,Kot,uE,Xr,Dr,hE,Qot,qM,Zot,Jot,tlt,elt,XM,rlt,nlt,ilt,fE,_g,Lg,jM,Dg,alt,KM,QM,ZM,JM,tI,slt,olt,eI,llt,rI,X2,clt,ult,hlt,flt,dlt,plt,mlt,glt,dE,ylt,vlt,xlt,blt,wlt,Tlt,klt,Elt,Clt,Slt,Alt,pE,_lt,Llt,Dlt,Rlt,Nlt,Mlt,Ilt,Olt,Plt,Blt,Flt,zlt,$lt,nI,iI,Glt,Vlt,Ult,Hlt,Wlt,Ylt,qlt,Xlt,jlt,aI,Ft,sI=R(()=>{"use strict";(function(e){function t(r){return typeof r=="string"}o(t,"is"),e.is=t})(jot||(jot={}));(function(e){function t(r){return typeof r=="string"}o(t,"is"),e.is=t})(YM||(YM={}));(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}o(t,"is"),e.is=t})(Kot||(Kot={}));(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}o(t,"is"),e.is=t})(uE||(uE={}));(function(e){function t(n,i){return n===Number.MAX_VALUE&&(n=uE.MAX_VALUE),i===Number.MAX_VALUE&&(i=uE.MAX_VALUE),{line:n,character:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Ft.uinteger(i.line)&&Ft.uinteger(i.character)}o(r,"is"),e.is=r})(Xr||(Xr={}));(function(e){function t(n,i,a,s){if(Ft.uinteger(n)&&Ft.uinteger(i)&&Ft.uinteger(a)&&Ft.uinteger(s))return{start:Xr.create(n,i),end:Xr.create(a,s)};if(Xr.is(n)&&Xr.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Xr.is(i.start)&&Xr.is(i.end)}o(r,"is"),e.is=r})(Dr||(Dr={}));(function(e){function t(n,i){return{uri:n,range:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Dr.is(i.range)&&(Ft.string(i.uri)||Ft.undefined(i.uri))}o(r,"is"),e.is=r})(hE||(hE={}));(function(e){function t(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Dr.is(i.targetRange)&&Ft.string(i.targetUri)&&Dr.is(i.targetSelectionRange)&&(Dr.is(i.originSelectionRange)||Ft.undefined(i.originSelectionRange))}o(r,"is"),e.is=r})(Qot||(Qot={}));(function(e){function t(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Ft.numberRange(i.red,0,1)&&Ft.numberRange(i.green,0,1)&&Ft.numberRange(i.blue,0,1)&&Ft.numberRange(i.alpha,0,1)}o(r,"is"),e.is=r})(qM||(qM={}));(function(e){function t(n,i){return{range:n,color:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Dr.is(i.range)&&qM.is(i.color)}o(r,"is"),e.is=r})(Zot||(Zot={}));(function(e){function t(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Ft.string(i.label)&&(Ft.undefined(i.textEdit)||Lg.is(i))&&(Ft.undefined(i.additionalTextEdits)||Ft.typedArray(i.additionalTextEdits,Lg.is))}o(r,"is"),e.is=r})(Jot||(Jot={}));(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(tlt||(tlt={}));(function(e){function t(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Ft.defined(a)&&(h.startCharacter=a),Ft.defined(s)&&(h.endCharacter=s),Ft.defined(l)&&(h.kind=l),Ft.defined(u)&&(h.collapsedText=u),h}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Ft.uinteger(i.startLine)&&Ft.uinteger(i.startLine)&&(Ft.undefined(i.startCharacter)||Ft.uinteger(i.startCharacter))&&(Ft.undefined(i.endCharacter)||Ft.uinteger(i.endCharacter))&&(Ft.undefined(i.kind)||Ft.string(i.kind))}o(r,"is"),e.is=r})(elt||(elt={}));(function(e){function t(n,i){return{location:n,message:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&hE.is(i.location)&&Ft.string(i.message)}o(r,"is"),e.is=r})(XM||(XM={}));(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(rlt||(rlt={}));(function(e){e.Unnecessary=1,e.Deprecated=2})(nlt||(nlt={}));(function(e){function t(r){let n=r;return Ft.objectLiteral(n)&&Ft.string(n.href)}o(t,"is"),e.is=t})(ilt||(ilt={}));(function(e){function t(n,i,a,s,l,u){let h={range:n,message:i};return Ft.defined(a)&&(h.severity=a),Ft.defined(s)&&(h.code=s),Ft.defined(l)&&(h.source=l),Ft.defined(u)&&(h.relatedInformation=u),h}o(t,"create"),e.create=t;function r(n){var i;let a=n;return Ft.defined(a)&&Dr.is(a.range)&&Ft.string(a.message)&&(Ft.number(a.severity)||Ft.undefined(a.severity))&&(Ft.integer(a.code)||Ft.string(a.code)||Ft.undefined(a.code))&&(Ft.undefined(a.codeDescription)||Ft.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Ft.string(a.source)||Ft.undefined(a.source))&&(Ft.undefined(a.relatedInformation)||Ft.typedArray(a.relatedInformation,XM.is))}o(r,"is"),e.is=r})(fE||(fE={}));(function(e){function t(n,i,...a){let s={title:n,command:i};return Ft.defined(a)&&a.length>0&&(s.arguments=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.string(i.title)&&Ft.string(i.command)}o(r,"is"),e.is=r})(_g||(_g={}));(function(e){function t(a,s){return{range:a,newText:s}}o(t,"replace"),e.replace=t;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),e.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),e.del=n;function i(a){let s=a;return Ft.objectLiteral(s)&&Ft.string(s.newText)&&Dr.is(s.range)}o(i,"is"),e.is=i})(Lg||(Lg={}));(function(e){function t(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Ft.string(i.label)&&(Ft.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Ft.string(i.description)||i.description===void 0)}o(r,"is"),e.is=r})(jM||(jM={}));(function(e){function t(r){let n=r;return Ft.string(n)}o(t,"is"),e.is=t})(Dg||(Dg={}));(function(e){function t(a,s,l){return{range:a,newText:s,annotationId:l}}o(t,"replace"),e.replace=t;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),e.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),e.del=n;function i(a){let s=a;return Lg.is(s)&&(jM.is(s.annotationId)||Dg.is(s.annotationId))}o(i,"is"),e.is=i})(alt||(alt={}));(function(e){function t(n,i){return{textDocument:n,edits:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&eI.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),e.is=r})(KM||(KM={}));(function(e){function t(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return i&&i.kind==="create"&&Ft.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Ft.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ft.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Dg.is(i.annotationId))}o(r,"is"),e.is=r})(QM||(QM={}));(function(e){function t(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(t,"create"),e.create=t;function r(n){let i=n;return i&&i.kind==="rename"&&Ft.string(i.oldUri)&&Ft.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Ft.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Ft.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||Dg.is(i.annotationId))}o(r,"is"),e.is=r})(ZM||(ZM={}));(function(e){function t(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return i&&i.kind==="delete"&&Ft.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Ft.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Ft.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||Dg.is(i.annotationId))}o(r,"is"),e.is=r})(JM||(JM={}));(function(e){function t(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Ft.string(i.kind)?QM.is(i)||ZM.is(i)||JM.is(i):KM.is(i)))}o(t,"is"),e.is=t})(tI||(tI={}));(function(e){function t(n){return{uri:n}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.string(i.uri)}o(r,"is"),e.is=r})(slt||(slt={}));(function(e){function t(n,i){return{uri:n,version:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.string(i.uri)&&Ft.integer(i.version)}o(r,"is"),e.is=r})(olt||(olt={}));(function(e){function t(n,i){return{uri:n,version:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.string(i.uri)&&(i.version===null||Ft.integer(i.version))}o(r,"is"),e.is=r})(eI||(eI={}));(function(e){function t(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.string(i.uri)&&Ft.string(i.languageId)&&Ft.integer(i.version)&&Ft.string(i.text)}o(r,"is"),e.is=r})(llt||(llt={}));(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(r){let n=r;return n===e.PlainText||n===e.Markdown}o(t,"is"),e.is=t})(rI||(rI={}));(function(e){function t(r){let n=r;return Ft.objectLiteral(r)&&rI.is(n.kind)&&Ft.string(n.value)}o(t,"is"),e.is=t})(X2||(X2={}));(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(clt||(clt={}));(function(e){e.PlainText=1,e.Snippet=2})(ult||(ult={}));(function(e){e.Deprecated=1})(hlt||(hlt={}));(function(e){function t(n,i,a){return{newText:n,insert:i,replace:a}}o(t,"create"),e.create=t;function r(n){let i=n;return i&&Ft.string(i.newText)&&Dr.is(i.insert)&&Dr.is(i.replace)}o(r,"is"),e.is=r})(flt||(flt={}));(function(e){e.asIs=1,e.adjustIndentation=2})(dlt||(dlt={}));(function(e){function t(r){let n=r;return n&&(Ft.string(n.detail)||n.detail===void 0)&&(Ft.string(n.description)||n.description===void 0)}o(t,"is"),e.is=t})(plt||(plt={}));(function(e){function t(r){return{label:r}}o(t,"create"),e.create=t})(mlt||(mlt={}));(function(e){function t(r,n){return{items:r||[],isIncomplete:!!n}}o(t,"create"),e.create=t})(glt||(glt={}));(function(e){function t(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(t,"fromPlainText"),e.fromPlainText=t;function r(n){let i=n;return Ft.string(i)||Ft.objectLiteral(i)&&Ft.string(i.language)&&Ft.string(i.value)}o(r,"is"),e.is=r})(dE||(dE={}));(function(e){function t(r){let n=r;return!!n&&Ft.objectLiteral(n)&&(X2.is(n.contents)||dE.is(n.contents)||Ft.typedArray(n.contents,dE.is))&&(r.range===void 0||Dr.is(r.range))}o(t,"is"),e.is=t})(ylt||(ylt={}));(function(e){function t(r,n){return n?{label:r,documentation:n}:{label:r}}o(t,"create"),e.create=t})(vlt||(vlt={}));(function(e){function t(r,n,...i){let a={label:r};return Ft.defined(n)&&(a.documentation=n),Ft.defined(i)?a.parameters=i:a.parameters=[],a}o(t,"create"),e.create=t})(xlt||(xlt={}));(function(e){e.Text=1,e.Read=2,e.Write=3})(blt||(blt={}));(function(e){function t(r,n){let i={range:r};return Ft.number(n)&&(i.kind=n),i}o(t,"create"),e.create=t})(wlt||(wlt={}));(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(Tlt||(Tlt={}));(function(e){e.Deprecated=1})(klt||(klt={}));(function(e){function t(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(t,"create"),e.create=t})(Elt||(Elt={}));(function(e){function t(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(t,"create"),e.create=t})(Clt||(Clt={}));(function(e){function t(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(t,"create"),e.create=t;function r(n){let i=n;return i&&Ft.string(i.name)&&Ft.number(i.kind)&&Dr.is(i.range)&&Dr.is(i.selectionRange)&&(i.detail===void 0||Ft.string(i.detail))&&(i.deprecated===void 0||Ft.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),e.is=r})(Slt||(Slt={}));(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(Alt||(Alt={}));(function(e){e.Invoked=1,e.Automatic=2})(pE||(pE={}));(function(e){function t(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.typedArray(i.diagnostics,fE.is)&&(i.only===void 0||Ft.typedArray(i.only,Ft.string))&&(i.triggerKind===void 0||i.triggerKind===pE.Invoked||i.triggerKind===pE.Automatic)}o(r,"is"),e.is=r})(_lt||(_lt={}));(function(e){function t(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):_g.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return i&&Ft.string(i.title)&&(i.diagnostics===void 0||Ft.typedArray(i.diagnostics,fE.is))&&(i.kind===void 0||Ft.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||_g.is(i.command))&&(i.isPreferred===void 0||Ft.boolean(i.isPreferred))&&(i.edit===void 0||tI.is(i.edit))}o(r,"is"),e.is=r})(Llt||(Llt={}));(function(e){function t(n,i){let a={range:n};return Ft.defined(i)&&(a.data=i),a}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Dr.is(i.range)&&(Ft.undefined(i.command)||_g.is(i.command))}o(r,"is"),e.is=r})(Dlt||(Dlt={}));(function(e){function t(n,i){return{tabSize:n,insertSpaces:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Ft.uinteger(i.tabSize)&&Ft.boolean(i.insertSpaces)}o(r,"is"),e.is=r})(Rlt||(Rlt={}));(function(e){function t(n,i,a){return{range:n,target:i,data:a}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Dr.is(i.range)&&(Ft.undefined(i.target)||Ft.string(i.target))}o(r,"is"),e.is=r})(Nlt||(Nlt={}));(function(e){function t(n,i){return{range:n,parent:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Dr.is(i.range)&&(i.parent===void 0||e.is(i.parent))}o(r,"is"),e.is=r})(Mlt||(Mlt={}));(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(Ilt||(Ilt={}));(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Olt||(Olt={}));(function(e){function t(r){let n=r;return Ft.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(t,"is"),e.is=t})(Plt||(Plt={}));(function(e){function t(n,i){return{range:n,text:i}}o(t,"create"),e.create=t;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Ft.string(i.text)}o(r,"is"),e.is=r})(Blt||(Blt={}));(function(e){function t(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(t,"create"),e.create=t;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Ft.boolean(i.caseSensitiveLookup)&&(Ft.string(i.variableName)||i.variableName===void 0)}o(r,"is"),e.is=r})(Flt||(Flt={}));(function(e){function t(n,i){return{range:n,expression:i}}o(t,"create"),e.create=t;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&(Ft.string(i.expression)||i.expression===void 0)}o(r,"is"),e.is=r})(zlt||(zlt={}));(function(e){function t(n,i){return{frameId:n,stoppedLocation:i}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.defined(i)&&Dr.is(n.stoppedLocation)}o(r,"is"),e.is=r})($lt||($lt={}));(function(e){e.Type=1,e.Parameter=2;function t(r){return r===1||r===2}o(t,"is"),e.is=t})(nI||(nI={}));(function(e){function t(n){return{value:n}}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&(i.tooltip===void 0||Ft.string(i.tooltip)||X2.is(i.tooltip))&&(i.location===void 0||hE.is(i.location))&&(i.command===void 0||_g.is(i.command))}o(r,"is"),e.is=r})(iI||(iI={}));(function(e){function t(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(t,"create"),e.create=t;function r(n){let i=n;return Ft.objectLiteral(i)&&Xr.is(i.position)&&(Ft.string(i.label)||Ft.typedArray(i.label,iI.is))&&(i.kind===void 0||nI.is(i.kind))&&i.textEdits===void 0||Ft.typedArray(i.textEdits,Lg.is)&&(i.tooltip===void 0||Ft.string(i.tooltip)||X2.is(i.tooltip))&&(i.paddingLeft===void 0||Ft.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Ft.boolean(i.paddingRight))}o(r,"is"),e.is=r})(Glt||(Glt={}));(function(e){function t(r){return{kind:"snippet",value:r}}o(t,"createSnippet"),e.createSnippet=t})(Vlt||(Vlt={}));(function(e){function t(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(t,"create"),e.create=t})(Ult||(Ult={}));(function(e){function t(r){return{items:r}}o(t,"create"),e.create=t})(Hlt||(Hlt={}));(function(e){e.Invoked=0,e.Automatic=1})(Wlt||(Wlt={}));(function(e){function t(r,n){return{range:r,text:n}}o(t,"create"),e.create=t})(Ylt||(Ylt={}));(function(e){function t(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(t,"create"),e.create=t})(qlt||(qlt={}));(function(e){function t(r){let n=r;return Ft.objectLiteral(n)&&YM.is(n.uri)&&Ft.string(n.name)}o(t,"is"),e.is=t})(Xlt||(Xlt={}));(function(e){function t(a,s,l,u){return new aI(a,s,l,u)}o(t,"create"),e.create=t;function r(a){let s=a;return!!(Ft.defined(s)&&Ft.string(s.uri)&&(Ft.undefined(s.languageId)||Ft.string(s.languageId))&&Ft.uinteger(s.lineCount)&&Ft.func(s.getText)&&Ft.func(s.positionAt)&&Ft.func(s.offsetAt))}o(r,"is"),e.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),e.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&t.push(r.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return Xr.create(0,t);for(;nt?i=s:n=s+1}let a=n-1;return Xr.create(a,t-r[a])}offsetAt(t){let r=this.getLineOffsets();if(t.line>=r.length)return this._content.length;if(t.line<0)return 0;let n=r[t.line],i=t.line+1"u"}o(n,"undefined"),e.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),e.boolean=i;function a(m){return t.call(m)==="[object String]"}o(a,"string"),e.string=a;function s(m){return t.call(m)==="[object Number]"}o(s,"number"),e.number=s;function l(m,g,y){return t.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),e.numberRange=l;function u(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),e.integer=u;function h(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),e.uinteger=h;function f(m){return t.call(m)==="[object Function]"}o(f,"func"),e.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),e.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),e.typedArray=p})(Ft||(Ft={}))});var j2,K2,x0,b0,oI,Rg,mE=R(()=>{"use strict";sI();Yo();Pl();j2=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(t){return this.rootNode=new Rg(t),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){let r=new b0;return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(t,r){let n=new x0(t.startOffset,t.image.length,tg(t),t.tokenType,!1);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(t){let r=t.container;if(r){let n=r.content.indexOf(t);n>=0&&r.content.splice(n,1)}}construct(t){let r=this.current;typeof t.$type=="string"&&(this.current.astNode=t),t.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}addHiddenTokens(t){for(let r of t){let n=new x0(r.startOffset,r.image.length,tg(r),r.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(t,r){let{offset:n,end:i}=r;for(let a=0;al&&i=0;t--){let r=this.content[t];if(!r.hidden)return r}return this.content[this.content.length-1]}},oI=class e extends Array{static{o(this,"CstNodeContainer")}constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,e.prototype)}push(...t){return this.addParents(t),super.push(...t)}unshift(...t){return this.addParents(t),super.unshift(...t)}splice(t,r,...n){return this.addParents(n),super.splice(t,r,...n)}addParents(t){for(let r of t)r.container=this.parent}},Rg=class extends b0{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(t){super(),this._text="",this._text=t??""}}});function lI(e){return e.$type===gE}var gE,Klt,Qlt,Q2,Z2,yE,Ng,J2,YFt,cI,tx=R(()=>{"use strict";g0();Xot();Oc();zl();is();mE();gE=Symbol("Datatype");o(lI,"isDataTypeNode");Klt="\u200B",Qlt=o(e=>e.endsWith(Klt)?e:e+Klt,"withRuleSuffix"),Q2=class{static{o(this,"AbstractLangiumParser")}constructor(t){this._unorderedGroups=new Map,this.lexer=t.parser.Lexer;let r=this.lexer.definition;this.wrapper=new cI(r,Object.assign(Object.assign({},t.parser.ParserConfig),{errorMessageProvider:t.parser.ParserErrorMessageProvider}))}alternatives(t,r){this.wrapper.wrapOr(t,r)}optional(t,r){this.wrapper.wrapOption(t,r)}many(t,r){this.wrapper.wrapMany(t,r)}atLeastOne(t,r){this.wrapper.wrapAtLeastOne(t,r)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Z2=class extends Q2{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(t){super(t),this.nodeBuilder=new j2,this.stack=[],this.assignmentMap=new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,r){let n=t.fragment?void 0:k2(t)?gE:l0(t),i=this.wrapper.DEFINE_RULE(Qlt(t.name),this.startImplementation(n,r).bind(this));return t.entry&&(this.mainRule=i),i}parse(t){this.nodeBuilder.buildRootNode(t);let r=this.lexer.tokenize(t);this.wrapper.input=r.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:r.errors,parserErrors:this.wrapper.errors}}startImplementation(t,r){return n=>{if(!this.isRecording()){let a={$type:t};this.stack.push(a),t===gE&&(a.value="")}let i;try{i=r(n)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(t,r,n){let i=this.wrapper.wrapConsume(t,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.nodeBuilder.buildLeafNode(i,n),{assignment:s,isCrossRef:l}=this.getAssignment(n),u=this.current;if(s){let h=Xo(n)?i.image:this.converter.convert(i.image,a);this.assign(s.operator,s.feature,h,a,l)}else if(lI(u)){let h=i.image;Xo(n)||(h=this.converter.convert(h,a).toString()),u.value+=h}}}isValidToken(t){return!t.isInsertedInRecovery&&!isNaN(t.startOffset)&&typeof t.endOffset=="number"&&!isNaN(t.endOffset)}subrule(t,r,n,i){let a;this.isRecording()||(a=this.nodeBuilder.buildCompositeNode(n));let s=this.wrapper.wrapSubrule(t,r,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(s,n,a)}performSubruleAssignment(t,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,t,n,a);else if(!i){let s=this.current;if(lI(s))s.value+=t.toString();else if(typeof t=="object"&&t){let l=t.$type,u=this.assignWithoutOverride(t,s);l&&(u.$type=l);let h=u;this.stack.pop(),this.stack.push(h)}}}action(t,r){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&r.feature&&r.operator){n=this.construct(!1);let a=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(a)}let i={$type:t};this.stack.pop(),this.stack.push(i),r.feature&&r.operator&&this.assign(r.operator,r.feature,n,n.$cstNode,!1)}}construct(t=!0){if(this.isRecording())return;let r=this.current;return mk(r),this.nodeBuilder.construct(r),t&&this.stack.pop(),lI(r)?this.converter.convert(r.value,r.$cstNode):(BN(this.astReflection,r),r)}getAssignment(t){if(!this.assignmentMap.has(t)){let r=n0(t,Bl);this.assignmentMap.set(t,{assignment:r,isCrossRef:r?r0(r.terminal):!1})}return this.assignmentMap.get(t)}assign(t,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,t){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(t,r){for(let[n,i]of Object.entries(r)){let a=t[n];a===void 0?t[n]=i:Array.isArray(a)&&Array.isArray(i)&&(i.push(...a),t[n]=i)}return t}get definitionErrors(){return this.wrapper.definitionErrors}},yE=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(t){return Wu.buildMismatchTokenMessage(t)}buildNotAllInputParsedMessage(t){return Wu.buildNotAllInputParsedMessage(t)}buildNoViableAltMessage(t){return Wu.buildNoViableAltMessage(t)}buildEarlyExitMessage(t){return Wu.buildEarlyExitMessage(t)}},Ng=class extends yE{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:t,actual:r}){return`Expecting ${t.LABEL?"`"+t.LABEL+"`":t.name.endsWith(":KW")?`keyword '${t.name.substring(0,t.name.length-3)}'`:`token of type '${t.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:t}){return`Expecting end of file but found \`${t.image}\`.`}},J2=class extends Q2{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(t){this.resetState();let r=this.lexer.tokenize(t);return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(t,r){let n=this.wrapper.DEFINE_RULE(Qlt(t.name),this.startImplementation(r).bind(this));return t.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(t){return r=>{let n=this.keepStackSize();try{t(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let t=this.elementStack.length;return this.stackSize=t,t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,r,n){this.wrapper.wrapConsume(t,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(t,r,n,i){this.before(n),this.wrapper.wrapSubrule(t,r,i),this.after(n)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(t);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},YFt={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Ng},cI=class extends U2{static{o(this,"ChevrotainWrapper")}constructor(t,r){let n=r&&"maxLookahead"in r;super(t,Object.assign(Object.assign(Object.assign({},YFt),{lookaheadStrategy:n?new Yu({maxLookahead:r.maxLookahead}):new q2}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,r){return this.RULE(t,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,r){return this.consume(t,r)}wrapSubrule(t,r,n){return this.subrule(t,r,{ARGS:[n]})}wrapOr(t,r){this.or(t,r)}wrapOption(t,r){this.option(t,r)}wrapMany(t,r){this.many(t,r)}wrapAtLeastOne(t,r){this.atLeastOne(t,r)}}});function xE(e,t,r){return qFt({parser:t,tokens:r,rules:new Map,ruleNames:new Map},e),t}function qFt(e,t){let r=w2(t,!1),n=en(t.rules).filter($a).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});a.rules.set(i.name,e.parser.rule(i,w0(a,i.definition)))}}function w0(e,t,r=!1){let n;if(Xo(t))n=tzt(e,t);else if(zu(t))n=XFt(e,t);else if(Bl(t))n=w0(e,t.terminal);else if(r0(t))n=Zlt(e,t);else if(Fl(t))n=jFt(e,t);else if(fk(t))n=QFt(e,t);else if(pk(t))n=ZFt(e,t);else if(lf(t))n=JFt(e,t);else if(yN(t)){let i=e.consume++;n=o(()=>e.parser.consume(i,po,t),"method")}else throw new e0(t.$cstNode,`Unexpected element type: ${t.$type}`);return Jlt(e,r?void 0:vE(t),n,t.cardinality)}function XFt(e,t){let r=l0(t);return()=>e.parser.action(r,t)}function jFt(e,t){let r=t.rule.ref;if($a(r)){let n=e.subrule++,i=t.arguments.length>0?KFt(r,t.arguments):()=>({});return a=>e.parser.subrule(n,tct(e,r),t,i(a))}else if(qo(r)){let n=e.consume++,i=uI(e,r.name);return()=>e.parser.consume(n,i,t)}else if(r)of(r);else throw new e0(t.$cstNode,`Undefined rule type: ${t.$type}`)}function KFt(e,t){let r=t.map(n=>qu(n.value));return n=>{let i={};for(let a=0;at(n)||r(n)}else if(UR(e)){let t=qu(e.left),r=qu(e.right);return n=>t(n)&&r(n)}else if(KR(e)){let t=qu(e.value);return r=>!t(r)}else if(tN(e)){let t=e.parameter.ref.name;return r=>r!==void 0&&r[t]===!0}else if(GR(e)){let t=!!e.true;return()=>t}of(e)}function QFt(e,t){if(t.elements.length===1)return w0(e,t.elements[0]);{let r=[];for(let i of t.elements){let a={ALT:w0(e,i,!0)},s=vE(i);s&&(a.GATE=qu(s)),r.push(a)}let n=e.or++;return i=>e.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function ZFt(e,t){if(t.elements.length===1)return w0(e,t.elements[0]);let r=[];for(let l of t.elements){let u={ALT:w0(e,l,!0)},h=vE(l);h&&(u.GATE=qu(h)),r.push(u)}let n=e.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>e.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=e.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=Jlt(e,vE(t),a,"*");return l=>{s(l),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(n,e.parser))}}function JFt(e,t){let r=t.elements.map(n=>w0(e,n));return n=>r.forEach(i=>i(n))}function vE(e){if(lf(e))return e.guardCondition}function Zlt(e,t,r=t.terminal){if(r)if(Fl(r)&&$a(r.rule.ref)){let n=e.subrule++;return i=>e.parser.subrule(n,tct(e,r.rule.ref),t,i)}else if(Fl(r)&&qo(r.rule.ref)){let n=e.consume++,i=uI(e,r.rule.ref.name);return()=>e.parser.consume(n,i,t)}else if(Xo(r)){let n=e.consume++,i=uI(e,r.value);return()=>e.parser.consume(n,i,t)}else throw new Error("Could not build cross reference parser");else{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);let n=wk(t.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+l0(t.type.ref));return Zlt(e,t,i)}}function tzt(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}function Jlt(e,t,r,n){let i=t&&qu(t);if(!n)if(i){let a=e.or++;return s=>e.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:oE(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=e.many++;return s=>e.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=e.many++;if(i){let s=e.or++;return l=>e.parser.alternatives(s,[{ALT:o(()=>e.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:oE(),GATE:o(()=>!i(l),"GATE")}])}else return s=>e.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=e.optional++;return s=>e.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else of(n)}function tct(e,t){let r=ezt(e,t),n=e.rules.get(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function ezt(e,t){if($a(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let r=t,n=r.$container,i=t.$type;for(;!$a(n);)(lf(n)||fk(n)||pk(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}function uI(e,t){let r=e.tokens[t];if(!r)throw new Error(`Token "${t}" not found."`);return r}var hI=R(()=>{"use strict";g0();Oc();ak();Ps();zl();o(xE,"createParser");o(qFt,"buildRules");o(w0,"buildElement");o(XFt,"buildAction");o(jFt,"buildRuleCall");o(KFt,"buildRuleCallPredicate");o(qu,"buildPredicate");o(QFt,"buildAlternatives");o(ZFt,"buildUnorderedGroup");o(JFt,"buildGroup");o(vE,"getGuardCondition");o(Zlt,"buildCrossReference");o(tzt,"buildKeyword");o(Jlt,"wrap");o(tct,"getRule");o(ezt,"getRuleName");o(uI,"getToken")});function fI(e){let t=e.Grammar,r=e.parser.Lexer,n=new J2(e);return xE(t,n,r.definition),n.finalize(),n}var dI=R(()=>{"use strict";tx();hI();o(fI,"createCompletionParser")});function pI(e){let t=ect(e);return t.finalize(),t}function ect(e){let t=e.Grammar,r=e.parser.Lexer,n=new Z2(e);return xE(t,n,r.definition)}var mI=R(()=>{"use strict";tx();hI();o(pI,"createLangiumParser");o(ect,"prepareLangiumParser")});var T0,gI=R(()=>{"use strict";g0();Oc();is();zl();ig();Ps();T0=class{static{o(this,"DefaultTokenBuilder")}buildTokens(t,r){let n=en(w2(t,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&xk(l)?a.unshift(s):a.push(s)}),a}buildTerminalTokens(t){return t.filter(qo).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(t){let r=ag(t),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:t.name,PATTERN:n,LINE_BREAKS:!0};return t.hidden&&(i.GROUP=xk(r)?li.SKIPPED:"hidden"),i}requiresCustomPattern(t){return t.flags.includes("u")?!0:!!(t.source.includes("?<=")||t.source.includes("?(r.lastIndex=i,r.exec(n))}buildKeywordTokens(t,r,n){return t.filter($a).flatMap(i=>Pc(i).filter(Xo)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(t,r,n){return{name:t.value,PATTERN:this.buildKeywordPattern(t,n),LONGER_ALT:this.findLongerAlt(t,r)}}buildKeywordPattern(t,r){return r?new RegExp(HN(t.value)):t.value}findLongerAlt(t,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&WN("^"+a.source+"$",t.value)&&n.push(i),n},[])}}});var k0,zc,yI=R(()=>{"use strict";Oc();zl();k0=class{static{o(this,"DefaultValueConverter")}convert(t,r){let n=r.grammarSource;if(r0(n)&&(n=XN(n)),Fl(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,t,r)}return t}runConverter(t,r,n){var i;switch(t.name.toUpperCase()){case"INT":return zc.convertInt(r);case"STRING":return zc.convertString(r);case"ID":return zc.convertID(r)}switch((i=rM(t))===null||i===void 0?void 0:i.toLowerCase()){case"number":return zc.convertNumber(r);case"boolean":return zc.convertBoolean(r);case"bigint":return zc.convertBigint(r);case"date":return zc.convertDate(r);default:return r}}};(function(e){function t(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(bI,"__esModule",{value:!0});var vI;function xI(){if(vI===void 0)throw new Error("No runtime abstraction layer installed");return vI}o(xI,"RAL");(function(e){function t(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");vI=r}o(t,"install"),e.install=t})(xI||(xI={}));bI.default=xI});var ict=Ti(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.stringArray=Ga.array=Ga.func=Ga.error=Ga.number=Ga.string=Ga.boolean=void 0;function rzt(e){return e===!0||e===!1}o(rzt,"boolean");Ga.boolean=rzt;function rct(e){return typeof e=="string"||e instanceof String}o(rct,"string");Ga.string=rct;function nzt(e){return typeof e=="number"||e instanceof Number}o(nzt,"number");Ga.number=nzt;function izt(e){return e instanceof Error}o(izt,"error");Ga.error=izt;function azt(e){return typeof e=="function"}o(azt,"func");Ga.func=azt;function nct(e){return Array.isArray(e)}o(nct,"array");Ga.array=nct;function szt(e){return nct(e)&&e.every(t=>rct(t))}o(szt,"stringArray");Ga.stringArray=szt});var kI=Ti(Mg=>{"use strict";Object.defineProperty(Mg,"__esModule",{value:!0});Mg.Emitter=Mg.Event=void 0;var ozt=wI(),act;(function(e){let t={dispose(){}};e.None=function(){return t}})(act||(Mg.Event=act={}));var TI=class{static{o(this,"CallbackList")}add(t,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(t,r),"dispose")})}remove(t,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new TI),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(t,r),i.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};Mg.Emitter=bE;bE._noop=function(){}});var sct=Ti(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.CancellationTokenSource=Ig.CancellationToken=void 0;var lzt=wI(),czt=ict(),EI=kI(),wE;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:EI.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:EI.Event.None});function t(r){let n=r;return n&&(n===e.None||n===e.Cancelled||czt.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(t,"is"),e.is=t})(wE||(Ig.CancellationToken=wE={}));var uzt=Object.freeze(function(e,t){let r=(0,lzt.default)().timer.setTimeout(e.bind(t),0);return{dispose(){r.dispose()}}}),TE=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?uzt:(this._emitter||(this._emitter=new EI.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},CI=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new TE),this._token}cancel(){this._token?this._token.cancel():this._token=wE.Cancelled}dispose(){this._token?this._token instanceof TE&&this._token.dispose():this._token=wE.None}};Ig.CancellationTokenSource=CI});var kr={};var Ko=R(()=>{"use strict";wr(kr,Qi(sct(),1))});function AI(){return new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)})}function lct(){return SI=Date.now(),new kr.CancellationTokenSource}function cct(e){oct=e}function ff(e){return e===$c}async function Vi(e){if(e===kr.CancellationToken.None)return;let t=Date.now();if(t-SI>=oct&&(SI=t,await AI()),e.isCancellationRequested)throw $c}var SI,oct,$c,cs,Qo=R(()=>{"use strict";Ko();o(AI,"delayNextTick");SI=0,oct=10;o(lct,"startCancelableOperation");o(cct,"setInterruptionPeriod");$c=Symbol("OperationCancelled");o(ff,"isOperationCancelled");o(Vi,"interruptAndCheck");cs=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((t,r)=>{this.resolve=n=>(t(n),this),this.reject=n=>(r(n),this)})}}});function _I(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),i=e.slice(r);_I(n,t),_I(i,t);let a=0,s=0,l=0;for(;ar.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function hzt(e){let t=fct(e.range);return t!==e.range?{newText:e.newText,range:t}:e}var kE,Og,dct=R(()=>{"use strict";kE=class e{static{o(this,"FullTextDocument")}constructor(t,r,n,i){this._uri=t,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let r=this.offsetAt(t.start),n=this.offsetAt(t.end);return this._content.substring(r,n)}return this._content}update(t,r){for(let n of t)if(e.isIncremental(n)){let i=fct(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=uct(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pt?i=s:n=s+1}let a=n-1;return t=this.ensureBeforeEOL(t,r[a]),{line:a,character:t-r[a]}}offsetAt(t){let r=this.getLineOffsets();if(t.line>=r.length)return this._content.length;if(t.line<0)return 0;let n=r[t.line];if(t.character<=0)return n;let i=t.line+1r&&hct(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let r=t;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(t){let r=t;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(e){function t(i,a,s,l){return new kE(i,a,s,l)}o(t,"create"),e.create=t;function r(i,a,s){if(i instanceof kE)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),e.update=r;function n(i,a){let s=i.getText(),l=_I(a.map(hzt),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),e.applyEdits=n})(Og||(Og={}));o(_I,"mergeSort");o(uct,"computeLineOffsets");o(hct,"isEOL");o(fct,"getWellformedRange");o(hzt,"getWellformedEdit")});var pct,zs,Pg,LI=R(()=>{"use strict";(()=>{"use strict";var e={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;fy){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var w="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p}(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},t={};function r(i){var a=t[i];if(a!==void 0)return a.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>M,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(N,k){if(!N.scheme&&k)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${N.authority}", path: "${N.path}", query: "${N.query}", fragment: "${N.fragment}"}`);if(N.scheme&&!a.test(N.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(N.path){if(N.authority){if(!s.test(N.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(N.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(k){return k instanceof p||!!k&&typeof k.authority=="string"&&typeof k.fragment=="string"&&typeof k.path=="string"&&typeof k.query=="string"&&typeof k.scheme=="string"&&typeof k.fsPath=="string"&&typeof k.with=="function"&&typeof k.toString=="function"}scheme;authority;path;query;fragment;constructor(k,I,C,O,D,P=!1){typeof k=="object"?(this.scheme=k.scheme||h,this.authority=k.authority||h,this.path=k.path||h,this.query=k.query||h,this.fragment=k.fragment||h):(this.scheme=function(F,B){return F||B?F:"file"}(k,P),this.authority=I||h,this.path=function(F,B){switch(F){case"https":case"http":case"file":B?B[0]!==f&&(B=f+B):B=f}return B}(this.scheme,C||h),this.query=O||h,this.fragment=D||h,u(this,P))}get fsPath(){return b(this,!1)}with(k){if(!k)return this;let{scheme:I,authority:C,path:O,query:D,fragment:P}=k;return I===void 0?I=this.scheme:I===null&&(I=h),C===void 0?C=this.authority:C===null&&(C=h),O===void 0?O=this.path:O===null&&(O=h),D===void 0?D=this.query:D===null&&(D=h),P===void 0?P=this.fragment:P===null&&(P=h),I===this.scheme&&C===this.authority&&O===this.path&&D===this.query&&P===this.fragment?this:new g(I,C,O,D,P)}static parse(k,I=!1){let C=d.exec(k);return C?new g(C[2]||h,E(C[4]||h),E(C[5]||h),E(C[7]||h),E(C[9]||h),I):new g(h,h,h,h,h)}static file(k){let I=h;if(i&&(k=k.replace(/\\/g,f)),k[0]===f&&k[1]===f){let C=k.indexOf(f,2);C===-1?(I=k.substring(2),k=f):(I=k.substring(2,C),k=k.substring(C)||f)}return new g("file",I,k,h,h)}static from(k){let I=new g(k.scheme,k.authority,k.path,k.query,k.fragment);return u(I,!0),I}toString(k=!1){return w(this,k)}toJSON(){return this}static revive(k){if(k){if(k instanceof p)return k;{let I=new g(k);return I._formatted=k.external,I._fsPath=k._sep===m?k.fsPath:null,I}}return k}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(k=!1){return k?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=m),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(N,k,I){let C,O=-1;for(let D=0;D=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||k&&P===47||I&&P===91||I&&P===93||I&&P===58)O!==-1&&(C+=encodeURIComponent(N.substring(O,D)),O=-1),C!==void 0&&(C+=N.charAt(D));else{C===void 0&&(C=N.substr(0,D));let F=y[P];F!==void 0?(O!==-1&&(C+=encodeURIComponent(N.substring(O,D)),O=-1),C+=F):O===-1&&(O=D)}}return O!==-1&&(C+=encodeURIComponent(N.substring(O))),C!==void 0?C:N}o(v,"d");function x(N){let k;for(let I=0;I1&&N.scheme==="file"?`//${N.authority}${N.path}`:N.path.charCodeAt(0)===47&&(N.path.charCodeAt(1)>=65&&N.path.charCodeAt(1)<=90||N.path.charCodeAt(1)>=97&&N.path.charCodeAt(1)<=122)&&N.path.charCodeAt(2)===58?k?N.path.substr(1):N.path[1].toLowerCase()+N.path.substr(2):N.path,i&&(I=I.replace(/\//g,"\\")),I}o(b,"m");function w(N,k){let I=k?x:v,C="",{scheme:O,authority:D,path:P,query:F,fragment:B}=N;if(O&&(C+=O,C+=":"),(D||O==="file")&&(C+=f,C+=f),D){let G=D.indexOf("@");if(G!==-1){let z=D.substr(0,G);D=D.substr(G+1),G=z.lastIndexOf(":"),G===-1?C+=I(z,!1,!1):(C+=I(z.substr(0,G),!1,!1),C+=":",C+=I(z.substr(G+1),!1,!0)),C+="@"}D=D.toLowerCase(),G=D.lastIndexOf(":"),G===-1?C+=I(D,!1,!0):(C+=I(D.substr(0,G),!1,!0),C+=D.substr(G))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let G=P.charCodeAt(1);G>=65&&G<=90&&(P=`/${String.fromCharCode(G+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let G=P.charCodeAt(0);G>=65&&G<=90&&(P=`${String.fromCharCode(G+32)}:${P.substr(2)}`)}C+=I(P,!0,!1)}return F&&(C+="?",C+=I(F,!1,!1)),B&&(C+="#",C+=k?B:v(B,!1,!1)),C}o(w,"y");function S(N){try{return decodeURIComponent(N)}catch{return N.length>3?N.substr(0,3)+S(N.substr(3)):N}}o(S,"v");let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(N){return N.match(T)?N.replace(T,k=>S(k)):N}o(E,"C");var _=r(470);let A=_.posix||_,L="/";var M;(function(N){N.joinPath=function(k,...I){return k.with({path:A.join(k.path,...I)})},N.resolvePath=function(k,...I){let C=k.path,O=!1;C[0]!==L&&(C=L+C,O=!0);let D=A.resolve(C,...I);return O&&D[0]===L&&!k.authority&&(D=D.substring(1)),k.with({path:D})},N.dirname=function(k){if(k.path.length===0||k.path===L)return k;let I=A.dirname(k.path);return I.length===1&&I.charCodeAt(0)===46&&(I=""),k.with({path:I})},N.basename=function(k){return A.basename(k.path)},N.extname=function(k){return A.extname(k.path)}})(M||(M={}))})(),pct=n})();({URI:zs,Utils:Pg}=pct)});var us,Gc=R(()=>{"use strict";LI();(function(e){e.basename=Pg.basename,e.dirname=Pg.dirname,e.extname=Pg.extname,e.joinPath=Pg.joinPath,e.resolvePath=Pg.resolvePath;function t(n,i){return n?.toString()===i?.toString()}o(t,"equals"),e.equals=t;function r(n,i){let a=typeof n=="string"?n:n.path,s=typeof i=="string"?i:i.path,l=a.split("/").filter(p=>p.length>0),u=s.split("/").filter(p=>p.length>0),h=0;for(;h{"use strict";dct();Bg();Ko();Ps();Gc();(function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"})(Tn||(Tn={}));ex=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,r=kr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(t);return this.createAsync(t,n,r)}fromTextDocument(t,r,n){return r=r??zs.parse(t.uri),n?this.createAsync(r,t,n):this.create(r,t)}fromString(t,r,n){return n?this.createAsync(r,t,n):this.create(r,t)}fromModel(t,r){return this.create(r,{$model:t})}create(t,r){if(typeof r=="string"){let n=this.parse(t,r);return this.createLangiumDocument(n,t,void 0,r)}else if("$model"in r){let n={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,t)}else{let n=this.parse(t,r.getText());return this.createLangiumDocument(n,t,r)}}async createAsync(t,r,n){if(typeof r=="string"){let i=await this.parseAsync(t,r,n);return this.createLangiumDocument(i,t,void 0,r)}else{let i=await this.parseAsync(t,r.getText(),n);return this.createLangiumDocument(i,t,r)}}createLangiumDocument(t,r,n,i){let a;if(n)a={parseResult:t,uri:r,state:Tn.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:t,uri:r,state:Tn.Parsed,references:[],get textDocument(){return s()}}}return t.value.$document=a,a}async update(t,r){var n,i;let a=(n=t.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(t.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(t.uri);if(s)Object.defineProperty(t,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(t.uri,l);Object.defineProperty(t,"textDocument",{get:u})}return a!==l&&(t.parseResult=await this.parseAsync(t.uri,l,r),t.parseResult.value.$document=t),t.state=Tn.Parsed,t}parse(t,r){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(r)}parseAsync(t,r,n){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(t,r){let n=this.serviceRegistry,i;return()=>i??(i=Og.create(t.toString(),n.getServices(t).LanguageMetaData.languageId,0,r??""))}},rx=class{static{o(this,"DefaultLangiumDocuments")}constructor(t){this.documentMap=new Map,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory}get all(){return en(this.documentMap.values())}addDocument(t){let r=t.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,t)}getDocument(t){let r=t.toString();return this.documentMap.get(r)}async getOrCreateDocument(t,r){let n=this.getDocument(t);return n||(n=await this.langiumDocumentFactory.fromUri(t,r),this.addDocument(n),n)}createDocument(t,r,n){if(n)return this.langiumDocumentFactory.fromString(r,t,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,t);return this.addDocument(i),i}}hasDocument(t){return this.documentMap.has(t.toString())}invalidateDocument(t){let r=t.toString(),n=this.documentMap.get(r);return n&&(n.state=Tn.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(t){let r=t.toString(),n=this.documentMap.get(r);return n&&(n.state=Tn.Changed,this.documentMap.delete(r)),n}}});var nx,DI=R(()=>{"use strict";Ko();Yo();is();Qo();Bg();nx=class{static{o(this,"DefaultLinker")}constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator}async link(t,r=kr.CancellationToken.None){for(let n of jo(t.parseResult.value))await Vi(r),rg(n).forEach(i=>this.doLink(i,t))}doLink(t,r){let n=t.reference;if(n._ref===void 0)try{let i=this.getCandidate(t);if(Zd(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(t,i)}}catch(i){n._ref=Object.assign(Object.assign({},t),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}r.references.push(n)}unlink(t){for(let r of t.references)delete r._ref,delete r._nodeDescription;t.references=[]}getCandidate(t){let n=this.scopeProvider.getScope(t).getElement(t.reference.$refText);return n??this.createLinkingError(t)}buildReference(t,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(ri(this._ref))return this._ref;if(LR(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:t,property:r},this._nodeDescription)}else if(this._ref===void 0){let u=a.getLinkedNode({reference:s,container:t,property:r});if(u.error&&$i(t).state{"use strict";zl();o(mct,"isNamed");ix=class{static{o(this,"DefaultNameProvider")}getName(t){if(mct(t))return t.name}getNameNode(t){return T2(t.$cstNode,"name")}}});var ax,NI=R(()=>{"use strict";zl();Yo();is();Pl();Ps();Gc();ax=class{static{o(this,"DefaultReferences")}constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator}findDeclaration(t){if(t){let r=tM(t),n=t.astNode;if(r&&n){let i=n[r.feature];if(ka(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(ka(a)&&a.$refNode&&a.$refNode.offset<=t.offset&&a.$refNode.end>=t.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===t||RR(t,i)))return n}}}findDeclarationNode(t){let r=this.findDeclaration(t);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(t,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(t);a&&n.push(a)}let i=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return r.documentUri&&(i=i.filter(a=>us.equals(a.sourceUri,r.documentUri))),n.push(...i),en(n)}getReferenceToSelf(t){let r=this.nameProvider.getNameNode(t);if(r){let n=$i(t),i=this.nodeLocator.getAstNodePath(t);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:t0(r),local:!0}}}}});var Vc,E0,Fg=R(()=>{"use strict";Ps();Vc=class{static{o(this,"MultiMap")}constructor(t){if(this.map=new Map,t)for(let[r,n]of t)this.add(r,n)}get size(){return Jm.sum(en(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,r){if(r===void 0)return this.map.delete(t);{let n=this.map.get(t);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(t):n.splice(i,1),!0}return!1}}get(t){var r;return(r=this.map.get(t))!==null&&r!==void 0?r:[]}has(t,r){if(r===void 0)return this.map.has(t);{let n=this.map.get(t);return n?n.indexOf(r)>=0:!1}}add(t,r){return this.map.has(t)?this.map.get(t).push(r):this.map.set(t,[r]),this}addAll(t,r){return this.map.has(t)?this.map.get(t).push(...r):this.map.set(t,Array.from(r)),this}forEach(t){this.map.forEach((r,n)=>r.forEach(i=>t(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return en(this.map.entries()).flatMap(([t,r])=>r.map(n=>[t,n]))}keys(){return en(this.map.keys())}values(){return en(this.map.values()).flat()}entriesGroupedByKey(){return en(this.map.entries())}},E0=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(t){if(this.map=new Map,this.inverse=new Map,t)for(let[r,n]of t)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(t,r){return this.map.set(t,r),this.inverse.set(r,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){let r=this.map.get(t);return r!==void 0?(this.map.delete(t),this.inverse.delete(r),!0):!1}}});var sx,MI=R(()=>{"use strict";Ko();is();Fg();Qo();sx=class{static{o(this,"DefaultScopeComputation")}constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async computeExports(t,r=kr.CancellationToken.None){return this.computeExportsForNode(t.parseResult.value,t,void 0,r)}async computeExportsForNode(t,r,n=g2,i=kr.CancellationToken.None){let a=[];this.exportNode(t,a,r);for(let s of n(t))await Vi(i),this.exportNode(s,a,r);return a}exportNode(t,r,n){let i=this.nameProvider.getName(t);i&&r.push(this.descriptions.createDescription(t,i,n))}async computeLocalScopes(t,r=kr.CancellationToken.None){let n=t.parseResult.value,i=new Vc;for(let a of Pc(n))await Vi(r),this.processNode(a,t,i);return i}processNode(t,r,n){let i=t.$container;if(i){let a=this.nameProvider.getName(t);a&&n.add(i,this.descriptions.createDescription(t,a,r))}}}});var zg,ox,fzt,II=R(()=>{"use strict";Ps();zg=class{static{o(this,"StreamScope")}constructor(t,r,n){var i;this.elements=t,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(t){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===t.toLowerCase()):this.elements.find(n=>n.name===t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(t)}},ox=class{static{o(this,"MapScope")}constructor(t,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of t){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(t){let r=this.caseInsensitive?t.toLowerCase():t,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(t)}getAllElements(){let t=en(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}},fzt={getElement(){},getAllElements(){return u2}}});var $g,lx,C0,EE,Gg,CE=R(()=>{"use strict";$g=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},lx=class extends $g{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,r){this.throwIfDisposed(),this.cache.set(t,r)}get(t,r){if(this.throwIfDisposed(),this.cache.has(t))return this.cache.get(t);if(r){let n=r();return this.cache.set(t,n),n}else return}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},C0=class extends $g{static{o(this,"ContextCache")}constructor(t){super(),this.cache=new Map,this.converter=t??(r=>r)}has(t,r){return this.throwIfDisposed(),this.cacheForContext(t).has(r)}set(t,r,n){this.throwIfDisposed(),this.cacheForContext(t).set(r,n)}get(t,r,n){this.throwIfDisposed();let i=this.cacheForContext(t);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(t,r){return this.throwIfDisposed(),this.cacheForContext(t).delete(r)}clear(t){if(this.throwIfDisposed(),t){let r=this.converter(t);this.cache.delete(r)}else this.cache.clear()}cacheForContext(t){let r=this.converter(t),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},EE=class extends C0{static{o(this,"DocumentCache")}constructor(t){super(r=>r.toString()),this.onDispose(t.workspace.DocumentBuilder.onUpdate((r,n)=>{let i=r.concat(n);for(let a of i)this.clear(a)}))}},Gg=class extends lx{static{o(this,"WorkspaceCache")}constructor(t){super(),this.onDispose(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var cx,OI=R(()=>{"use strict";II();is();Ps();CE();cx=class{static{o(this,"DefaultScopeProvider")}constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new Gg(t.shared)}getScope(t){let r=[],n=this.reflection.getReferenceType(t),i=$i(t.container).precomputedScopes;if(i){let s=t.container;do{let l=i.get(s);l.length>0&&r.push(en(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,t);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(t,r,n){return new zg(en(t),r,n)}createScopeForNodes(t,r,n){let i=en(t).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new zg(i,r,n)}getGlobalScope(t,r){return this.globalScopeCache.get(t,()=>new ox(this.indexManager.allElements(t)))}}});function PI(e){return typeof e.$comment=="string"}function gct(e){return typeof e=="object"&&!!e&&("$ref"in e||"$error"in e)}var ux,SE=R(()=>{"use strict";LI();Yo();is();zl();o(PI,"isAstNodeWithComment");o(gct,"isIntermediateReference");ux=class{static{o(this,"DefaultJsonSerializer")}constructor(t){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,r={}){let n=r?.replacer,i=o((s,l)=>this.replacer(s,l,r),"defaultReplacer"),a=n?(s,l)=>n(s,l,i):i;try{return this.currentDocument=$i(t),JSON.stringify(t,a,r?.space)}finally{this.currentDocument=void 0}}deserialize(t,r={}){let n=JSON.parse(t);return this.linkNode(n,n,r),n}replacer(t,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(t))if(ka(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=$i(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(ri(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!t||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!t&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(t){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(t.$cstNode){let n=t.$textRegion=r(t.$cstNode),i=n.assignments={};return Object.keys(t).filter(a=>!a.startsWith("$")).forEach(a=>{let s=KN(t.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),t}}linkNode(t,r,n,i,a,s){for(let[u,h]of Object.entries(t))if(Array.isArray(h))for(let f=0;f{"use strict";Gc();hx=class{static{o(this,"DefaultServiceRegistry")}register(t){if(!this.singleton&&!this.map){this.singleton=t;return}if(!this.map&&(this.map={},this.singleton)){for(let r of this.singleton.LanguageMetaData.fileExtensions)this.map[r]=this.singleton;this.singleton=void 0}for(let r of t.LanguageMetaData.fileExtensions)this.map[r]!==void 0&&this.map[r]!==t&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.LanguageMetaData.languageId}'.`),this.map[r]=t}getServices(t){if(this.singleton!==void 0)return this.singleton;if(this.map===void 0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=us.extname(t),n=this.map[r];if(!n)throw new Error(`The service registry contains no services for the extension '${r}'.`);return n}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}}});function AE(e){return{code:e}}var Vg,fx,dx=R(()=>{"use strict";Fg();Qo();Ps();o(AE,"diagnosticData");(function(e){e.all=["fast","slow","built-in"]})(Vg||(Vg={}));fx=class{static{o(this,"ValidationRegistry")}constructor(t){this.entries=new Vc,this.reflection=t.shared.AstReflection}register(t,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(t)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}}}wrapValidationException(t,r){return async(n,i,a)=>{try{await t.call(r,n,i,a)}catch(s){if(ff(s))throw s;console.error("An error occurred during validation:",s);let l=s instanceof Error?s.message:String(s);s instanceof Error&&s.stack&&console.error(s.stack),i("error","An error occurred during validation: "+l,{node:n})}}}addEntry(t,r){if(t==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(t))this.entries.add(n,r)}getChecks(t,r){let n=en(this.entries.get(t)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}}});function yct(e){if(e.range)return e.range;let t;return typeof e.property=="string"?t=T2(e.node.$cstNode,e.property,e.index):typeof e.keyword=="string"&&(t=ZN(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function _E(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}var px,Xu,FI=R(()=>{"use strict";Ko();zl();is();Pl();Qo();dx();px=class{static{o(this,"DefaultDocumentValidator")}constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData}async validateDocument(t,r={},n=kr.CancellationToken.None){let i=t.parseResult,a=[];if(await Vi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Xu.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Xu.ParsingError}))||(this.processLinkingErrors(t,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===Xu.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(ff(s))throw s;console.error("An error occurred during validation:",s)}return await Vi(n),a}processLexingErrors(t,r,n){for(let i of t.lexerErrors){let a={severity:_E("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:AE(Xu.LexingError),source:this.getSource()};r.push(a)}}processParsingErrors(t,r,n){for(let i of t.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=tg(i.token);if(a){let s={severity:_E("error"),range:a,message:i.message,data:AE(Xu.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(t,r,n){for(let i of t.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:Xu.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(t,r,n=kr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await Promise.all(jo(t).map(async s=>{await Vi(n);let l=this.validationRegistry.getChecks(s.$type,r.categories);for(let u of l)await u(s,a,n)})),i}toDiagnostic(t,r,n){return{message:r,range:yct(n),severity:_E(t),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(yct,"getDiagnosticRange");o(_E,"toDiagnosticSeverity");(function(e){e.LexingError="lexing-error",e.ParsingError="parsing-error",e.LinkingError="linking-error"})(Xu||(Xu={}))});var mx,gx,zI=R(()=>{"use strict";Ko();Yo();is();Pl();Qo();Gc();mx=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(t,r,n=$i(t)){r??(r=this.nameProvider.getName(t));let i=this.astNodeLocator.getAstNodePath(t);if(!r)throw new Error(`Node at path ${i} has no name.`);let a,s=o(()=>{var l;return a??(a=t0((l=this.nameProvider.getNameNode(t))!==null&&l!==void 0?l:t.$cstNode))},"nameSegmentGetter");return{node:t,name:r,get nameSegment(){return s()},selectionSegment:t0(t.$cstNode),type:t.$type,documentUri:n.uri,path:i}}},gx=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,r=kr.CancellationToken.None){let n=[],i=t.parseResult.value;for(let a of jo(i))await Vi(r),rg(a).filter(s=>!Zd(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(t){let r=t.reference.$nodeDescription,n=t.reference.$refNode;if(!r||!n)return;let i=$i(t.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(t.container),targetUri:r.documentUri,targetPath:r.path,segment:t0(n),local:us.equals(r.documentUri,i)}}}});var yx,$I=R(()=>{"use strict";yx=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(t){if(t.$container){let r=this.getAstNodePath(t.$container),n=this.getPathSegment(t);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:t,$containerIndex:r}){if(!t)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?t+this.indexSeparator+r:t}getAstNode(t,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},t)}}});var vx,GI=R(()=>{"use strict";Qo();vx=class{static{o(this,"DefaultConfigurationProvider")}constructor(t){this._ready=new cs,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){var r,n;this.workspaceConfig=(n=(r=t.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(t){if(this.workspaceConfig){if(t.register){let r=this.serviceRegistry.all;t.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(t.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await t.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(t){t.settings&&Object.keys(t.settings).forEach(r=>{this.updateSectionConfiguration(r,t.settings[r])})}updateSectionConfiguration(t,r){this.settings[t]=r}async getConfiguration(t,r){await this.ready;let n=this.toSectionName(t);if(this.settings[n])return this.settings[n][r]}toSectionName(t){return`${t}`}}});var S0,VI=R(()=>{"use strict";(function(e){function t(r){return{dispose:o(async()=>await r(),"dispose")}}o(t,"create"),e.create=t})(S0||(S0={}))});var xx,UI=R(()=>{"use strict";Ko();VI();Fg();Qo();Ps();dx();Bg();xx=class{static{o(this,"DefaultDocumentBuilder")}constructor(t){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Vc,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Tn.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.indexManager=t.workspace.IndexManager,this.serviceRegistry=t.ServiceRegistry}async build(t,r={},n=kr.CancellationToken.None){var i,a;for(let s of t){let l=s.uri.toString();if(s.state===Tn.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=Tn.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:Vg.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=Tn.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=Tn.Changed,await this.emitUpdate(t.map(s=>s.uri),[]),await this.buildDocuments(t,r,n)}async update(t,r,n=kr.CancellationToken.None){this.currentState=Tn.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of t){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=Tn.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=en(t).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,Tn.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(t,r),await Vi(n);let a=this.langiumDocuments.all.filter(s=>{var l;return s.staten(t,r)))}shouldRelink(t,r){return t.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(t,r)}onUpdate(t){return this.updateListeners.push(t),S0.create(()=>{let r=this.updateListeners.indexOf(t);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(t,r,n){this.prepareBuild(t,r),await this.runCancelable(t,Tn.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(t,Tn.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(t,Tn.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(t,Tn.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(t,Tn.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=t.filter(a=>this.shouldValidate(a));await this.runCancelable(i,Tn.Validated,n,a=>this.validate(a,n));for(let a of t){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(t,r){for(let n of t){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(t,r,n,i){let a=t.filter(s=>s.state{this.buildPhaseListeners.delete(t,r)})}waitUntil(t,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=kr.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>t)return Promise.resolve(i)}return this.currentState>=t?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject($c):new Promise((a,s)=>{let l=this.onBuildPhase(t,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s($c)})})}async notifyBuildPhase(t,r,n){if(t.length===0)return;let i=this.buildPhaseListeners.get(r);for(let a of i)await Vi(n),await a(t,n)}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,r){var n,i;let a=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,s=this.getBuildOptions(t).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(t,l,r);t.diagnostics?t.diagnostics.push(...u):t.diagnostics=u;let h=this.buildState.get(t.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:Vg.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(t){var r,n;return(n=(r=this.buildState.get(t.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var bx,HI=R(()=>{"use strict";is();CE();Ko();Ps();Gc();bx=class{static{o(this,"DefaultIndexManager")}constructor(t){this.symbolIndex=new Map,this.symbolByTypeIndex=new C0,this.referenceIndex=new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,r){let n=$i(t).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{us.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),en(i)}allElements(t,r){let n=en(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,t)).flat()}getFileDescriptions(t,r){var n;return r?this.symbolByTypeIndex.get(t,r,()=>{var a;return((a=this.symbolIndex.get(t))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(t))!==null&&n!==void 0?n:[]}remove(t){let r=t.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(t,r=kr.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.computeExports(t,r),a=t.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(t,r=kr.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,r);this.referenceIndex.set(t.uri.toString(),i)}isAffected(t,r){let n=this.referenceIndex.get(t.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var wx,WI=R(()=>{"use strict";Ko();Qo();Gc();wx=class{static{o(this,"DefaultWorkspaceManager")}constructor(t){this.initialBuildOptions={},this._ready=new cs,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(t){var r;this.folders=(r=t.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(t){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(t,r=kr.CancellationToken.None){let n=await this.performStartup(t);await Vi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(t){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(t,i),await Promise.all(t.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(t,r){return Promise.resolve()}getRootFolder(t){return zs.parse(t.uri)}async traverseFolder(t,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(t,s,n)){if(s.isDirectory)await this.traverseFolder(t,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(t,r,n){let i=us.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=us.extname(r.uri);return n.includes(a)}return!1}}});function vct(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}function qI(e){return e&&"modes"in e&&"defaultMode"in e}function YI(e){return!vct(e)&&!qI(e)}var Tx,XI=R(()=>{"use strict";g0();Tx=class{static{o(this,"DefaultLexer")}constructor(t){let r=t.parser.TokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=YI(r)?Object.values(r):r;this.chevrotainLexer=new li(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(t){var r;let n=this.chevrotainLexer.tokenize(t);return{tokens:n.tokens,errors:n.errors,hidden:(r=n.groups.hidden)!==null&&r!==void 0?r:[]}}toTokenTypeDictionary(t){if(YI(t))return t;let r=qI(t)?Object.values(t.modes).flat():t,n={};return r.forEach(i=>n[i.name]=i),n}};o(vct,"isTokenTypeArray");o(qI,"isIMultiModeLexerDefinition");o(YI,"isTokenTypeDictionary")});function QI(e,t,r){let n,i;typeof e=="string"?(i=t,n=r):(i=e.range.start,n=t),i||(i=Xr.create(0,0));let a=wct(e),s=JI(n),l=pzt({lines:a,position:i,options:s});return xzt({index:0,tokens:l,position:i})}function ZI(e,t){let r=JI(t),n=wct(e);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function wct(e){let t="";return typeof e=="string"?t=e:t=e.text,t.split(VN)}function pzt(e){var t,r,n;let i=[],a=e.position.line,s=e.position.character;for(let l=0;l=f.length){if(i.length>0){let m=Xr.create(a,s);i.push({type:"break",content:"",range:Dr.create(m,m)})}}else{xct.lastIndex=d;let m=xct.exec(f);if(m){let g=m[0],y=m[1],v=Xr.create(a,s+d),x=Xr.create(a,s+d+g.length);i.push({type:"tag",content:y,range:Dr.create(v,x)}),d+=g.length,d=KI(f,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function mzt(e,t,r,n){let i=[];if(e.length===0){let a=Xr.create(r,n),s=Xr.create(r,n+t.length);i.push({type:"text",content:t,range:Dr.create(a,s)})}else{let a=0;for(let l of e){let u=l.index,h=t.substring(a,u);h.length>0&&i.push({type:"text",content:t.substring(a,u),range:Dr.create(Xr.create(r,a+n),Xr.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+n))});a=u+l[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:Dr.create(Xr.create(r,a+n),Xr.create(r,a+n+s.length))})}return i}function KI(e,t){let r=e.substring(t).match(gzt);return r?t+r.index:e.length}function vzt(e){let t=e.match(yzt);if(t&&typeof t.index=="number")return t.index}function xzt(e){var t,r,n,i;let a=Xr.create(e.position.line,e.position.character);if(e.tokens.length===0)return new LE([],Dr.create(a,a));let s=[];for(;e.index0){let u=KI(t,a);s=t.substring(u),t=t.substring(0,a)}return(e==="linkcode"||e==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,t,s))!==null&&i!==void 0?i:Ezt(t,s)}}function Ezt(e,t){try{return zs.parse(e,!0),`[${t}](${e})`}catch{return e}}function bct(e){return e.endsWith(` +`)?` +`:` + +`}var xct,dzt,gzt,yzt,LE,kx,Ex,DE,tO=R(()=>{"use strict";sI();ig();Gc();o(QI,"parseJSDoc");o(ZI,"isJSDoc");o(wct,"getLines");xct=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,dzt=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(pzt,"tokenize");o(mzt,"buildInlineTokens");gzt=/\S/,yzt=/\s*$/;o(KI,"skipWhitespace");o(vzt,"lastCharacter");o(xzt,"parseJSDocComment");o(bzt,"parseJSDocElement");o(wzt,"appendEmptyLine");o(Tct,"parseJSDocText");o(Tzt,"parseJSDocInline");o(kct,"parseJSDocTag");o(Ect,"parseJSDocLine");o(JI,"normalizeOptions");o(jI,"normalizeOption");LE=class{static{o(this,"JSDocCommentImpl")}constructor(t,r){this.elements=t,this.range=r}getTag(t){return this.getAllTags().find(r=>r.name===t)}getTags(t){return this.getAllTags().filter(r=>r.name===t)}getAllTags(){return this.elements.filter(t=>"name"in t)}toString(){let t="";for(let r of this.elements)if(t.length===0)t=r.toString();else{let n=r.toString();t+=bct(t)+n}return t.trim()}toMarkdown(t){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(t);else{let i=n.toMarkdown(t);r+=bct(r)+i}return r.trim()}},kx=class{static{o(this,"JSDocTagImpl")}constructor(t,r,n,i){this.name=t,this.content=r,this.inline=n,this.range=i}toString(){let t=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?t=`${t} ${r}`:this.content.inlines.length>1&&(t=`${t} +${r}`),this.inline?`{${t}}`:t}toMarkdown(t){var r,n;return(n=(r=t?.renderTag)===null||r===void 0?void 0:r.call(t,this))!==null&&n!==void 0?n:this.toMarkdownDefault(t)}toMarkdownDefault(t){let r=this.content.toMarkdown(t);if(this.inline){let a=kzt(this.name,r,t??{});if(typeof a=="string")return a}let n="";t?.tag==="italic"||t?.tag===void 0?n="*":t?.tag==="bold"?n="**":t?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(kzt,"renderInlineTag");o(Ezt,"renderLinkDefault");Ex=class{static{o(this,"JSDocTextImpl")}constructor(t,r){this.inlines=t,this.range=r}toString(){let t="";for(let r=0;rn.range.start.line&&(t+=` +`)}return t}toMarkdown(t){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},DE=class{static{o(this,"JSDocLineImpl")}constructor(t,r){this.text=t,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(bct,"fillNewlines")});var Cx,eO=R(()=>{"use strict";is();tO();Cx=class{static{o(this,"JSDocDocumentationProvider")}constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(t){let r=this.commentProvider.getComment(t);if(r&&ZI(r))return QI(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(t,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(t,i),"renderTag")})}documentationLinkRenderer(t,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(t,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(t,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(t,r){}findNameInPrecomputedScopes(t,r){let i=$i(t).precomputedScopes;if(!i)return;let a=t;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(t,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var Sx,rO=R(()=>{"use strict";SE();Pl();Sx=class{static{o(this,"DefaultCommentProvider")}constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){var r;return PI(t)?t.$comment:(r=MR(t.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var ci={};var nO=R(()=>{"use strict";wr(ci,Qi(kI(),1))});var Ax,iO,aO,sO=R(()=>{"use strict";Qo();nO();Ax=class{static{o(this,"DefaultAsyncParser")}constructor(t){this.syncParser=t.parser.LangiumParser}parse(t){return Promise.resolve(this.syncParser.parse(t))}},iO=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(t){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=t.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(t.lock(),r.resolve(t))}}),this.workerPool.push(t)}}async parse(t,r){let n=await this.acquireParserWorker(r),i=new cs,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(t).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(t){t.terminate();let r=this.workerPool.indexOf(t);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(t){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new cs;return t.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject($c)}),this.queue.push(r),r.promise}},aO=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(t,r,n,i){this.onReadyEmitter=new ci.Emitter,this.deferred=new cs,this._ready=!0,this._parsing=!1,this.sendMessage=t,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject($c),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(t){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new cs,this.sendMessage(t),this.deferred.promise}}});var _x,oO=R(()=>{"use strict";Ko();Qo();_x=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new kr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(t){this.cancelWrite();let r=new kr.CancellationTokenSource;return this.previousTokenSource=r,this.enqueue(this.writeQueue,t,r.token)}read(t){return this.enqueue(this.readQueue,t)}enqueue(t,r,n){let i=new cs,a={action:r,deferred:i,cancellationToken:n??kr.CancellationToken.None};return t.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let t=[];if(this.writeQueue.length>0)t.push(this.writeQueue.shift());else if(this.readQueue.length>0)t.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(t.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){ff(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var Lx,lO=R(()=>{"use strict";mE();Oc();Yo();is();Fg();Pl();Lx=class{static{o(this,"DefaultHydrator")}constructor(t){this.grammarElementIdMap=new E0,this.tokenTypeIdMap=new E0,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors.map(r=>Object.assign({},r)),parserErrors:t.parserErrors.map(r=>Object.assign({},r)),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}createDehyrationContext(t){let r=new Map,n=new Map;for(let i of jo(t))r.set(i,{});if(t.$cstNode)for(let i of Jd(t.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(t,r){let n=r.astNodes.get(t);n.$type=t.$type,n.$containerIndex=t.$containerIndex,n.$containerProperty=t.$containerProperty,t.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(t.$cstNode,r));for(let[i,a]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ri(l)?s.push(this.dehydrateAstNode(l,r)):ka(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else ri(a)?n[i]=this.dehydrateAstNode(a,r):ka(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(t,r){let n={};return n.$refText=t.$refText,t.$refNode&&(n.$refNode=r.cstNodes.get(t.$refNode)),n}dehydrateCstNode(t,r){let n=r.cstNodes.get(t);return c2(t)?n.fullText=t.fullText:n.grammarSource=this.getGrammarElementId(t.grammarSource),n.hidden=t.hidden,n.astNode=r.astNodes.get(t.astNode),uo(t)?n.content=t.content.map(i=>this.dehydrateCstNode(i,r)):sf(t)&&(n.tokenType=t.tokenType.name,n.offset=t.offset,n.length=t.length,n.startLine=t.range.start.line,n.startColumn=t.range.start.character,n.endLine=t.range.end.line,n.endColumn=t.range.end.character),n}hydrate(t){let r=t.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:t.lexerErrors,parserErrors:t.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(t){let r=new Map,n=new Map;for(let a of jo(t))r.set(a,{});let i;if(t.$cstNode)for(let a of Jd(t.$cstNode)){let s;"fullText"in a?(s=new Rg(a.fullText),i=s):"content"in a?s=new b0:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(t,r){let n=r.astNodes.get(t);n.$type=t.$type,n.$containerIndex=t.$containerIndex,n.$containerProperty=t.$containerProperty,t.$cstNode&&(n.$cstNode=r.cstNodes.get(t.$cstNode));for(let[i,a]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ri(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):ka(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else ri(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):ka(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(t,r){return t.$container=r,t}hydrateReference(t,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,r,n=0){let i=r.cstNodes.get(t);if(typeof t.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(t.grammarSource)),i.astNode=r.astNodes.get(t.astNode),uo(i))for(let a of t.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(t){let r=this.getTokenType(t.tokenType),n=t.offset,i=t.length,a=t.startLine,s=t.startColumn,l=t.endLine,u=t.endColumn,h=t.hidden;return new x0(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let r=this.grammarElementIdMap.getKey(t);if(r)return r;throw new Error("Invalid grammar element id: "+t)}createGrammarElementIdMap(){let t=0;for(let r of jo(this.grammar))d2(r)&&this.grammarElementIdMap.set(r,t++)}}});function mo(e){return{documentation:{CommentProvider:o(t=>new Sx(t),"CommentProvider"),DocumentationProvider:o(t=>new Cx(t),"DocumentationProvider")},parser:{AsyncParser:o(t=>new Ax(t),"AsyncParser"),GrammarConfig:o(t=>iM(t),"GrammarConfig"),LangiumParser:o(t=>pI(t),"LangiumParser"),CompletionParser:o(t=>fI(t),"CompletionParser"),ValueConverter:o(()=>new k0,"ValueConverter"),TokenBuilder:o(()=>new T0,"TokenBuilder"),Lexer:o(t=>new Tx(t),"Lexer"),ParserErrorMessageProvider:o(()=>new Ng,"ParserErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new yx,"AstNodeLocator"),AstNodeDescriptionProvider:o(t=>new mx(t),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(t=>new gx(t),"ReferenceDescriptionProvider")},references:{Linker:o(t=>new nx(t),"Linker"),NameProvider:o(()=>new ix,"NameProvider"),ScopeProvider:o(t=>new cx(t),"ScopeProvider"),ScopeComputation:o(t=>new sx(t),"ScopeComputation"),References:o(t=>new ax(t),"References")},serializer:{Hydrator:o(t=>new Lx(t),"Hydrator"),JsonSerializer:o(t=>new ux(t),"JsonSerializer")},validation:{DocumentValidator:o(t=>new px(t),"DocumentValidator"),ValidationRegistry:o(t=>new fx(t),"ValidationRegistry")},shared:o(()=>e.shared,"shared")}}function go(e){return{ServiceRegistry:o(()=>new hx,"ServiceRegistry"),workspace:{LangiumDocuments:o(t=>new rx(t),"LangiumDocuments"),LangiumDocumentFactory:o(t=>new ex(t),"LangiumDocumentFactory"),DocumentBuilder:o(t=>new xx(t),"DocumentBuilder"),IndexManager:o(t=>new bx(t),"IndexManager"),WorkspaceManager:o(t=>new wx(t),"WorkspaceManager"),FileSystemProvider:o(t=>e.fileSystemProvider(t),"FileSystemProvider"),WorkspaceLock:o(()=>new _x,"WorkspaceLock"),ConfigurationProvider:o(t=>new vx(t),"ConfigurationProvider")}}}var cO=R(()=>{"use strict";aM();dI();mI();gI();yI();DI();RI();NI();MI();OI();SE();BI();FI();dx();zI();$I();GI();UI();Bg();HI();WI();XI();eO();rO();tx();sO();oO();lO();o(mo,"createDefaultCoreModule");o(go,"createDefaultSharedCoreModule")});function Ui(e,t,r,n,i,a,s,l,u){let h=[e,t,r,n,i,a,s,l,u].reduce(RE,{});return _ct(h)}function Act(e){if(e&&e[hO])for(let t of Object.values(e))Act(t);return e}function _ct(e,t){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),get:o((n,i)=>Sct(n,i,e,t||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(Sct(n,i,e,t||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in e,"has"),ownKeys:o(()=>[...Reflect.ownKeys(e),hO],"ownKeys")});return r[hO]=!0,r}function Sct(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===Cct)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return e[t]}else if(t in r){let i=r[t];e[t]=Cct;try{e[t]=typeof i=="function"?i(n):_ct(i,n)}catch(a){throw e[t]=a instanceof Error?a:void 0,a}return e[t]}else return}function RE(e,t){if(t){for(let[r,n]of Object.entries(t))if(n!==void 0){let i=e[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?e[r]=RE(i,n):e[r]=n}}return e}var uO,hO,Cct,fO=R(()=>{"use strict";(function(e){e.merge=(t,r)=>RE(RE({},t),r)})(uO||(uO={}));o(Ui,"inject");hO=Symbol("isProxy");o(Act,"eagerLoad");o(_ct,"_inject");Cct=Symbol();o(Sct,"_resolve");o(RE,"_merge")});var Lct=R(()=>{"use strict"});var Dct=R(()=>{"use strict";rO();eO();tO()});var Rct=R(()=>{"use strict"});var Nct=R(()=>{"use strict";aM();Rct()});var Mct=R(()=>{"use strict"});var Ict=R(()=>{"use strict";sO();dI();mE();mI();tx();XI();Mct();gI();yI()});var Oct=R(()=>{"use strict";DI();RI();NI();II();MI();OI()});var Pct=R(()=>{"use strict";lO();SE()});var NE,yo,dO=R(()=>{"use strict";NE=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},yo={fileSystemProvider:o(()=>new NE,"fileSystemProvider")}});function Azt(){let e=Ui(go(yo),Szt),t=Ui(mo({shared:e}),Czt);return e.ServiceRegistry.register(t),t}function df(e){var t;let r=Azt(),n=r.serializer.JsonSerializer.deserialize(e);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,zs.parse(`memory://${(t=n.name)!==null&&t!==void 0?t:"grammar"}.langium`)),n}var Czt,Szt,Bct=R(()=>{"use strict";cO();fO();Oc();dO();Gc();Czt={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Szt={AstReflection:o(()=>new eg,"AstReflection")};o(Azt,"createMinimalGrammarServices");o(df,"loadGrammarFromJson")});var Gr={};xr(Gr,{AstUtils:()=>gk,BiMap:()=>E0,Cancellation:()=>kr,ContextCache:()=>C0,CstUtils:()=>ik,DONE_RESULT:()=>ns,Deferred:()=>cs,Disposable:()=>S0,DisposableCache:()=>$g,DocumentCache:()=>EE,EMPTY_STREAM:()=>u2,ErrorWithLocation:()=>e0,GrammarUtils:()=>Tk,MultiMap:()=>Vc,OperationCancelled:()=>$c,Reduction:()=>Jm,RegExpUtils:()=>bk,SimpleCache:()=>lx,StreamImpl:()=>ho,TreeStreamImpl:()=>Ic,URI:()=>zs,UriUtils:()=>us,WorkspaceCache:()=>Gg,assertUnreachable:()=>of,delayNextTick:()=>AI,interruptAndCheck:()=>Vi,isOperationCancelled:()=>ff,loadGrammarFromJson:()=>df,setInterruptionPeriod:()=>cct,startCancelableOperation:()=>lct,stream:()=>en});var Fct=R(()=>{"use strict";CE();nO();wr(Gr,ci);Fg();VI();ak();Bct();Qo();Ps();Gc();is();Ko();Pl();zl();ig()});var zct=R(()=>{"use strict";FI();dx()});var $ct=R(()=>{"use strict";zI();$I();GI();UI();Bg();dO();HI();oO();WI()});var Ea={};xr(Ea,{AbstractAstReflection:()=>Qd,AbstractCstNode:()=>K2,AbstractLangiumParser:()=>Q2,AbstractParserErrorMessageProvider:()=>yE,AbstractThreadedAsyncParser:()=>iO,AstUtils:()=>gk,BiMap:()=>E0,Cancellation:()=>kr,CompositeCstNodeImpl:()=>b0,ContextCache:()=>C0,CstNodeBuilder:()=>j2,CstUtils:()=>ik,DONE_RESULT:()=>ns,DatatypeSymbol:()=>gE,DefaultAstNodeDescriptionProvider:()=>mx,DefaultAstNodeLocator:()=>yx,DefaultAsyncParser:()=>Ax,DefaultCommentProvider:()=>Sx,DefaultConfigurationProvider:()=>vx,DefaultDocumentBuilder:()=>xx,DefaultDocumentValidator:()=>px,DefaultHydrator:()=>Lx,DefaultIndexManager:()=>bx,DefaultJsonSerializer:()=>ux,DefaultLangiumDocumentFactory:()=>ex,DefaultLangiumDocuments:()=>rx,DefaultLexer:()=>Tx,DefaultLinker:()=>nx,DefaultNameProvider:()=>ix,DefaultReferenceDescriptionProvider:()=>gx,DefaultReferences:()=>ax,DefaultScopeComputation:()=>sx,DefaultScopeProvider:()=>cx,DefaultServiceRegistry:()=>hx,DefaultTokenBuilder:()=>T0,DefaultValueConverter:()=>k0,DefaultWorkspaceLock:()=>_x,DefaultWorkspaceManager:()=>wx,Deferred:()=>cs,Disposable:()=>S0,DisposableCache:()=>$g,DocumentCache:()=>EE,DocumentState:()=>Tn,DocumentValidator:()=>Xu,EMPTY_SCOPE:()=>fzt,EMPTY_STREAM:()=>u2,EmptyFileSystem:()=>yo,EmptyFileSystemProvider:()=>NE,ErrorWithLocation:()=>e0,GrammarAST:()=>m2,GrammarUtils:()=>Tk,JSDocDocumentationProvider:()=>Cx,LangiumCompletionParser:()=>J2,LangiumParser:()=>Z2,LangiumParserErrorMessageProvider:()=>Ng,LeafCstNodeImpl:()=>x0,MapScope:()=>ox,Module:()=>uO,MultiMap:()=>Vc,OperationCancelled:()=>$c,ParserWorker:()=>aO,Reduction:()=>Jm,RegExpUtils:()=>bk,RootCstNodeImpl:()=>Rg,SimpleCache:()=>lx,StreamImpl:()=>ho,StreamScope:()=>zg,TextDocument:()=>Og,TreeStreamImpl:()=>Ic,URI:()=>zs,UriUtils:()=>us,ValidationCategory:()=>Vg,ValidationRegistry:()=>fx,ValueConverter:()=>zc,WorkspaceCache:()=>Gg,assertUnreachable:()=>of,createCompletionParser:()=>fI,createDefaultCoreModule:()=>mo,createDefaultSharedCoreModule:()=>go,createGrammarConfig:()=>iM,createLangiumParser:()=>pI,delayNextTick:()=>AI,diagnosticData:()=>AE,eagerLoad:()=>Act,getDiagnosticRange:()=>yct,inject:()=>Ui,interruptAndCheck:()=>Vi,isAstNode:()=>ri,isAstNodeDescription:()=>LR,isAstNodeWithComment:()=>PI,isCompositeCstNode:()=>uo,isIMultiModeLexerDefinition:()=>qI,isJSDoc:()=>ZI,isLeafCstNode:()=>sf,isLinkingError:()=>Zd,isNamed:()=>mct,isOperationCancelled:()=>ff,isReference:()=>ka,isRootCstNode:()=>c2,isTokenTypeArray:()=>vct,isTokenTypeDictionary:()=>YI,loadGrammarFromJson:()=>df,parseJSDoc:()=>QI,prepareLangiumParser:()=>ect,setInterruptionPeriod:()=>cct,startCancelableOperation:()=>lct,stream:()=>en,toDiagnosticSeverity:()=>_E});var Uc=R(()=>{"use strict";cO();fO();BI();Lct();Yo();Dct();Nct();Ict();Oct();Pct();Fct();wr(Ea,Gr);zct();$ct();Oc()});function Xct(e){return Gl.isInstance(e,qct)}function jct(e){return Gl.isInstance(e,pO)}function Kct(e){return Gl.isInstance(e,mO)}function Qct(e){return Gl.isInstance(e,Rzt)}function Zct(e){return Gl.isInstance(e,gO)}function tut(e){return Gl.isInstance(e,Jct)}function eut(e){return Gl.isInstance(e,yO)}function nut(e){return Gl.isInstance(e,rut)}function aut(e){return Gl.isInstance(e,iut)}function out(e){return Gl.isInstance(e,sut)}function cut(e){return Gl.isInstance(e,lut)}var _zt,De,Yct,qct,pO,Lzt,Dzt,mO,Rzt,gO,Jct,yO,rut,iut,sut,lut,Nzt,uut,Gl,Gct,Mzt,Vct,Izt,Uct,Ozt,Hct,Pzt,Wct,Bzt,Fzt,zzt,$zt,Gzt,Vzt,Vl,vO,xO,bO,wO,TO,Uzt,Hzt,Wzt,Yzt,Ug,A0,Zo,qzt,Jo=R(()=>{"use strict";Uc();Uc();Uc();Uc();_zt=Object.defineProperty,De=o((e,t)=>_zt(e,"name",{value:t,configurable:!0}),"__name"),Yct="Statement",qct="Architecture";o(Xct,"isArchitecture");De(Xct,"isArchitecture");pO="Branch";o(jct,"isBranch");De(jct,"isBranch");Lzt="Checkout",Dzt="CherryPicking",mO="Commit";o(Kct,"isCommit");De(Kct,"isCommit");Rzt="Common";o(Qct,"isCommon");De(Qct,"isCommon");gO="GitGraph";o(Zct,"isGitGraph");De(Zct,"isGitGraph");Jct="Info";o(tut,"isInfo");De(tut,"isInfo");yO="Merge";o(eut,"isMerge");De(eut,"isMerge");rut="Packet";o(nut,"isPacket");De(nut,"isPacket");iut="PacketBlock";o(aut,"isPacketBlock");De(aut,"isPacketBlock");sut="Pie";o(out,"isPie");De(out,"isPie");lut="PieSection";o(cut,"isPieSection");De(cut,"isPieSection");Nzt="Direction",uut=class extends Qd{static{o(this,"MermaidAstReflection")}static{De(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(e,t){switch(e){case pO:case Lzt:case Dzt:case mO:case yO:return this.isSubtype(Yct,t);case Nzt:return this.isSubtype(gO,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},Gl=new uut,Mzt=De(()=>Gct??(Gct=df('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),Izt=De(()=>Vct??(Vct=df(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),Ozt=De(()=>Uct??(Uct=df('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),Pzt=De(()=>Hct??(Hct=df('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Bzt=De(()=>Wct??(Wct=df(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),Fzt={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},zzt={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},$zt={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Gzt={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Vzt={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},Vl={AstReflection:De(()=>new uut,"AstReflection")},vO={Grammar:De(()=>Mzt(),"Grammar"),LanguageMetaData:De(()=>Fzt,"LanguageMetaData"),parser:{}},xO={Grammar:De(()=>Izt(),"Grammar"),LanguageMetaData:De(()=>zzt,"LanguageMetaData"),parser:{}},bO={Grammar:De(()=>Ozt(),"Grammar"),LanguageMetaData:De(()=>$zt,"LanguageMetaData"),parser:{}},wO={Grammar:De(()=>Pzt(),"Grammar"),LanguageMetaData:De(()=>Gzt,"LanguageMetaData"),parser:{}},TO={Grammar:De(()=>Bzt(),"Grammar"),LanguageMetaData:De(()=>Vzt,"LanguageMetaData"),parser:{}},Uzt=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,Hzt=/accTitle[\t ]*:([^\n\r]*)/,Wzt=/title([\t ][^\n\r]*|)/,Yzt={ACC_DESCR:Uzt,ACC_TITLE:Hzt,TITLE:Wzt},Ug=class extends k0{static{o(this,"AbstractMermaidValueConverter")}static{De(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return n===void 0&&(n=this.runCustomConverter(e,t,r)),n===void 0?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=Yzt[e.name];if(n===void 0)return;let i=n.exec(t);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},A0=class extends Ug{static{o(this,"CommonValueConverter")}static{De(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},Zo=class extends T0{static{o(this,"AbstractMermaidTokenBuilder")}static{De(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},qzt=class extends Zo{static{o(this,"CommonTokenBuilder")}static{De(this,"CommonTokenBuilder")}}});function IE(e=yo){let t=Ui(go(e),Vl),r=Ui(mo({shared:t}),TO,ME);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}var Xzt,ME,kO=R(()=>{"use strict";Jo();Uc();Xzt=class extends Zo{static{o(this,"GitGraphTokenBuilder")}static{De(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},ME={parser:{TokenBuilder:De(()=>new Xzt,"TokenBuilder"),ValueConverter:De(()=>new A0,"ValueConverter")}};o(IE,"createGitGraphServices");De(IE,"createGitGraphServices")});function PE(e=yo){let t=Ui(go(e),Vl),r=Ui(mo({shared:t}),vO,OE);return t.ServiceRegistry.register(r),{shared:t,Info:r}}var jzt,OE,EO=R(()=>{"use strict";Jo();Uc();jzt=class extends Zo{static{o(this,"InfoTokenBuilder")}static{De(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},OE={parser:{TokenBuilder:De(()=>new jzt,"TokenBuilder"),ValueConverter:De(()=>new A0,"ValueConverter")}};o(PE,"createInfoServices");De(PE,"createInfoServices")});function FE(e=yo){let t=Ui(go(e),Vl),r=Ui(mo({shared:t}),xO,BE);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}var Kzt,BE,CO=R(()=>{"use strict";Jo();Uc();Kzt=class extends Zo{static{o(this,"PacketTokenBuilder")}static{De(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},BE={parser:{TokenBuilder:De(()=>new Kzt,"TokenBuilder"),ValueConverter:De(()=>new A0,"ValueConverter")}};o(FE,"createPacketServices");De(FE,"createPacketServices")});function $E(e=yo){let t=Ui(go(e),Vl),r=Ui(mo({shared:t}),bO,zE);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}var Qzt,Zzt,zE,SO=R(()=>{"use strict";Jo();Uc();Qzt=class extends Zo{static{o(this,"PieTokenBuilder")}static{De(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},Zzt=class extends Ug{static{o(this,"PieValueConverter")}static{De(this,"PieValueConverter")}runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},zE={parser:{TokenBuilder:De(()=>new Qzt,"TokenBuilder"),ValueConverter:De(()=>new Zzt,"ValueConverter")}};o($E,"createPieServices");De($E,"createPieServices")});function VE(e=yo){let t=Ui(go(e),Vl),r=Ui(mo({shared:t}),wO,GE);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}var Jzt,t$t,GE,AO=R(()=>{"use strict";Jo();Uc();Jzt=class extends Zo{static{o(this,"ArchitectureTokenBuilder")}static{De(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},t$t=class extends Ug{static{o(this,"ArchitectureValueConverter")}static{De(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return t.replace(/[[\]]/g,"").trim()}},GE={parser:{TokenBuilder:De(()=>new Jzt,"TokenBuilder"),ValueConverter:De(()=>new t$t,"ValueConverter")}};o(VE,"createArchitectureServices");De(VE,"createArchitectureServices")});var hut={};xr(hut,{InfoModule:()=>OE,createInfoServices:()=>PE});var fut=R(()=>{"use strict";EO();Jo()});var dut={};xr(dut,{PacketModule:()=>BE,createPacketServices:()=>FE});var put=R(()=>{"use strict";CO();Jo()});var mut={};xr(mut,{PieModule:()=>zE,createPieServices:()=>$E});var gut=R(()=>{"use strict";SO();Jo()});var yut={};xr(yut,{ArchitectureModule:()=>GE,createArchitectureServices:()=>VE});var vut=R(()=>{"use strict";AO();Jo()});var xut={};xr(xut,{GitGraphModule:()=>ME,createGitGraphServices:()=>IE});var but=R(()=>{"use strict";kO();Jo()});async function Ul(e,t){let r=e$t[e];if(!r)throw new Error(`Unknown diagram type: ${e}`);_0[e]||await r();let i=_0[e].parse(t);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new r$t(i);return i.value}var _0,e$t,r$t,Hg=R(()=>{"use strict";kO();EO();CO();SO();AO();Jo();_0={},e$t={info:De(async()=>{let{createInfoServices:e}=await Promise.resolve().then(()=>(fut(),hut)),t=e().Info.parser.LangiumParser;_0.info=t},"info"),packet:De(async()=>{let{createPacketServices:e}=await Promise.resolve().then(()=>(put(),dut)),t=e().Packet.parser.LangiumParser;_0.packet=t},"packet"),pie:De(async()=>{let{createPieServices:e}=await Promise.resolve().then(()=>(gut(),mut)),t=e().Pie.parser.LangiumParser;_0.pie=t},"pie"),architecture:De(async()=>{let{createArchitectureServices:e}=await Promise.resolve().then(()=>(vut(),yut)),t=e().Architecture.parser.LangiumParser;_0.architecture=t},"architecture"),gitGraph:De(async()=>{let{createGitGraphServices:e}=await Promise.resolve().then(()=>(but(),xut)),t=e().GitGraph.parser.LangiumParser;_0.gitGraph=t},"gitGraph")};o(Ul,"parse");De(Ul,"parse");r$t=class extends Error{static{o(this,"MermaidParseError")}constructor(e){let t=e.lexerErrors.map(n=>n.message).join(` +`),r=e.parserErrors.map(n=>n.message).join(` +`);super(`Parsing failed: ${t} ${r}`),this.result=e}static{De(this,"MermaidParseError")}}});function pf(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}var Dx=R(()=>{"use strict";o(pf,"populateCommonDb")});var jr,UE=R(()=>{"use strict";jr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var mf,HE=R(()=>{"use strict";mf=class{constructor(t){this.init=t;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function _O(){return $9({length:7})}function i$t(e,t){let r=Object.create(null);return e.reduce((n,i)=>{let a=t(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function wut(e,t,r){let n=e.indexOf(t);n===-1?e.push(r):e.splice(n,1,r)}function kut(e){let t=e.reduce((i,a)=>i.seq>a.seq?i:a,e[0]),r="";e.forEach(function(i){i===t?r+=" *":r+=" |"});let n=[r,t.id,t.seq];for(let i in Te.records.branches)Te.records.branches.get(i)===t.id&&n.push(i);if(V.debug(n.join(" ")),t.parents&&t.parents.length==2&&t.parents[0]&&t.parents[1]){let i=Te.records.commits.get(t.parents[0]);wut(e,t,i),t.parents[1]&&e.push(Te.records.commits.get(t.parents[1]))}else{if(t.parents.length==0)return;if(t.parents[0]){let i=Te.records.commits.get(t.parents[0]);wut(e,t,i)}}e=i$t(e,i=>i.id),kut(e)}var n$t,L0,Te,a$t,s$t,o$t,l$t,c$t,u$t,h$t,Tut,f$t,d$t,p$t,m$t,g$t,Eut,y$t,v$t,x$t,WE,LO=R(()=>{"use strict";ce();_r();js();hr();Ci();UE();HE();hl();n$t=Er.gitGraph,L0=o(()=>Ss({...n$t,...Nr().gitGraph}),"getConfig"),Te=new mf(()=>{let e=L0(),t=e.mainBranchName,r=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:r}]]),branches:new Map([[t,null]]),currBranch:t,direction:"LR",seq:0,options:{}}});o(_O,"getID");o(i$t,"uniqBy");a$t=o(function(e){Te.records.direction=e},"setDirection"),s$t=o(function(e){V.debug("options str",e),e=e?.trim(),e=e||"{}";try{Te.records.options=JSON.parse(e)}catch(t){V.error("error while parsing gitGraph options",t.message)}},"setOptions"),o$t=o(function(){return Te.records.options},"getOptions"),l$t=o(function(e){let t=e.msg,r=e.id,n=e.type,i=e.tags;V.info("commit",t,r,n,i),V.debug("Entering commit:",t,r,n,i);let a=L0();r=Yt.sanitizeText(r,a),t=Yt.sanitizeText(t,a),i=i?.map(l=>Yt.sanitizeText(l,a));let s={id:r||Te.records.seq+"-"+_O(),message:t,seq:Te.records.seq++,type:n??jr.NORMAL,tags:i??[],parents:Te.records.head==null?[]:[Te.records.head.id],branch:Te.records.currBranch};Te.records.head=s,V.info("main branch",a.mainBranchName),Te.records.commits.set(s.id,s),Te.records.branches.set(Te.records.currBranch,s.id),V.debug("in pushCommit "+s.id)},"commit"),c$t=o(function(e){let t=e.name,r=e.order;if(t=Yt.sanitizeText(t,L0()),Te.records.branches.has(t))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${t}")`);Te.records.branches.set(t,Te.records.head!=null?Te.records.head.id:null),Te.records.branchConfig.set(t,{name:t,order:r}),Tut(t),V.debug("in createBranch")},"branch"),u$t=o(e=>{let t=e.branch,r=e.id,n=e.type,i=e.tags,a=L0();t=Yt.sanitizeText(t,a),r&&(r=Yt.sanitizeText(r,a));let s=Te.records.branches.get(Te.records.currBranch),l=Te.records.branches.get(t),u=s?Te.records.commits.get(s):void 0,h=l?Te.records.commits.get(l):void 0;if(u&&h&&u.branch===t)throw new Error(`Cannot merge branch '${t}' into itself.`);if(Te.records.currBranch===t){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${Te.records.currBranch})has no commits`);throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["commit"]},p}if(!Te.records.branches.has(t)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch ${t}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},p}if(r&&Te.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw p.hash={text:`merge ${t} ${r} ${n} ${i?.join(" ")}`,token:`merge ${t} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${t} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${Te.records.seq}-${_O()}`,message:`merged branch ${t} into ${Te.records.currBranch}`,seq:Te.records.seq++,parents:Te.records.head==null?[]:[Te.records.head.id,f],branch:Te.records.currBranch,type:jr.MERGE,customType:n,customId:!!r,tags:i??[]};Te.records.head=d,Te.records.commits.set(d.id,d),Te.records.branches.set(Te.records.currBranch,d.id),V.debug(Te.records.branches),V.debug("in mergeBranch")},"merge"),h$t=o(function(e){let t=e.id,r=e.targetId,n=e.tags,i=e.parent;V.debug("Entering cherryPick:",t,r,n);let a=L0();if(t=Yt.sanitizeText(t,a),r=Yt.sanitizeText(r,a),n=n?.map(u=>Yt.sanitizeText(u,a)),i=Yt.sanitizeText(i,a),!t||!Te.records.commits.has(t)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},u}let s=Te.records.commits.get(t);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===jr.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!Te.records.commits.has(r)){if(l===Te.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},d}let u=Te.records.branches.get(Te.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Te.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},d}let h=Te.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${Te.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:["cherry-pick abc"]},d}let f={id:Te.records.seq+"-"+_O(),message:`cherry-picked ${s?.message} into ${Te.records.currBranch}`,seq:Te.records.seq++,parents:Te.records.head==null?[]:[Te.records.head.id,s.id],branch:Te.records.currBranch,type:jr.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===jr.MERGE?`|parent:${i}`:""}`]};Te.records.head=f,Te.records.commits.set(f.id,f),Te.records.branches.set(Te.records.currBranch,f.id),V.debug(Te.records.branches),V.debug("in cherryPick")}},"cherryPick"),Tut=o(function(e){if(e=Yt.sanitizeText(e,L0()),Te.records.branches.has(e)){Te.records.currBranch=e;let t=Te.records.branches.get(Te.records.currBranch);t===void 0||!t?Te.records.head=null:Te.records.head=Te.records.commits.get(t)??null}else{let t=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},"checkout");o(wut,"upsert");o(kut,"prettyPrintCommitHistory");f$t=o(function(){V.debug(Te.records.commits);let e=Eut()[0];kut([e])},"prettyPrint"),d$t=o(function(){Te.reset(),Ar()},"clear"),p$t=o(function(){return[...Te.records.branchConfig.values()].map((t,r)=>t.order!==null&&t.order!==void 0?t:{...t,order:parseFloat(`0.${r}`)}).sort((t,r)=>(t.order??0)-(r.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),m$t=o(function(){return Te.records.branches},"getBranches"),g$t=o(function(){return Te.records.commits},"getCommits"),Eut=o(function(){let e=[...Te.records.commits.values()];return e.forEach(function(t){V.debug(t.id)}),e.sort((t,r)=>t.seq-r.seq),e},"getCommitsArray"),y$t=o(function(){return Te.records.currBranch},"getCurrentBranch"),v$t=o(function(){return Te.records.direction},"getDirection"),x$t=o(function(){return Te.records.head},"getHead"),WE={commitType:jr,getConfig:L0,setDirection:a$t,setOptions:s$t,getOptions:o$t,commit:l$t,branch:c$t,merge:u$t,cherryPick:h$t,checkout:Tut,prettyPrint:f$t,clear:d$t,getBranchesAsObjArray:p$t,getBranches:m$t,getCommits:g$t,getCommitsArray:Eut,getCurrentBranch:y$t,getDirection:v$t,getHead:x$t,setAccTitle:Mr,getAccTitle:Br,getAccDescription:zr,setAccDescription:Fr,setDiagramTitle:cn,getDiagramTitle:Jr}});var b$t,w$t,T$t,k$t,E$t,C$t,S$t,Cut,Sut=R(()=>{"use strict";Hg();ce();Dx();LO();UE();b$t=o((e,t)=>{pf(e,t),e.dir&&t.setDirection(e.dir);for(let r of e.statements)w$t(r,t)},"populate"),w$t=o((e,t)=>{let n={Commit:o(i=>t.commit(T$t(i)),"Commit"),Branch:o(i=>t.branch(k$t(i)),"Branch"),Merge:o(i=>t.merge(E$t(i)),"Merge"),Checkout:o(i=>t.checkout(C$t(i)),"Checkout"),CherryPicking:o(i=>t.cherryPick(S$t(i)),"CherryPicking")}[e.$type];n?n(e):V.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),T$t=o(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?jr[e.type]:jr.NORMAL,tags:e.tags??void 0}),"parseCommit"),k$t=o(e=>({name:e.name,order:e.order??0}),"parseBranch"),E$t=o(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?jr[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),C$t=o(e=>e.branch,"parseCheckout"),S$t=o(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),Cut={parse:o(async e=>{let t=await Ul("gitGraph",e);V.debug(t),b$t(t,WE)},"parse")}});var A$t,tl,yf,vf,Hc,ju,D0,$s,Gs,YE,Rx,qE,gf,Rr,_$t,_ut,Lut,L$t,D$t,R$t,N$t,M$t,I$t,O$t,P$t,B$t,F$t,z$t,$$t,Aut,G$t,Nx,V$t,U$t,H$t,W$t,Y$t,Dut,Rut=R(()=>{"use strict";ur();Ue();ce();_r();UE();A$t=pt(),tl=A$t?.gitGraph,yf=10,vf=40,Hc=4,ju=2,D0=8,$s=new Map,Gs=new Map,YE=30,Rx=new Map,qE=[],gf=0,Rr="LR",_$t=o(()=>{$s.clear(),Gs.clear(),Rx.clear(),gf=0,qE=[],Rr="LR"},"clear"),_ut=o(e=>{let t=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|/gi):e).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),t.appendChild(i)}),t},"drawText"),Lut=o(e=>{let t,r,n;return Rr==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),e.forEach(i=>{let a=Rr==="TB"||Rr=="BT"?Gs.get(i)?.y:Gs.get(i)?.x;a!==void 0&&r(a,n)&&(t=i,n=a)}),t},"findClosestParent"),L$t=o(e=>{let t="",r=1/0;return e.forEach(n=>{let i=Gs.get(n).y;i<=r&&(t=n,r=i)}),t||void 0},"findClosestParentBT"),D$t=o((e,t,r)=>{let n=r,i=r,a=[];e.forEach(s=>{let l=t.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=N$t(l),i=Math.max(n,i)):a.push(l),M$t(l,n)}),n=i,a.forEach(s=>{I$t(s,n,r)}),e.forEach(s=>{let l=t.get(s);if(l?.parents.length){let u=L$t(l.parents);n=Gs.get(u).y-vf,n<=i&&(i=n);let h=$s.get(l.branch).pos,f=n-yf;Gs.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),R$t=o(e=>{let t=Lut(e.parents.filter(n=>n!==null));if(!t)throw new Error(`Closest parent not found for commit ${e.id}`);let r=Gs.get(t)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return r},"findClosestParentPos"),N$t=o(e=>R$t(e)+vf,"calculateCommitPosition"),M$t=o((e,t)=>{let r=$s.get(e.branch);if(!r)throw new Error(`Branch not found for commit ${e.id}`);let n=r.pos,i=t+yf;return Gs.set(e.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),I$t=o((e,t,r)=>{let n=$s.get(e.branch);if(!n)throw new Error(`Branch not found for commit ${e.id}`);let i=t+r,a=n.pos;Gs.set(e.id,{x:a,y:i})},"setRootPosition"),O$t=o((e,t,r,n,i,a)=>{if(a===jr.HIGHLIGHT)e.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${t.id} commit-highlight${i%D0} ${n}-outer`),e.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${t.id} commit${i%D0} ${n}-inner`);else if(a===jr.CHERRY_PICK)e.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${t.id} ${n}`),e.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${t.id} ${n}`),e.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${t.id} ${n}`),e.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${t.id} ${n}`),e.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${t.id} ${n}`);else{let s=e.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",t.type===jr.MERGE?9:10),s.attr("class",`commit ${t.id} commit${i%D0}`),a===jr.MERGE){let l=e.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${t.id} commit${i%D0}`)}a===jr.REVERSE&&e.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${t.id} commit${i%D0}`)}},"drawCommitBullet"),P$t=o((e,t,r,n)=>{if(t.type!==jr.CHERRY_PICK&&(t.customId&&t.type===jr.MERGE||t.type!==jr.MERGE)&&tl?.showCommitLabel){let i=e.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(t.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-ju).attr("y",r.y+13.5).attr("width",l.width+2*ju).attr("height",l.height+2*ju),Rr==="TB"||Rr==="BT"?(a.attr("x",r.x-(l.width+4*Hc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*Hc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),tl.rotateCommitLabel))if(Rr==="TB"||Rr==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),B$t=o((e,t,r,n)=>{if(t.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of t.tags.reverse()){let h=e.insert("polygon"),f=e.append("circle"),d=e.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Hc/2},${m+ju} + ${n-a/2-Hc/2},${m-ju} + ${r.posWithOffset-a/2-Hc},${m-p-ju} + ${r.posWithOffset+a/2+Hc},${m-p-ju} + ${r.posWithOffset+a/2+Hc},${m+p+ju} + ${r.posWithOffset-a/2-Hc},${m+p+ju}`),h.attr("cy",m).attr("cx",n-a/2+Hc/2).attr("r",1.5).attr("class","tag-hole"),Rr==="TB"||Rr==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+yf},${g-p-2} + ${r.x+yf+a+4},${g-p-2} + ${r.x+yf+a+4},${g+p+2} + ${r.x+yf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Hc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),F$t=o(e=>{switch(e.customType??e.type){case jr.NORMAL:return"commit-normal";case jr.REVERSE:return"commit-reverse";case jr.HIGHLIGHT:return"commit-highlight";case jr.MERGE:return"commit-merge";case jr.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),z$t=o((e,t,r,n)=>{let i={x:0,y:0};if(e.parents.length>0){let a=Lut(e.parents);if(a){let s=n.get(a)??i;return t==="TB"?s.y+vf:t==="BT"?(n.get(e.id)??i).y-vf:s.x+vf}}else return t==="TB"?YE:t==="BT"?(n.get(e.id)??i).y-vf:0;return 0},"calculatePosition"),$$t=o((e,t,r)=>{let n=Rr==="BT"&&r?t:t+yf,i=Rr==="TB"||Rr==="BT"?n:$s.get(e.branch)?.pos,a=Rr==="TB"||Rr==="BT"?$s.get(e.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${e.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),Aut=o((e,t,r)=>{if(!tl)throw new Error("GitGraph config not found");let n=e.append("g").attr("class","commit-bullets"),i=e.append("g").attr("class","commit-labels"),a=Rr==="TB"||Rr==="BT"?YE:0,s=[...t.keys()],l=tl?.parallelCommits??!1,u=o((f,d)=>{let p=t.get(f)?.seq,m=t.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Rr==="BT"&&(l&&D$t(h,t,a),h=h.reverse()),h.forEach(f=>{let d=t.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=z$t(d,Rr,a,Gs));let p=$$t(d,a,l);if(r){let m=F$t(d),g=d.customType??d.type,y=$s.get(d.branch)?.index??0;O$t(n,d,p,m,y,g),P$t(i,d,p,a),B$t(i,d,p,a)}Rr==="TB"||Rr==="BT"?Gs.set(d.id,{x:p.x,y:p.posWithOffset}):Gs.set(d.id,{x:p.posWithOffset,y:p.y}),a=Rr==="BT"&&l?a+vf:a+vf+yf,a>gf&&(gf=a)})},"drawCommits"),G$t=o((e,t,r,n,i)=>{let s=(Rr==="TB"||Rr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>e.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),Nx=o((e,t,r=0)=>{let n=e+Math.abs(e-t)/2;if(r>5)return n;if(qE.every(s=>Math.abs(s-n)>=10))return qE.push(n),n;let a=Math.abs(e-t);return Nx(e,t-a/5,r+1)},"findLane"),V$t=o((e,t,r,n)=>{let i=Gs.get(t.id),a=Gs.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${t.id} and ${r.id}`);let s=G$t(t,r,i,a,n),l="",u="",h=0,f=0,d=$s.get(r.branch)?.index;r.type===jr.MERGE&&t.id!==r.parents[0]&&(d=$s.get(t.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&t.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Rr==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&t.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===jr.MERGE&&t.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");e.append("path").attr("d",p).attr("class","arrow arrow"+d%D0)},"drawArrow"),U$t=o((e,t)=>{let r=e.append("g").attr("class","commit-arrows");[...t.keys()].forEach(n=>{let i=t.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{V$t(r,t.get(a),i,t)})})},"drawArrows"),H$t=o((e,t)=>{let r=e.append("g");t.forEach((n,i)=>{let a=i%D0,s=$s.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",gf),l.attr("y2",s),l.attr("class","branch branch"+a),Rr==="TB"?(l.attr("y1",YE),l.attr("x1",s),l.attr("y2",gf),l.attr("x2",s)):Rr==="BT"&&(l.attr("y1",gf),l.attr("x1",s),l.attr("y2",YE),l.attr("x2",s)),qE.push(s);let u=n.name,h=_ut(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(tl?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(tl?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Rr==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Rr==="BT"?(f.attr("x",s-m.width/2-10).attr("y",gf),p.attr("transform","translate("+(s-m.width/2-5)+", "+gf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),W$t=o(function(e,t,r,n,i){return $s.set(e,{pos:t,index:r}),t+=50+(i?40:0)+(Rr==="TB"||Rr==="BT"?n.width/2:0),t},"setBranchPosition"),Y$t=o(function(e,t,r,n){if(_$t(),V.debug("in gitgraph renderer",e+` +`,"id:",t,r),!tl)throw new Error("GitGraph config not found");let i=tl.rotateCommitLabel??!1,a=n.db;Rx=a.getCommits();let s=a.getBranchesAsObjArray();Rr=a.getDirection();let l=Gt(`[id="${t}"]`),u=0;s.forEach((h,f)=>{let d=_ut(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=W$t(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),Aut(l,Rx,!1),tl.showBranches&&H$t(l,s),U$t(l,Rx),Aut(l,Rx,!0),Oe.insertTitle(l,"gitTitleText",tl.titleTopMargin??0,a.getDiagramTitle()),Y7(void 0,l,tl.diagramPadding,tl.useMaxWidth)},"draw"),Dut={draw:Y$t}});var q$t,Nut,Mut=R(()=>{"use strict";q$t=o(e=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(t=>` + .branch-label${t} { fill: ${e["gitBranchLabel"+t]}; } + .commit${t} { stroke: ${e["git"+t]}; fill: ${e["git"+t]}; } + .commit-highlight${t} { stroke: ${e["gitInv"+t]}; fill: ${e["gitInv"+t]}; } + .label${t} { fill: ${e["git"+t]}; } + .arrow${t} { stroke: ${e["git"+t]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${e.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelColor};} + .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};} + .tag-label-bkg { fill: ${e.tagLabelBackground}; stroke: ${e.tagLabelBorder}; } + .tag-hole { fill: ${e.textColor}; } + + .commit-merge { + stroke: ${e.primaryColor}; + fill: ${e.primaryColor}; + } + .commit-reverse { + stroke: ${e.primaryColor}; + fill: ${e.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${e.primaryColor}; + fill: ${e.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,"getStyles"),Nut=q$t});var Iut={};xr(Iut,{diagram:()=>X$t});var X$t,Out=R(()=>{"use strict";Sut();LO();Rut();Mut();X$t={parser:Cut,db:WE,renderer:Dut,styles:Nut}});var DO,Fut,zut=R(()=>{"use strict";DO=function(){var e=o(function(I,C,O,D){for(O=O||{},D=I.length;D--;O[I[D]]=C);return O},"o"),t=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],w=[1,19],S=[1,20],T=[1,21],E=[1,22],_=[1,23],A=[1,25],L=[1,35],M={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(C,O,D,P,F,B,G){var z=B.length-1;switch(F){case 1:return B[z-1];case 2:this.$=[];break;case 3:B[z-1].push(B[z]),this.$=B[z-1];break;case 4:case 5:this.$=B[z];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=B[z].substr(18);break;case 19:P.TopAxis(),this.$=B[z].substr(8);break;case 20:P.setAxisFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 21:P.setTickInterval(B[z].substr(13)),this.$=B[z].substr(13);break;case 22:P.setExcludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 23:P.setIncludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 24:P.setTodayMarker(B[z].substr(12)),this.$=B[z].substr(12);break;case 27:P.setDiagramTitle(B[z].substr(6)),this.$=B[z].substr(6);break;case 28:this.$=B[z].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=B[z].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(B[z].substr(8)),this.$=B[z].substr(8);break;case 33:P.addTask(B[z-1],B[z]),this.$="task";break;case 34:this.$=B[z-1],P.setClickEvent(B[z-1],B[z],null);break;case 35:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],B[z]);break;case 36:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],null),P.setLink(B[z-2],B[z]);break;case 37:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-2],B[z-1]),P.setLink(B[z-3],B[z]);break;case 38:this.$=B[z-2],P.setClickEvent(B[z-2],B[z],null),P.setLink(B[z-2],B[z-1]);break;case 39:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-1],B[z]),P.setLink(B[z-3],B[z-2]);break;case 40:this.$=B[z-1],P.setLink(B[z-1],B[z]);break;case 41:case 47:this.$=B[z-1]+" "+B[z];break;case 42:case 43:case 45:this.$=B[z-2]+" "+B[z-1]+" "+B[z];break;case 44:case 46:this.$=B[z-3]+" "+B[z-2]+" "+B[z-1]+" "+B[z];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:S,33:T,35:E,36:_,37:24,38:A,40:L},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:S,33:T,35:E,36:_,37:24,38:A,40:L},e(t,[2,5]),e(t,[2,6]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,20]),e(t,[2,21]),e(t,[2,22]),e(t,[2,23]),e(t,[2,24]),e(t,[2,25]),e(t,[2,26]),e(t,[2,27]),{32:[1,37]},{34:[1,38]},e(t,[2,30]),e(t,[2,31]),e(t,[2,32]),{39:[1,39]},e(t,[2,8]),e(t,[2,9]),e(t,[2,10]),e(t,[2,11]),e(t,[2,12]),e(t,[2,13]),e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),{41:[1,40],43:[1,41]},e(t,[2,4]),e(t,[2,28]),e(t,[2,29]),e(t,[2,33]),e(t,[2,34],{42:[1,42],43:[1,43]}),e(t,[2,40],{41:[1,44]}),e(t,[2,35],{43:[1,45]}),e(t,[2,36]),e(t,[2,38],{42:[1,46]}),e(t,[2,37]),e(t,[2,39])],defaultActions:{},parseError:o(function(C,O){if(O.recoverable)this.trace(C);else{var D=new Error(C);throw D.hash=O,D}},"parseError"),parse:o(function(C){var O=this,D=[0],P=[],F=[null],B=[],G=this.table,z="",W=0,Q=0,j=0,at=2,X=1,J=B.slice.call(arguments,1),Z=Object.create(this.lexer),H={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(H.yy[q]=this.yy[q]);Z.setInput(C,H.yy),H.yy.lexer=Z,H.yy.parser=this,typeof Z.yylloc>"u"&&(Z.yylloc={});var K=Z.yylloc;B.push(K);var ot=Z.options&&Z.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ct(mt){D.length=D.length-2*mt,F.length=F.length-mt,B.length=B.length-mt}o(ct,"popStack");function ut(){var mt;return mt=P.pop()||Z.lex()||X,typeof mt!="number"&&(mt instanceof Array&&(P=mt,mt=P.pop()),mt=O.symbols_[mt]||mt),mt}o(ut,"lex");for(var et,Mt,it,wt,Ot,St,Vt={},Pt,_t,dt,Y;;){if(it=D[D.length-1],this.defaultActions[it]?wt=this.defaultActions[it]:((et===null||typeof et>"u")&&(et=ut()),wt=G[it]&&G[it][et]),typeof wt>"u"||!wt.length||!wt[0]){var ft="";Y=[];for(Pt in G[it])this.terminals_[Pt]&&Pt>at&&Y.push("'"+this.terminals_[Pt]+"'");Z.showPosition?ft="Parse error on line "+(W+1)+`: +`+Z.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[et]||et)+"'":ft="Parse error on line "+(W+1)+": Unexpected "+(et==X?"end of input":"'"+(this.terminals_[et]||et)+"'"),this.parseError(ft,{text:Z.match,token:this.terminals_[et]||et,line:Z.yylineno,loc:K,expected:Y})}if(wt[0]instanceof Array&&wt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+it+", token: "+et);switch(wt[0]){case 1:D.push(et),F.push(Z.yytext),B.push(Z.yylloc),D.push(wt[1]),et=null,Mt?(et=Mt,Mt=null):(Q=Z.yyleng,z=Z.yytext,W=Z.yylineno,K=Z.yylloc,j>0&&j--);break;case 2:if(_t=this.productions_[wt[1]][1],Vt.$=F[F.length-_t],Vt._$={first_line:B[B.length-(_t||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(_t||1)].first_column,last_column:B[B.length-1].last_column},ot&&(Vt._$.range=[B[B.length-(_t||1)].range[0],B[B.length-1].range[1]]),St=this.performAction.apply(Vt,[z,Q,W,H.yy,wt[1],F,B].concat(J)),typeof St<"u")return St;_t&&(D=D.slice(0,-1*_t*2),F=F.slice(0,-1*_t),B=B.slice(0,-1*_t)),D.push(this.productions_[wt[1]][0]),F.push(Vt.$),B.push(Vt._$),dt=G[D[D.length-2]][D[D.length-1]],D.push(dt);break;case 3:return!0}}return!0},"parse")},N=function(){var I={EOF:1,parseError:o(function(O,D){if(this.yy.parser)this.yy.parser.parseError(O,D);else throw new Error(O)},"parseError"),setInput:o(function(C,O){return this.yy=O||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var O=C.match(/(?:\r\n?|\n).*/g);return O?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var O=C.length,D=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),D.length-1&&(this.yylineno-=D.length-1);var F=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:D?(D.length===P.length?this.yylloc.first_column:0)+P[P.length-D.length].length-D[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[F[0],F[0]+this.yyleng-O]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),O=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+O+"^"},"showPosition"),test_match:o(function(C,O){var D,P,F;if(this.options.backtrack_lexer&&(F={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(F.yylloc.range=this.yylloc.range.slice(0))),P=C[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],D=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),D)return D;if(this._backtrack){for(var B in F)this[B]=F[B];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,O,D,P;this._more||(this.yytext="",this.match="");for(var F=this._currentRules(),B=0;BO[0].length)){if(O=D,P=B,this.options.backtrack_lexer){if(C=this.test_match(D,F[B]),C!==!1)return C;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(C=this.test_match(O,F[P]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,D,P,F){var B=F;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return I}();M.lexer=N;function k(){this.yy={}}return o(k,"Parser"),k.prototype=M,M.Parser=k,new k}();DO.parser=DO;Fut=DO});var $ut=Ti((RO,NO)=>{"use strict";(function(e,t){typeof RO=="object"&&typeof NO<"u"?NO.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_isoWeek=t()})(RO,function(){"use strict";var e="day";return function(t,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),e)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),e);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,e));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}})});var Gut=Ti((MO,IO)=>{"use strict";(function(e,t){typeof MO=="object"&&typeof IO<"u"?IO.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_customParseFormat=t()})(MO,function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x}(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(A,L,M){var N=M&&M.toUpperCase();return L||v[M]||e[M]||v[N].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,I,C){return I||C.slice(1)})})).match(t),b=x.length,w=0;w-1)return new Date((D==="X"?1e3:1)*O);var B=m(D)(O),G=B.year,z=B.month,W=B.day,Q=B.hours,j=B.minutes,at=B.seconds,X=B.milliseconds,J=B.zone,Z=B.week,H=new Date,q=W||(G||z?1:H.getDate()),K=G||H.getFullYear(),ot=0;G&&!z||(ot=z>0?z-1:H.getMonth());var ct,ut=Q||0,et=j||0,Mt=at||0,it=X||0;return J?new Date(Date.UTC(K,ot,q,ut,et,Mt,it+60*J.offset*1e3)):P?new Date(Date.UTC(K,ot,q,ut,et,Mt,it)):(ct=new Date(K,ot,q,ut,et,Mt,it),Z&&(ct=F(ct).week(Z).toDate()),ct)}catch{return new Date("")}}(S,_,T,v),this.init(),N&&N!==!0&&(this.$L=this.locale(N).$L),M&&S!=this.format(_)&&(this.$d=new Date("")),s={}}else if(_ instanceof Array)for(var k=_.length,I=1;I<=k;I+=1){E[1]=_[I-1];var C=v.apply(this,E);if(C.isValid()){this.$d=C.$d,this.$L=C.$L,this.init();break}I===k&&(this.$d=new Date(""))}else b.call(this,w)}}})});var Vut=Ti((OO,PO)=>{"use strict";(function(e,t){typeof OO=="object"&&typeof PO<"u"?PO.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self).dayjs_plugin_advancedFormat=t()})(OO,function(){"use strict";return function(e,t){var r=t.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}});return n.bind(this)(u)}}})});function iht(e,t,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);e[0].match(s)&&(t[i]=!0,e.shift(1),n=!0)})}var Wut,vo,Yut,qut,Xut,Uut,Wc,$O,GO,VO,Mx,Ix,UO,HO,KE,Yg,WO,jut,YO,Ox,qO,XO,QE,BO,Z$t,J$t,tGt,eGt,rGt,nGt,iGt,aGt,sGt,oGt,lGt,cGt,uGt,hGt,fGt,dGt,pGt,mGt,gGt,yGt,vGt,xGt,bGt,Kut,wGt,TGt,kGt,Qut,EGt,FO,Zut,Jut,XE,Wg,CGt,SGt,zO,jE,Hi,tht,AGt,R0,_Gt,Hut,LGt,eht,DGt,rht,RGt,NGt,nht,aht=R(()=>{"use strict";Wut=Qi(Qp(),1),vo=Qi(Jb(),1),Yut=Qi($ut(),1),qut=Qi(Gut(),1),Xut=Qi(Vut(),1);ce();Ue();_r();Ci();vo.default.extend(Yut.default);vo.default.extend(qut.default);vo.default.extend(Xut.default);Uut={friday:5,saturday:6},Wc="",$O="",VO="",Mx=[],Ix=[],UO=new Map,HO=[],KE=[],Yg="",WO="",jut=["active","done","crit","milestone"],YO=[],Ox=!1,qO=!1,XO="sunday",QE="saturday",BO=0,Z$t=o(function(){HO=[],KE=[],Yg="",YO=[],XE=0,zO=void 0,jE=void 0,Hi=[],Wc="",$O="",WO="",GO=void 0,VO="",Mx=[],Ix=[],Ox=!1,qO=!1,BO=0,UO=new Map,Ar(),XO="sunday",QE="saturday"},"clear"),J$t=o(function(e){$O=e},"setAxisFormat"),tGt=o(function(){return $O},"getAxisFormat"),eGt=o(function(e){GO=e},"setTickInterval"),rGt=o(function(){return GO},"getTickInterval"),nGt=o(function(e){VO=e},"setTodayMarker"),iGt=o(function(){return VO},"getTodayMarker"),aGt=o(function(e){Wc=e},"setDateFormat"),sGt=o(function(){Ox=!0},"enableInclusiveEndDates"),oGt=o(function(){return Ox},"endDatesAreInclusive"),lGt=o(function(){qO=!0},"enableTopAxis"),cGt=o(function(){return qO},"topAxisEnabled"),uGt=o(function(e){WO=e},"setDisplayMode"),hGt=o(function(){return WO},"getDisplayMode"),fGt=o(function(){return Wc},"getDateFormat"),dGt=o(function(e){Mx=e.toLowerCase().split(/[\s,]+/)},"setIncludes"),pGt=o(function(){return Mx},"getIncludes"),mGt=o(function(e){Ix=e.toLowerCase().split(/[\s,]+/)},"setExcludes"),gGt=o(function(){return Ix},"getExcludes"),yGt=o(function(){return UO},"getLinks"),vGt=o(function(e){Yg=e,HO.push(e)},"addSection"),xGt=o(function(){return HO},"getSections"),bGt=o(function(){let e=Hut(),t=10,r=0;for(;!e&&r[\d\w- ]+)/.exec(r);if(i!==null){let s=null;for(let u of i.groups.ids.split(" ")){let h=R0(u);h!==void 0&&(!s||h.endTime>s.endTime)&&(s=h)}if(s)return s.endTime;let l=new Date;return l.setHours(0,0,0,0),l}let a=(0,vo.default)(r,t.trim(),!0);if(a.isValid())return a.toDate();{V.debug("Invalid date:"+r),V.debug("With date format:"+t.trim());let s=new Date(r);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+r);return s}},"getStartDate"),Zut=o(function(e){let t=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(e.trim());return t!==null?[Number.parseFloat(t[1]),t[2]]:[NaN,"ms"]},"parseDuration"),Jut=o(function(e,t,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=R0(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),UO.set(n,r))}),eht(e,"clickable")},"setLink"),eht=o(function(e,t){e.split(",").forEach(function(r){let n=R0(r);n!==void 0&&n.classes.push(t)})},"setClass"),DGt=o(function(e,t,r){if(pt().securityLevel!=="loose"||t===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Oe.runFunc(t,...n)})},"setClickFun"),rht=o(function(e,t){YO.push(function(){let r=document.querySelector(`[id="${e}"]`);r!==null&&r.addEventListener("click",function(){t()})},function(){let r=document.querySelector(`[id="${e}-text"]`);r!==null&&r.addEventListener("click",function(){t()})})},"pushFun"),RGt=o(function(e,t,r){e.split(",").forEach(function(n){DGt(n,t,r)}),eht(e,"clickable")},"setClickEvent"),NGt=o(function(e){YO.forEach(function(t){t(e)})},"bindFunctions"),nht={getConfig:o(()=>pt().gantt,"getConfig"),clear:Z$t,setDateFormat:aGt,getDateFormat:fGt,enableInclusiveEndDates:sGt,endDatesAreInclusive:oGt,enableTopAxis:lGt,topAxisEnabled:cGt,setAxisFormat:J$t,getAxisFormat:tGt,setTickInterval:eGt,getTickInterval:rGt,setTodayMarker:nGt,getTodayMarker:iGt,setAccTitle:Mr,getAccTitle:Br,setDiagramTitle:cn,getDiagramTitle:Jr,setDisplayMode:uGt,getDisplayMode:hGt,setAccDescription:Fr,getAccDescription:zr,addSection:vGt,getSections:xGt,getTasks:bGt,addTask:AGt,findTaskById:R0,addTaskOrg:_Gt,setIncludes:dGt,getIncludes:pGt,setExcludes:mGt,getExcludes:gGt,setClickEvent:RGt,setLink:LGt,getLinks:yGt,bindFunctions:NGt,parseDuration:Zut,isInvalidDate:Kut,setWeekday:wGt,getWeekday:TGt,setWeekend:kGt};o(iht,"getTaskTags")});var ZE,MGt,sht,IGt,Ku,OGt,oht,lht=R(()=>{"use strict";ZE=Qi(Jb(),1);ce();ur();hr();Ue();Jn();MGt=o(function(){V.debug("Something is calling, setConf, remove the call")},"setConf"),sht={monday:Lh,tuesday:U3,wednesday:H3,thursday:gc,friday:W3,saturday:Y3,sunday:Tl},IGt=o((e,t)=>{let r=[...e].map(()=>-1/0),n=[...e].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+t,s>i&&(i=s);break}return i},"getMaxIntersections"),OGt=o(function(e,t,r,n){let i=pt().gantt,a=pt().securityLevel,s;a==="sandbox"&&(s=Gt("#i"+t));let l=a==="sandbox"?Gt(s.nodes()[0].contentDocument.body):Gt("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(t);Ku=h.parentElement.offsetWidth,Ku===void 0&&(Ku=1200),i.useWidth!==void 0&&(Ku=i.useWidth);let f=n.db.getTasks(),d=[];for(let A of f)d.push(A.type);d=_(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let A={};for(let M of f)A[M.section]===void 0?A[M.section]=[M]:A[M.section].push(M);let L=0;for(let M of Object.keys(A)){let N=IGt(A[M],L)+1;L+=N,m+=N*(i.barHeight+i.barGap),p[M]=N}}else{m+=f.length*(i.barHeight+i.barGap);for(let A of d)p[A]=f.filter(L=>L.type===A).length}h.setAttribute("viewBox","0 0 "+Ku+" "+m);let g=l.select(`[id="${t}"]`),y=j3().domain([t3(f,function(A){return A.startTime}),J4(f,function(A){return A.endTime})]).rangeRound([0,Ku-i.leftPadding-i.rightPadding]);function v(A,L){let M=A.startTime,N=L.startTime,k=0;return M>N?k=1:MG.order))].map(G=>A.find(z=>z.order===G));g.append("g").selectAll("rect").data(D).enter().append("rect").attr("x",0).attr("y",function(G,z){return z=G.order,z*L+M-2}).attr("width",function(){return C-i.rightPadding/2}).attr("height",L).attr("class",function(G){for(let[z,W]of d.entries())if(G.type===W)return"section section"+z%i.numberSectionStyles;return"section section0"});let P=g.append("g").selectAll("rect").data(A).enter(),F=n.db.getLinks();if(P.append("rect").attr("id",function(G){return G.id}).attr("rx",3).attr("ry",3).attr("x",function(G){return G.milestone?y(G.startTime)+N+.5*(y(G.endTime)-y(G.startTime))-.5*k:y(G.startTime)+N}).attr("y",function(G,z){return z=G.order,z*L+M}).attr("width",function(G){return G.milestone?k:y(G.renderEndTime||G.endTime)-y(G.startTime)}).attr("height",k).attr("transform-origin",function(G,z){return z=G.order,(y(G.startTime)+N+.5*(y(G.endTime)-y(G.startTime))).toString()+"px "+(z*L+M+.5*k).toString()+"px"}).attr("class",function(G){let z="task",W="";G.classes.length>0&&(W=G.classes.join(" "));let Q=0;for(let[at,X]of d.entries())G.type===X&&(Q=at%i.numberSectionStyles);let j="";return G.active?G.crit?j+=" activeCrit":j=" active":G.done?G.crit?j=" doneCrit":j=" done":G.crit&&(j+=" crit"),j.length===0&&(j=" task"),G.milestone&&(j=" milestone "+j),j+=Q,j+=" "+W,z+j}),P.append("text").attr("id",function(G){return G.id+"-text"}).text(function(G){return G.task}).attr("font-size",i.fontSize).attr("x",function(G){let z=y(G.startTime),W=y(G.renderEndTime||G.endTime);G.milestone&&(z+=.5*(y(G.endTime)-y(G.startTime))-.5*k),G.milestone&&(W=z+k);let Q=this.getBBox().width;return Q>W-z?W+Q+1.5*i.leftPadding>C?z+N-5:W+N+5:(W-z)/2+z+N}).attr("y",function(G,z){return z=G.order,z*L+i.barHeight/2+(i.fontSize/2-2)+M}).attr("text-height",k).attr("class",function(G){let z=y(G.startTime),W=y(G.endTime);G.milestone&&(W=z+k);let Q=this.getBBox().width,j="";G.classes.length>0&&(j=G.classes.join(" "));let at=0;for(let[J,Z]of d.entries())G.type===Z&&(at=J%i.numberSectionStyles);let X="";return G.active&&(G.crit?X="activeCritText"+at:X="activeText"+at),G.done?G.crit?X=X+" doneCritText"+at:X=X+" doneText"+at:G.crit&&(X=X+" critText"+at),G.milestone&&(X+=" milestoneText"),Q>W-z?W+Q+1.5*i.leftPadding>C?j+" taskTextOutsideLeft taskTextOutside"+at+" "+X:j+" taskTextOutsideRight taskTextOutside"+at+" "+X+" width-"+Q:j+" taskText taskText"+at+" "+X+" width-"+Q}),pt().securityLevel==="sandbox"){let G;G=Gt("#i"+t);let z=G.nodes()[0].contentDocument;P.filter(function(W){return F.has(W.id)}).each(function(W){var Q=z.querySelector("#"+W.id),j=z.querySelector("#"+W.id+"-text");let at=Q.parentNode;var X=z.createElement("a");X.setAttribute("xlink:href",F.get(W.id)),X.setAttribute("target","_top"),at.appendChild(X),X.appendChild(Q),X.appendChild(j)})}}o(b,"drawRects");function w(A,L,M,N,k,I,C,O){if(C.length===0&&O.length===0)return;let D,P;for(let{startTime:Q,endTime:j}of I)(D===void 0||QP)&&(P=j);if(!D||!P)return;if((0,ZE.default)(P).diff((0,ZE.default)(D),"year")>5){V.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),B=[],G=null,z=(0,ZE.default)(D);for(;z.valueOf()<=P;)n.db.isInvalidDate(z,F,C,O)?G?G.end=z:G={start:z,end:z}:G&&(B.push(G),G=null),z=z.add(1,"d");g.append("g").selectAll("rect").data(B).enter().append("rect").attr("id",function(Q){return"exclude-"+Q.start.format("YYYY-MM-DD")}).attr("x",function(Q){return y(Q.start)+M}).attr("y",i.gridLineStartPadding).attr("width",function(Q){let j=Q.end.add(1,"day");return y(j)-y(Q.start)}).attr("height",k-L-i.gridLineStartPadding).attr("transform-origin",function(Q,j){return(y(Q.start)+M+.5*(y(Q.end)-y(Q.start))).toString()+"px "+(j*A+.5*k).toString()+"px"}).attr("class","exclude-range")}o(w,"drawExcludeDays");function S(A,L,M,N){let k=aA(y).tickSize(-N+L+i.gridLineStartPadding).tickFormat(bd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d")),C=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(C!==null){let O=C[1],D=C[2],P=n.db.getWeekday()||i.weekday;switch(D){case"millisecond":k.ticks(pc.every(O));break;case"second":k.ticks(Zs.every(O));break;case"minute":k.ticks(Tu.every(O));break;case"hour":k.ticks(ku.every(O));break;case"day":k.ticks(Mo.every(O));break;case"week":k.ticks(sht[P].every(O));break;case"month":k.ticks(Eu.every(O));break}}if(g.append("g").attr("class","grid").attr("transform","translate("+A+", "+(N-50)+")").call(k).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let O=iA(y).tickSize(-N+L+i.gridLineStartPadding).tickFormat(bd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(C!==null){let D=C[1],P=C[2],F=n.db.getWeekday()||i.weekday;switch(P){case"millisecond":O.ticks(pc.every(D));break;case"second":O.ticks(Zs.every(D));break;case"minute":O.ticks(Tu.every(D));break;case"hour":O.ticks(ku.every(D));break;case"day":O.ticks(Mo.every(D));break;case"week":O.ticks(sht[F].every(D));break;case"month":O.ticks(Eu.every(D));break}}g.append("g").attr("class","grid").attr("transform","translate("+A+", "+L+")").call(O).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(S,"makeGrid");function T(A,L){let M=0,N=Object.keys(p).map(k=>[k,p[k]]);g.append("g").selectAll("text").data(N).enter().append(function(k){let I=k[0].split(Yt.lineBreakRegex),C=-(I.length-1)/2,O=u.createElementNS("http://www.w3.org/2000/svg","text");O.setAttribute("dy",C+"em");for(let[D,P]of I.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),D>0&&F.setAttribute("dy","1em"),F.textContent=P,O.appendChild(F)}return O}).attr("x",10).attr("y",function(k,I){if(I>0)for(let C=0;C{"use strict";PGt=o(e=>` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${e.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${e.sectionBkgColor}; + } + + .section2 { + fill: ${e.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${e.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${e.titleColor}; + } + + .sectionTitle1 { + fill: ${e.titleColor}; + } + + .sectionTitle2 { + fill: ${e.titleColor}; + } + + .sectionTitle3 { + fill: ${e.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${e.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${e.fontFamily}; + fill: ${e.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${e.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${e.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${e.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${e.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${e.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${e.taskBkgColor}; + stroke: ${e.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${e.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${e.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${e.activeTaskBkgColor}; + stroke: ${e.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${e.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${e.doneTaskBorderColor}; + fill: ${e.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${e.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${e.critBorderColor}; + fill: ${e.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${e.critBorderColor}; + fill: ${e.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${e.critBorderColor}; + fill: ${e.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${e.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${e.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.titleColor||e.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,"getStyles"),cht=PGt});var hht={};xr(hht,{diagram:()=>BGt});var BGt,fht=R(()=>{"use strict";zut();aht();lht();uht();BGt={parser:Fut,db:nht,renderer:oht,styles:cht}});var mht,ght=R(()=>{"use strict";Hg();ce();mht={parse:o(async e=>{let t=await Ul("info",e);V.debug(t)},"parse")}});var Px,jO=R(()=>{Px="11.3.0"});var VGt,UGt,yht,vht=R(()=>{"use strict";jO();VGt={version:Px},UGt=o(()=>VGt.version,"getVersion"),yht={getVersion:UGt}});var Vs,xf=R(()=>{"use strict";ur();Ue();Vs=o(e=>{let{securityLevel:t}=pt(),r=Gt("body");if(t==="sandbox"){let a=Gt(`#i${e}`).node()?.contentDocument??document;r=Gt(a.body)}return r.select(`#${e}`)},"selectSvgElement")});var HGt,xht,bht=R(()=>{"use strict";ce();xf();Jn();HGt=o((e,t,r)=>{V.debug(`rendering info diagram +`+e);let n=Vs(t);Pr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),xht={draw:HGt}});var wht={};xr(wht,{diagram:()=>WGt});var WGt,Tht=R(()=>{"use strict";ght();vht();bht();WGt={parser:mht,db:yht,renderer:xht}});var Cht,KO,JE,QO,XGt,jGt,KGt,QGt,ZGt,JGt,tVt,t6,ZO=R(()=>{"use strict";ce();Ci();hl();Cht=Er.pie,KO={sections:new Map,showData:!1,config:Cht},JE=KO.sections,QO=KO.showData,XGt=structuredClone(Cht),jGt=o(()=>structuredClone(XGt),"getConfig"),KGt=o(()=>{JE=new Map,QO=KO.showData,Ar()},"clear"),QGt=o(({label:e,value:t})=>{JE.has(e)||(JE.set(e,t),V.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),ZGt=o(()=>JE,"getSections"),JGt=o(e=>{QO=e},"setShowData"),tVt=o(()=>QO,"getShowData"),t6={getConfig:jGt,clear:KGt,setDiagramTitle:cn,getDiagramTitle:Jr,setAccTitle:Mr,getAccTitle:Br,setAccDescription:Fr,getAccDescription:zr,addSection:QGt,getSections:ZGt,setShowData:JGt,getShowData:tVt}});var eVt,Sht,Aht=R(()=>{"use strict";Hg();ce();Dx();ZO();eVt=o((e,t)=>{pf(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),Sht={parse:o(async e=>{let t=await Ul("pie",e);V.debug(t),eVt(t,t6)},"parse")}});var rVt,_ht,Lht=R(()=>{"use strict";rVt=o(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),_ht=rVt});var nVt,iVt,Dht,Rht=R(()=>{"use strict";ur();Ue();ce();xf();Jn();_r();nVt=o(e=>{let t=[...e.entries()].map(n=>({label:n[0],value:n[1]})).sort((n,i)=>i.value-n.value);return e5().value(n=>n.value)(t)},"createPieArcs"),iVt=o((e,t,r,n)=>{V.debug(`rendering pie chart +`+e);let i=n.db,a=pt(),s=Ss(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Vs(t),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Tc(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=Cl().innerRadius(0).outerRadius(x),w=Cl().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let S=i.getSections(),T=nVt(S),E=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],_=bu(E);m.selectAll("mySlices").data(T).enter().append("path").attr("d",b).attr("fill",k=>_(k.data.label)).attr("class","pieCircle");let A=0;S.forEach(k=>{A+=k}),m.selectAll("mySlices").data(T).enter().append("text").text(k=>(k.data.value/A*100).toFixed(0)+"%").attr("transform",k=>"translate("+w.centroid(k)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let L=m.selectAll(".legend").data(_.domain()).enter().append("g").attr("class","legend").attr("transform",(k,I)=>{let C=u+h,O=C*_.domain().length/2,D=12*u,P=I*C-O;return"translate("+D+","+P+")"});L.append("rect").attr("width",u).attr("height",u).style("fill",_).style("stroke",_),L.data(T).append("text").attr("x",u+h).attr("y",u-h).text(k=>{let{label:I,value:C}=k.data;return i.getShowData()?`${I} [${C}]`:I});let M=Math.max(...L.selectAll("text").nodes().map(k=>k?.getBoundingClientRect().width??0)),N=d+l+u+h+M;p.attr("viewBox",`0 0 ${N} ${f}`),Pr(p,f,N,s.useMaxWidth)},"draw"),Dht={draw:iVt}});var Nht={};xr(Nht,{diagram:()=>aVt});var aVt,Mht=R(()=>{"use strict";Aht();ZO();Lht();Rht();aVt={parser:Sht,db:t6,renderer:Dht,styles:_ht}});var JO,Pht,Bht=R(()=>{"use strict";JO=function(){var e=o(function(Tt,kt,Ct,At){for(Ct=Ct||{},At=Tt.length;At--;Ct[Tt[At]]=kt);return Ct},"o"),t=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],w=[1,19],S=[1,20],T=[1,21],E=[1,22],_=[1,24],A=[1,25],L=[1,26],M=[1,27],N=[1,28],k=[1,29],I=[1,32],C=[1,33],O=[1,34],D=[1,39],P=[1,40],F=[1,42],B=[1,44],G=[1,62],z=[1,61],W=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Q=[1,65],j=[1,66],at=[1,67],X=[1,68],J=[1,69],Z=[1,70],H=[1,71],q=[1,72],K=[1,73],ot=[1,74],ct=[1,75],ut=[1,76],et=[4,5,6,7,8,9,10,11,12,13,14,15,18],Mt=[1,90],it=[1,91],wt=[1,92],Ot=[1,99],St=[1,93],Vt=[1,96],Pt=[1,94],_t=[1,95],dt=[1,97],Y=[1,98],ft=[1,102],mt=[10,55,56,57],rt=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],ht={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(kt,Ct,At,$t,Nt,yt,Ut){var zt=yt.length-1;switch(Nt){case 23:this.$=yt[zt];break;case 24:this.$=yt[zt-1]+""+yt[zt];break;case 26:this.$=yt[zt-1]+yt[zt];break;case 27:this.$=[yt[zt].trim()];break;case 28:yt[zt-2].push(yt[zt].trim()),this.$=yt[zt-2];break;case 29:this.$=yt[zt-4],$t.addClass(yt[zt-2],yt[zt]);break;case 37:this.$=[];break;case 42:this.$=yt[zt].trim(),$t.setDiagramTitle(this.$);break;case 43:this.$=yt[zt].trim(),$t.setAccTitle(this.$);break;case 44:case 45:this.$=yt[zt].trim(),$t.setAccDescription(this.$);break;case 46:$t.addSection(yt[zt].substr(8)),this.$=yt[zt].substr(8);break;case 47:$t.addPoint(yt[zt-3],"",yt[zt-1],yt[zt],[]);break;case 48:$t.addPoint(yt[zt-4],yt[zt-3],yt[zt-1],yt[zt],[]);break;case 49:$t.addPoint(yt[zt-4],"",yt[zt-2],yt[zt-1],yt[zt]);break;case 50:$t.addPoint(yt[zt-5],yt[zt-4],yt[zt-2],yt[zt-1],yt[zt]);break;case 51:$t.setXAxisLeftText(yt[zt-2]),$t.setXAxisRightText(yt[zt]);break;case 52:yt[zt-1].text+=" \u27F6 ",$t.setXAxisLeftText(yt[zt-1]);break;case 53:$t.setXAxisLeftText(yt[zt]);break;case 54:$t.setYAxisBottomText(yt[zt-2]),$t.setYAxisTopText(yt[zt]);break;case 55:yt[zt-1].text+=" \u27F6 ",$t.setYAxisBottomText(yt[zt-1]);break;case 56:$t.setYAxisBottomText(yt[zt]);break;case 57:$t.setQuadrant1Text(yt[zt]);break;case 58:$t.setQuadrant2Text(yt[zt]);break;case 59:$t.setQuadrant3Text(yt[zt]);break;case 60:$t.setQuadrant4Text(yt[zt]);break;case 64:this.$={text:yt[zt],type:"text"};break;case 65:this.$={text:yt[zt-1].text+""+yt[zt],type:yt[zt-1].type};break;case 66:this.$={text:yt[zt],type:"text"};break;case 67:this.$={text:yt[zt],type:"markdown"};break;case 68:this.$=yt[zt];break;case 69:this.$=yt[zt-1]+""+yt[zt];break}},"anonymous"),table:[{18:t,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:t,26:8,27:2,28:r,55:n,56:i,57:a},{18:t,26:9,27:2,28:r,55:n,56:i,57:a},e(s,[2,33],{29:10}),e(l,[2,61]),e(l,[2,62]),e(l,[2,63]),{1:[2,30]},{1:[2,31]},e(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:S,41:T,42:E,48:_,50:A,51:L,52:M,53:N,54:k,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),e(s,[2,34]),{27:45,55:n,56:i,57:a},e(u,[2,37]),e(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:S,41:T,42:E,48:_,50:A,51:L,52:M,53:N,54:k,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),e(u,[2,39]),e(u,[2,40]),e(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},e(u,[2,45]),e(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:I,61:C,63:O,64:D,65:P,66:F,67:B},{4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,44:[1,57],47:[1,58],58:60,59:59,63:O,64:D,65:P,66:F,67:B},e(W,[2,64]),e(W,[2,66]),e(W,[2,67]),e(W,[2,70]),e(W,[2,71]),e(W,[2,72]),e(W,[2,73]),e(W,[2,74]),e(W,[2,75]),e(W,[2,76]),e(W,[2,77]),e(W,[2,78]),e(W,[2,79]),e(W,[2,80]),e(s,[2,35]),e(u,[2,38]),e(u,[2,42]),e(u,[2,43]),e(u,[2,44]),{3:64,4:Q,5:j,6:at,7:X,8:J,9:Z,10:H,11:q,12:K,13:ot,14:ct,15:ut,21:63},e(u,[2,53],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,49:[1,77],63:O,64:D,65:P,66:F,67:B}),e(u,[2,56],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,49:[1,78],63:O,64:D,65:P,66:F,67:B}),e(u,[2,57],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),e(u,[2,58],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),e(u,[2,59],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),e(u,[2,60],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),{45:[1,79]},{44:[1,80]},e(W,[2,65]),e(W,[2,81]),e(W,[2,82]),e(W,[2,83]),{3:82,4:Q,5:j,6:at,7:X,8:J,9:Z,10:H,11:q,12:K,13:ot,14:ct,15:ut,18:[1,81]},e(et,[2,23]),e(et,[2,1]),e(et,[2,2]),e(et,[2,3]),e(et,[2,4]),e(et,[2,5]),e(et,[2,6]),e(et,[2,7]),e(et,[2,8]),e(et,[2,9]),e(et,[2,10]),e(et,[2,11]),e(et,[2,12]),e(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),e(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:I,61:C,63:O,64:D,65:P,66:F,67:B}),{46:[1,85]},{45:[1,86]},{4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,16:89,17:Pt,18:_t,19:dt,20:Y,22:88,23:87},e(et,[2,24]),e(u,[2,51],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),e(u,[2,54],{59:59,58:60,4:f,5:d,8:G,10:p,12:m,13:g,14:y,18:z,63:O,64:D,65:P,66:F,67:B}),e(u,[2,47],{22:88,16:89,23:100,4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,17:Pt,18:_t,19:dt,20:Y}),{46:[1,101]},e(u,[2,29],{10:ft}),e(mt,[2,27],{16:103,4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,17:Pt,18:_t,19:dt,20:Y}),e(rt,[2,25]),e(rt,[2,13]),e(rt,[2,14]),e(rt,[2,15]),e(rt,[2,16]),e(rt,[2,17]),e(rt,[2,18]),e(rt,[2,19]),e(rt,[2,20]),e(rt,[2,21]),e(rt,[2,22]),e(u,[2,49],{10:ft}),e(u,[2,48],{22:88,16:89,23:104,4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,17:Pt,18:_t,19:dt,20:Y}),{4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,16:89,17:Pt,18:_t,19:dt,20:Y,22:105},e(rt,[2,26]),e(u,[2,50],{10:ft}),e(mt,[2,28],{16:103,4:Mt,5:it,6:wt,8:Ot,11:St,13:Vt,17:Pt,18:_t,19:dt,20:Y})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(kt,Ct){if(Ct.recoverable)this.trace(kt);else{var At=new Error(kt);throw At.hash=Ct,At}},"parseError"),parse:o(function(kt){var Ct=this,At=[0],$t=[],Nt=[null],yt=[],Ut=this.table,zt="",ae=0,ke=0,Ee=0,le=2,Zt=1,me=yt.slice.call(arguments,1),Ht=Object.create(this.lexer),ne={yy:{}};for(var xe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xe)&&(ne.yy[xe]=this.yy[xe]);Ht.setInput(kt,ne.yy),ne.yy.lexer=Ht,ne.yy.parser=this,typeof Ht.yylloc>"u"&&(Ht.yylloc={});var Se=Ht.yylloc;yt.push(Se);var Ye=Ht.options&&Ht.options.ranges;typeof ne.yy.parseError=="function"?this.parseError=ne.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fe(Sr){At.length=At.length-2*Sr,Nt.length=Nt.length-Sr,yt.length=yt.length-Sr}o(fe,"popStack");function ee(){var Sr;return Sr=$t.pop()||Ht.lex()||Zt,typeof Sr!="number"&&(Sr instanceof Array&&($t=Sr,Sr=$t.pop()),Sr=Ct.symbols_[Sr]||Sr),Sr}o(ee,"lex");for(var pe,Me,oe,qe,Cr,En,or={},ln,Ir,ii,mn;;){if(oe=At[At.length-1],this.defaultActions[oe]?qe=this.defaultActions[oe]:((pe===null||typeof pe>"u")&&(pe=ee()),qe=Ut[oe]&&Ut[oe][pe]),typeof qe>"u"||!qe.length||!qe[0]){var Pn="";mn=[];for(ln in Ut[oe])this.terminals_[ln]&&ln>le&&mn.push("'"+this.terminals_[ln]+"'");Ht.showPosition?Pn="Parse error on line "+(ae+1)+`: +`+Ht.showPosition()+` +Expecting `+mn.join(", ")+", got '"+(this.terminals_[pe]||pe)+"'":Pn="Parse error on line "+(ae+1)+": Unexpected "+(pe==Zt?"end of input":"'"+(this.terminals_[pe]||pe)+"'"),this.parseError(Pn,{text:Ht.match,token:this.terminals_[pe]||pe,line:Ht.yylineno,loc:Se,expected:mn})}if(qe[0]instanceof Array&&qe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+oe+", token: "+pe);switch(qe[0]){case 1:At.push(pe),Nt.push(Ht.yytext),yt.push(Ht.yylloc),At.push(qe[1]),pe=null,Me?(pe=Me,Me=null):(ke=Ht.yyleng,zt=Ht.yytext,ae=Ht.yylineno,Se=Ht.yylloc,Ee>0&&Ee--);break;case 2:if(Ir=this.productions_[qe[1]][1],or.$=Nt[Nt.length-Ir],or._$={first_line:yt[yt.length-(Ir||1)].first_line,last_line:yt[yt.length-1].last_line,first_column:yt[yt.length-(Ir||1)].first_column,last_column:yt[yt.length-1].last_column},Ye&&(or._$.range=[yt[yt.length-(Ir||1)].range[0],yt[yt.length-1].range[1]]),En=this.performAction.apply(or,[zt,ke,ae,ne.yy,qe[1],Nt,yt].concat(me)),typeof En<"u")return En;Ir&&(At=At.slice(0,-1*Ir*2),Nt=Nt.slice(0,-1*Ir),yt=yt.slice(0,-1*Ir)),At.push(this.productions_[qe[1]][0]),Nt.push(or.$),yt.push(or._$),ii=Ut[At[At.length-2]][At[At.length-1]],At.push(ii);break;case 3:return!0}}return!0},"parse")},nt=function(){var Tt={EOF:1,parseError:o(function(Ct,At){if(this.yy.parser)this.yy.parser.parseError(Ct,At);else throw new Error(Ct)},"parseError"),setInput:o(function(kt,Ct){return this.yy=Ct||this.yy||{},this._input=kt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var kt=this._input[0];this.yytext+=kt,this.yyleng++,this.offset++,this.match+=kt,this.matched+=kt;var Ct=kt.match(/(?:\r\n?|\n).*/g);return Ct?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),kt},"input"),unput:o(function(kt){var Ct=kt.length,At=kt.split(/(?:\r\n?|\n)/g);this._input=kt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ct),this.offset-=Ct;var $t=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),At.length-1&&(this.yylineno-=At.length-1);var Nt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:At?(At.length===$t.length?this.yylloc.first_column:0)+$t[$t.length-At.length].length-At[0].length:this.yylloc.first_column-Ct},this.options.ranges&&(this.yylloc.range=[Nt[0],Nt[0]+this.yyleng-Ct]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(kt){this.unput(this.match.slice(kt))},"less"),pastInput:o(function(){var kt=this.matched.substr(0,this.matched.length-this.match.length);return(kt.length>20?"...":"")+kt.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var kt=this.match;return kt.length<20&&(kt+=this._input.substr(0,20-kt.length)),(kt.substr(0,20)+(kt.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var kt=this.pastInput(),Ct=new Array(kt.length+1).join("-");return kt+this.upcomingInput()+` +`+Ct+"^"},"showPosition"),test_match:o(function(kt,Ct){var At,$t,Nt;if(this.options.backtrack_lexer&&(Nt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Nt.yylloc.range=this.yylloc.range.slice(0))),$t=kt[0].match(/(?:\r\n?|\n).*/g),$t&&(this.yylineno+=$t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:$t?$t[$t.length-1].length-$t[$t.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+kt[0].length},this.yytext+=kt[0],this.match+=kt[0],this.matches=kt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(kt[0].length),this.matched+=kt[0],At=this.performAction.call(this,this.yy,this,Ct,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),At)return At;if(this._backtrack){for(var yt in Nt)this[yt]=Nt[yt];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var kt,Ct,At,$t;this._more||(this.yytext="",this.match="");for(var Nt=this._currentRules(),yt=0;ytCt[0].length)){if(Ct=At,$t=yt,this.options.backtrack_lexer){if(kt=this.test_match(At,Nt[yt]),kt!==!1)return kt;if(this._backtrack){Ct=!1;continue}else return!1}else if(!this.options.flex)break}return Ct?(kt=this.test_match(Ct,Nt[$t]),kt!==!1?kt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ct=this.next();return Ct||this.lex()},"lex"),begin:o(function(Ct){this.conditionStack.push(Ct)},"begin"),popState:o(function(){var Ct=this.conditionStack.length-1;return Ct>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ct){return Ct=this.conditionStack.length-1-Math.abs(Ct||0),Ct>=0?this.conditionStack[Ct]:"INITIAL"},"topState"),pushState:o(function(Ct){this.begin(Ct)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ct,At,$t,Nt){var yt=Nt;switch($t){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return Tt}();ht.lexer=nt;function st(){this.yy={}}return o(st,"Parser"),st.prototype=ht,ht.Parser=st,new st}();JO.parser=JO;Pht=JO});var hs,e6,Fht=R(()=>{"use strict";ur();hl();ce();m4();hs=xp(),e6=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:Er.quadrantChart?.chartWidth||500,chartWidth:Er.quadrantChart?.chartHeight||500,titlePadding:Er.quadrantChart?.titlePadding||10,titleFontSize:Er.quadrantChart?.titleFontSize||20,quadrantPadding:Er.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:Er.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:Er.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:Er.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:Er.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:Er.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:Er.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:Er.quadrantChart?.pointTextPadding||5,pointLabelFontSize:Er.quadrantChart?.pointLabelFontSize||12,pointRadius:Er.quadrantChart?.pointRadius||5,xAxisPosition:Er.quadrantChart?.xAxisPosition||"top",yAxisPosition:Er.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:Er.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:Er.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:hs.quadrant1Fill,quadrant2Fill:hs.quadrant2Fill,quadrant3Fill:hs.quadrant3Fill,quadrant4Fill:hs.quadrant4Fill,quadrant1TextFill:hs.quadrant1TextFill,quadrant2TextFill:hs.quadrant2TextFill,quadrant3TextFill:hs.quadrant3TextFill,quadrant4TextFill:hs.quadrant4TextFill,quadrantPointFill:hs.quadrantPointFill,quadrantPointTextFill:hs.quadrantPointTextFill,quadrantXAxisTextFill:hs.quadrantXAxisTextFill,quadrantYAxisTextFill:hs.quadrantYAxisTextFill,quadrantTitleFill:hs.quadrantTitleFill,quadrantInternalBorderStrokeFill:hs.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:hs.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,V.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,r){this.classes.set(t,r)}setConfig(t){V.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){V.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:t==="top"&&r?a:0,bottom:t==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(t,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(t){let{quadrantSpace:r}=t,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(t){let{quadrantSpace:r}=t,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=wl().domain([0,1]).range([i,s+i]),u=wl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(t){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=t,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,t,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,t,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function tP(e){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(e)}function zht(e){return!/^\d+$/.test(e)}function $ht(e){return!/^\d+px$/.test(e)}var N0,Ght=R(()=>{"use strict";N0=class extends Error{static{o(this,"InvalidStyleError")}constructor(t,r,n){super(`value for ${t} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(tP,"validateHexCode");o(zht,"validateNumber");o($ht,"validateSizeInPixels")});function Qu(e){return Zr(e.trim(),lVt)}function cVt(e){Ca.setData({quadrant1Text:Qu(e.text)})}function uVt(e){Ca.setData({quadrant2Text:Qu(e.text)})}function hVt(e){Ca.setData({quadrant3Text:Qu(e.text)})}function fVt(e){Ca.setData({quadrant4Text:Qu(e.text)})}function dVt(e){Ca.setData({xAxisLeftText:Qu(e.text)})}function pVt(e){Ca.setData({xAxisRightText:Qu(e.text)})}function mVt(e){Ca.setData({yAxisTopText:Qu(e.text)})}function gVt(e){Ca.setData({yAxisBottomText:Qu(e.text)})}function eP(e){let t={};for(let r of e){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(zht(i))throw new N0(n,i,"number");t.radius=parseInt(i)}else if(n==="color"){if(tP(i))throw new N0(n,i,"hex code");t.color=i}else if(n==="stroke-color"){if(tP(i))throw new N0(n,i,"hex code");t.strokeColor=i}else if(n==="stroke-width"){if($ht(i))throw new N0(n,i,"number of pixels (eg. 10px)");t.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return t}function yVt(e,t,r,n,i){let a=eP(i);Ca.addPoints([{x:r,y:n,text:Qu(e.text),className:t,...a}])}function vVt(e,t){Ca.addClass(e,eP(t))}function xVt(e){Ca.setConfig({chartWidth:e})}function bVt(e){Ca.setConfig({chartHeight:e})}function wVt(){let e=pt(),{themeVariables:t,quadrantChart:r}=e;return r&&Ca.setConfig(r),Ca.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),Ca.setData({titleText:Jr()}),Ca.build()}var lVt,Ca,TVt,Vht,Uht=R(()=>{"use strict";Ue();hr();Ci();Fht();Ght();lVt=pt();o(Qu,"textSanitizer");Ca=new e6;o(cVt,"setQuadrant1Text");o(uVt,"setQuadrant2Text");o(hVt,"setQuadrant3Text");o(fVt,"setQuadrant4Text");o(dVt,"setXAxisLeftText");o(pVt,"setXAxisRightText");o(mVt,"setYAxisTopText");o(gVt,"setYAxisBottomText");o(eP,"parseStyles");o(yVt,"addPoint");o(vVt,"addClass");o(xVt,"setWidth");o(bVt,"setHeight");o(wVt,"getQuadrantData");TVt=o(function(){Ca.clear(),Ar()},"clear"),Vht={setWidth:xVt,setHeight:bVt,setQuadrant1Text:cVt,setQuadrant2Text:uVt,setQuadrant3Text:hVt,setQuadrant4Text:fVt,setXAxisLeftText:dVt,setXAxisRightText:pVt,setYAxisTopText:mVt,setYAxisBottomText:gVt,parseStyles:eP,addPoint:yVt,addClass:vVt,getQuadrantData:wVt,clear:TVt,setAccTitle:Mr,getAccTitle:Br,setDiagramTitle:cn,getDiagramTitle:Jr,getAccDescription:zr,setAccDescription:Fr}});var kVt,Hht,Wht=R(()=>{"use strict";ur();Ue();ce();Jn();kVt=o((e,t,r,n)=>{function i(A){return A==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(A){return A==="left"?"start":"middle"}o(a,"getTextAnchor");function s(A){return`translate(${A.x}, ${A.y}) rotate(${A.rotation||0})`}o(s,"getTransformation");let l=pt();V.debug(`Rendering quadrant chart +`+e);let u=l.securityLevel,h;u==="sandbox"&&(h=Gt("#i"+t));let d=(u==="sandbox"?Gt(h.nodes()[0].contentDocument.body):Gt("body")).select(`[id="${t}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Pr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),w=p.append("g").attr("class","labels"),S=p.append("g").attr("class","title");y.title&&S.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",A=>A.x1).attr("y1",A=>A.y1).attr("x2",A=>A.x2).attr("y2",A=>A.y2).style("stroke",A=>A.strokeFill).style("stroke-width",A=>A.strokeWidth);let T=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",A=>A.x).attr("y",A=>A.y).attr("width",A=>A.width).attr("height",A=>A.height).attr("fill",A=>A.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text)).text(A=>A.text.text),w.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(A=>A.text).attr("fill",A=>A.fill).attr("font-size",A=>A.fontSize).attr("dominant-baseline",A=>i(A.horizontalPos)).attr("text-anchor",A=>a(A.verticalPos)).attr("transform",A=>s(A));let _=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");_.append("circle").attr("cx",A=>A.x).attr("cy",A=>A.y).attr("r",A=>A.radius).attr("fill",A=>A.fill).attr("stroke",A=>A.strokeColor).attr("stroke-width",A=>A.strokeWidth),_.append("text").attr("x",0).attr("y",0).text(A=>A.text.text).attr("fill",A=>A.text.fill).attr("font-size",A=>A.text.fontSize).attr("dominant-baseline",A=>i(A.text.horizontalPos)).attr("text-anchor",A=>a(A.text.verticalPos)).attr("transform",A=>s(A.text))},"draw"),Hht={draw:kVt}});var Yht={};xr(Yht,{diagram:()=>EVt});var EVt,qht=R(()=>{"use strict";Bht();Uht();Wht();EVt={parser:Pht,db:Vht,renderer:Hht,styles:o(()=>"","styles")}});var rP,Kht,Qht=R(()=>{"use strict";rP=function(){var e=o(function(O,D,P,F){for(P=P||{},F=O.length;F--;P[O[F]]=D);return P},"o"),t=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],S=[1,43],T=[1,42],E=[1,47],_=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],M=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],N=[1,64],k={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(D,P,F,B,G,z,W){var Q=z.length-1;switch(G){case 5:B.setOrientation(z[Q]);break;case 9:B.setDiagramTitle(z[Q].text.trim());break;case 12:B.setLineData({text:"",type:"text"},z[Q]);break;case 13:B.setLineData(z[Q-1],z[Q]);break;case 14:B.setBarData({text:"",type:"text"},z[Q]);break;case 15:B.setBarData(z[Q-1],z[Q]);break;case 16:this.$=z[Q].trim(),B.setAccTitle(this.$);break;case 17:case 18:this.$=z[Q].trim(),B.setAccDescription(this.$);break;case 19:this.$=z[Q-1];break;case 20:this.$=[Number(z[Q-2]),...z[Q]];break;case 21:this.$=[Number(z[Q])];break;case 22:B.setXAxisTitle(z[Q]);break;case 23:B.setXAxisTitle(z[Q-1]);break;case 24:B.setXAxisTitle({type:"text",text:""});break;case 25:B.setXAxisBand(z[Q]);break;case 26:B.setXAxisRangeData(Number(z[Q-2]),Number(z[Q]));break;case 27:this.$=z[Q-1];break;case 28:this.$=[z[Q-2],...z[Q]];break;case 29:this.$=[z[Q]];break;case 30:B.setYAxisTitle(z[Q]);break;case 31:B.setYAxisTitle(z[Q-1]);break;case 32:B.setYAxisTitle({type:"text",text:""});break;case 33:B.setYAxisRangeData(Number(z[Q-2]),Number(z[Q]));break;case 37:this.$={text:z[Q],type:"text"};break;case 38:this.$={text:z[Q],type:"text"};break;case 39:this.$={text:z[Q],type:"markdown"};break;case 40:this.$=z[Q];break;case 41:this.$=z[Q-1]+""+z[Q];break}},"anonymous"),table:[e(t,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},e(t,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),e(t,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(l,[2,34]),e(l,[2,35]),e(l,[2,36]),{1:[2,1]},e(t,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},e(l,[2,5]),e(t,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:39,13:38,24:S,27:T,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:45,15:44,27:E,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:49,17:48,24:_,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:52,17:51,24:_,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{20:[1,53]},{22:[1,54]},e(A,[2,18]),{1:[2,2]},e(A,[2,8]),e(A,[2,9]),e(L,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w}),e(L,[2,38]),e(L,[2,39]),e(M,[2,40]),e(M,[2,42]),e(M,[2,43]),e(M,[2,44]),e(M,[2,45]),e(M,[2,46]),e(M,[2,47]),e(M,[2,48]),e(M,[2,49]),e(M,[2,50]),e(M,[2,51]),e(A,[2,10]),e(A,[2,22],{30:41,29:56,24:S,27:T}),e(A,[2,24]),e(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},e(A,[2,11]),e(A,[2,30],{33:60,27:E}),e(A,[2,32]),{31:[1,61]},e(A,[2,12]),{17:62,24:_},{25:63,27:N},e(A,[2,14]),{17:65,24:_},e(A,[2,16]),e(A,[2,17]),e(M,[2,41]),e(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(A,[2,31]),{27:[1,69]},e(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(A,[2,15]),e(A,[2,26]),e(A,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},e(A,[2,33]),e(A,[2,19]),{25:73,27:N},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(D,P){if(P.recoverable)this.trace(D);else{var F=new Error(D);throw F.hash=P,F}},"parseError"),parse:o(function(D){var P=this,F=[0],B=[],G=[null],z=[],W=this.table,Q="",j=0,at=0,X=0,J=2,Z=1,H=z.slice.call(arguments,1),q=Object.create(this.lexer),K={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(K.yy[ot]=this.yy[ot]);q.setInput(D,K.yy),K.yy.lexer=q,K.yy.parser=this,typeof q.yylloc>"u"&&(q.yylloc={});var ct=q.yylloc;z.push(ct);var ut=q.options&&q.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(ht){F.length=F.length-2*ht,G.length=G.length-ht,z.length=z.length-ht}o(et,"popStack");function Mt(){var ht;return ht=B.pop()||q.lex()||Z,typeof ht!="number"&&(ht instanceof Array&&(B=ht,ht=B.pop()),ht=P.symbols_[ht]||ht),ht}o(Mt,"lex");for(var it,wt,Ot,St,Vt,Pt,_t={},dt,Y,ft,mt;;){if(Ot=F[F.length-1],this.defaultActions[Ot]?St=this.defaultActions[Ot]:((it===null||typeof it>"u")&&(it=Mt()),St=W[Ot]&&W[Ot][it]),typeof St>"u"||!St.length||!St[0]){var rt="";mt=[];for(dt in W[Ot])this.terminals_[dt]&&dt>J&&mt.push("'"+this.terminals_[dt]+"'");q.showPosition?rt="Parse error on line "+(j+1)+`: +`+q.showPosition()+` +Expecting `+mt.join(", ")+", got '"+(this.terminals_[it]||it)+"'":rt="Parse error on line "+(j+1)+": Unexpected "+(it==Z?"end of input":"'"+(this.terminals_[it]||it)+"'"),this.parseError(rt,{text:q.match,token:this.terminals_[it]||it,line:q.yylineno,loc:ct,expected:mt})}if(St[0]instanceof Array&&St.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ot+", token: "+it);switch(St[0]){case 1:F.push(it),G.push(q.yytext),z.push(q.yylloc),F.push(St[1]),it=null,wt?(it=wt,wt=null):(at=q.yyleng,Q=q.yytext,j=q.yylineno,ct=q.yylloc,X>0&&X--);break;case 2:if(Y=this.productions_[St[1]][1],_t.$=G[G.length-Y],_t._$={first_line:z[z.length-(Y||1)].first_line,last_line:z[z.length-1].last_line,first_column:z[z.length-(Y||1)].first_column,last_column:z[z.length-1].last_column},ut&&(_t._$.range=[z[z.length-(Y||1)].range[0],z[z.length-1].range[1]]),Pt=this.performAction.apply(_t,[Q,at,j,K.yy,St[1],G,z].concat(H)),typeof Pt<"u")return Pt;Y&&(F=F.slice(0,-1*Y*2),G=G.slice(0,-1*Y),z=z.slice(0,-1*Y)),F.push(this.productions_[St[1]][0]),G.push(_t.$),z.push(_t._$),ft=W[F[F.length-2]][F[F.length-1]],F.push(ft);break;case 3:return!0}}return!0},"parse")},I=function(){var O={EOF:1,parseError:o(function(P,F){if(this.yy.parser)this.yy.parser.parseError(P,F);else throw new Error(P)},"parseError"),setInput:o(function(D,P){return this.yy=P||this.yy||{},this._input=D,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var D=this._input[0];this.yytext+=D,this.yyleng++,this.offset++,this.match+=D,this.matched+=D;var P=D.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),D},"input"),unput:o(function(D){var P=D.length,F=D.split(/(?:\r\n?|\n)/g);this._input=D+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),F.length-1&&(this.yylineno-=F.length-1);var G=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:F?(F.length===B.length?this.yylloc.first_column:0)+B[B.length-F.length].length-F[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[G[0],G[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(D){this.unput(this.match.slice(D))},"less"),pastInput:o(function(){var D=this.matched.substr(0,this.matched.length-this.match.length);return(D.length>20?"...":"")+D.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var D=this.match;return D.length<20&&(D+=this._input.substr(0,20-D.length)),(D.substr(0,20)+(D.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var D=this.pastInput(),P=new Array(D.length+1).join("-");return D+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(D,P){var F,B,G;if(this.options.backtrack_lexer&&(G={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(G.yylloc.range=this.yylloc.range.slice(0))),B=D[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],F=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var z in G)this[z]=G[z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var D,P,F,B;this._more||(this.yytext="",this.match="");for(var G=this._currentRules(),z=0;zP[0].length)){if(P=F,B=z,this.options.backtrack_lexer){if(D=this.test_match(F,G[z]),D!==!1)return D;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(D=this.test_match(P,G[B]),D!==!1?D:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,F,B,G){var z=G;switch(B){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";break;case 17:return this.pushState("axis_data"),"Y_AXIS";break;case 18:return this.pushState("axis_band_data"),24;break;case 19:return 31;case 20:return this.pushState("data"),16;break;case 21:return this.pushState("data"),18;break;case 22:return this.pushState("data_inner"),24;break;case 23:return 27;case 24:return this.popState(),26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return O}();k.lexer=I;function C(){this.yy={}}return o(C,"Parser"),C.prototype=k,k.Parser=C,new C}();rP.parser=rP;Kht=rP});function nP(e){return e.type==="bar"}function r6(e){return e.type==="band"}function qg(e){return e.type==="linear"}var n6=R(()=>{"use strict";o(nP,"isBarPlot");o(r6,"isBandAxisData");o(qg,"isLinearAxisData")});var Xg,iP=R(()=>{"use strict";Nl();Xg=class{constructor(t){this.parentGroup=t}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,r){if(!this.parentGroup)return{width:t.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of t){let s=vQ(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var jg,aP=R(()=>{"use strict";jg=class{constructor(t,r,n,i){this.axisConfig=t;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let r=t.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*t.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-r}calculateSpaceIfDrawnVertical(t){let r=t.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*t.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=t.width-r,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var i6,Zht=R(()=>{"use strict";ur();ce();aP();i6=class extends jg{static{o(this,"BandAxis")}constructor(t,r,n,i,a){super(t,i,a,r),this.categories=n,this.scale=Up().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=Up().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),V.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}}});var a6,Jht=R(()=>{"use strict";ur();aP();a6=class extends jg{static{o(this,"LinearAxis")}constructor(t,r,n,i,a){super(t,i,a,r),this.domain=n,this.scale=wl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=wl().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}});function sP(e,t,r,n){let i=new Xg(n);return r6(e)?new i6(t,r,e.categories,e.title,i):new a6(t,r,[e.min,e.max],e.title,i)}var tft=R(()=>{"use strict";n6();iP();Zht();Jht();o(sP,"getAxis")});function eft(e,t,r,n){let i=new Xg(n);return new oP(i,e,t,r)}var oP,rft=R(()=>{"use strict";iP();oP=class{constructor(t,r,n,i){this.textDimensionCalculator=t;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,t.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};o(eft,"getChartTitleComponent")});var s6,nft=R(()=>{"use strict";ur();s6=class{constructor(t,r,n,i,a){this.plotData=t;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let t=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=ma().y(n=>n[0]).x(n=>n[1])(t):r=ma().x(n=>n[0]).y(n=>n[1])(t),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var o6,ift=R(()=>{"use strict";o6=class{constructor(t,r,n,i,a,s){this.barData=t;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function aft(e,t,r){return new lP(e,t,r)}var lP,sft=R(()=>{"use strict";nft();ift();lP=class{constructor(t,r,n){this.chartConfig=t;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(t,r){this.xAxis=t,this.yAxis=r}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new s6(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);t.push(...i.getDrawableElement())}break;case"bar":{let i=new o6(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);t.push(...i.getDrawableElement())}break}return t}};o(aft,"getPlotComponent")});var l6,oft=R(()=>{"use strict";tft();rft();sft();n6();l6=class{constructor(t,r,n,i){this.chartConfig=t;this.chartData=r;this.componentStore={title:eft(t,r,n,i),plot:aft(t,r,n),xAxis:sP(r.xAxis,t.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:sP(r.yAxis,t.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});t-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:t,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:t,height:r}),n=l.width,t-=l.width,t>0&&(a+=t,t=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>nP(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});t-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:t,height:r}),t-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:t,height:r}),r-=u.height,a=n+u.height,t>0&&(s+=t,t=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>nP(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))t.push(...r.getDrawableElements());return t}}});var c6,lft=R(()=>{"use strict";oft();c6=class{static{o(this,"XYChartBuilder")}static build(t,r,n,i){return new l6(t,r,n,i).getDrawableElement()}}});function uft(){let e=xp(),t=Nr();return Ss(e.xyChart,t.themeVariables.xyChart)}function hft(){let e=Nr();return Ss(Er.xyChart,e.xyChart)}function fft(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function hP(e){let t=Nr();return Zr(e.trim(),t)}function _Vt(e){cft=e}function LVt(e){e==="horizontal"?Fx.chartOrientation="horizontal":Fx.chartOrientation="vertical"}function DVt(e){hn.xAxis.title=hP(e.text)}function dft(e,t){hn.xAxis={type:"linear",title:hn.xAxis.title,min:e,max:t},u6=!0}function RVt(e){hn.xAxis={type:"band",title:hn.xAxis.title,categories:e.map(t=>hP(t.text))},u6=!0}function NVt(e){hn.yAxis.title=hP(e.text)}function MVt(e,t){hn.yAxis={type:"linear",title:hn.yAxis.title,min:e,max:t},uP=!0}function IVt(e){let t=Math.min(...e),r=Math.max(...e),n=qg(hn.yAxis)?hn.yAxis.min:1/0,i=qg(hn.yAxis)?hn.yAxis.max:-1/0;hn.yAxis={type:"linear",title:hn.yAxis.title,min:Math.min(n,t),max:Math.max(i,r)}}function pft(e){let t=[];if(e.length===0)return t;if(!u6){let r=qg(hn.xAxis)?hn.xAxis.min:1/0,n=qg(hn.xAxis)?hn.xAxis.max:-1/0;dft(Math.min(r,1),Math.max(n,e.length))}if(uP||IVt(e),r6(hn.xAxis)&&(t=hn.xAxis.categories.map((r,n)=>[r,e[n]])),qg(hn.xAxis)){let r=hn.xAxis.min,n=hn.xAxis.max,i=(n-r)/(e.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);t=a.map((s,l)=>[s,e[l]])}return t}function mft(e){return cP[e===0?0:e%cP.length]}function OVt(e,t){let r=pft(t);hn.plots.push({type:"line",strokeFill:mft(Bx),strokeWidth:2,data:r}),Bx++}function PVt(e,t){let r=pft(t);hn.plots.push({type:"bar",fill:mft(Bx),data:r}),Bx++}function BVt(){if(hn.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return hn.title=Jr(),c6.build(Fx,hn,zx,cft)}function FVt(){return zx}function zVt(){return Fx}var Bx,cft,Fx,zx,hn,cP,u6,uP,$Vt,gft,yft=R(()=>{"use strict";js();hl();m4();_r();hr();Ci();lft();n6();Bx=0,Fx=hft(),zx=uft(),hn=fft(),cP=zx.plotColorPalette.split(",").map(e=>e.trim()),u6=!1,uP=!1;o(uft,"getChartDefaultThemeConfig");o(hft,"getChartDefaultConfig");o(fft,"getChartDefaultData");o(hP,"textSanitizer");o(_Vt,"setTmpSVGG");o(LVt,"setOrientation");o(DVt,"setXAxisTitle");o(dft,"setXAxisRangeData");o(RVt,"setXAxisBand");o(NVt,"setYAxisTitle");o(MVt,"setYAxisRangeData");o(IVt,"setYAxisRangeFromPlotData");o(pft,"transformDataWithoutCategory");o(mft,"getPlotColorFromPalette");o(OVt,"setLineData");o(PVt,"setBarData");o(BVt,"getDrawableElem");o(FVt,"getChartThemeConfig");o(zVt,"getChartConfig");$Vt=o(function(){Ar(),Bx=0,Fx=hft(),hn=fft(),zx=uft(),cP=zx.plotColorPalette.split(",").map(e=>e.trim()),u6=!1,uP=!1},"clear"),gft={getDrawableElem:BVt,clear:$Vt,setAccTitle:Mr,getAccTitle:Br,setDiagramTitle:cn,getDiagramTitle:Jr,getAccDescription:zr,setAccDescription:Fr,setOrientation:LVt,setXAxisTitle:DVt,setXAxisRangeData:dft,setXAxisBand:RVt,setYAxisTitle:NVt,setYAxisRangeData:MVt,setLineData:OVt,setBarData:PVt,setTmpSVGG:_Vt,getChartThemeConfig:FVt,getChartConfig:zVt}});var GVt,vft,xft=R(()=>{"use strict";ce();xf();Jn();GVt=o((e,t,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig();function l(v){return v==="top"?"text-before-edge":"middle"}o(l,"getDominantBaseLine");function u(v){return v==="left"?"start":v==="right"?"end":"middle"}o(u,"getTextAnchor");function h(v){return`translate(${v.x}, ${v.y}) rotate(${v.rotation||0})`}o(h,"getTextTransformation"),V.debug(`Rendering xychart chart +`+e);let f=Vs(t),d=f.append("g").attr("class","main"),p=d.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Pr(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),p.attr("fill",a.backgroundColor),i.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let m=i.getDrawableElem(),g={};function y(v){let x=d,b="";for(let[w]of v.entries()){let S=d;w>0&&g[b]&&(S=g[b]),b+=v[w],x=g[b],x||(x=g[b]=S.append("g").attr("class",v[w]))}return x}o(y,"getGroup");for(let v of m){if(v.data.length===0)continue;let x=y(v.groupTexts);switch(v.type){case"rect":x.selectAll("rect").data(v.data).enter().append("rect").attr("x",b=>b.x).attr("y",b=>b.y).attr("width",b=>b.width).attr("height",b=>b.height).attr("fill",b=>b.fill).attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break;case"text":x.selectAll("text").data(v.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",b=>b.fill).attr("font-size",b=>b.fontSize).attr("dominant-baseline",b=>l(b.verticalPos)).attr("text-anchor",b=>u(b.horizontalPos)).attr("transform",b=>h(b)).text(b=>b.text);break;case"path":x.selectAll("path").data(v.data).enter().append("path").attr("d",b=>b.path).attr("fill",b=>b.fill?b.fill:"none").attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break}}},"draw"),vft={draw:GVt}});var bft={};xr(bft,{diagram:()=>VVt});var VVt,wft=R(()=>{"use strict";Qht();yft();xft();VVt={parser:Kht,db:gft,renderer:vft}});var fP,Eft,Cft=R(()=>{"use strict";fP=function(){var e=o(function(at,X,J,Z){for(J=J||{},Z=at.length;Z--;J[at[Z]]=X);return J},"o"),t=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],s=[1,18],l=[2,7],u=[1,22],h=[1,23],f=[1,24],d=[1,25],p=[1,26],m=[1,27],g=[1,20],y=[1,28],v=[1,29],x=[62,63],b=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],w=[1,47],S=[1,48],T=[1,49],E=[1,50],_=[1,51],A=[1,52],L=[1,53],M=[53,54],N=[1,64],k=[1,60],I=[1,61],C=[1,62],O=[1,63],D=[1,65],P=[1,69],F=[1,70],B=[1,67],G=[1,68],z=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],W={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:o(function(X,J,Z,H,q,K,ot){var ct=K.length-1;switch(q){case 4:this.$=K[ct].trim(),H.setAccTitle(this.$);break;case 5:case 6:this.$=K[ct].trim(),H.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:H.addRequirement(K[ct-3],K[ct-4]);break;case 14:H.setNewReqId(K[ct-2]);break;case 15:H.setNewReqText(K[ct-2]);break;case 16:H.setNewReqRisk(K[ct-2]);break;case 17:H.setNewReqVerifyMethod(K[ct-2]);break;case 20:this.$=H.RequirementType.REQUIREMENT;break;case 21:this.$=H.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=H.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=H.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=H.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=H.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=H.RiskLevel.LOW_RISK;break;case 27:this.$=H.RiskLevel.MED_RISK;break;case 28:this.$=H.RiskLevel.HIGH_RISK;break;case 29:this.$=H.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=H.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=H.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=H.VerifyType.VERIFY_TEST;break;case 33:H.addElement(K[ct-3]);break;case 34:H.setNewElementType(K[ct-2]);break;case 35:H.setNewElementDocRef(K[ct-2]);break;case 38:H.addRelationship(K[ct-2],K[ct],K[ct-4]);break;case 39:H.addRelationship(K[ct-2],K[ct-4],K[ct]);break;case 40:this.$=H.Relationships.CONTAINS;break;case 41:this.$=H.Relationships.COPIES;break;case 42:this.$=H.Relationships.DERIVES;break;case 43:this.$=H.Relationships.SATISFIES;break;case 44:this.$=H.Relationships.VERIFIES;break;case 45:this.$=H.Relationships.REFINES;break;case 46:this.$=H.Relationships.TRACES;break}},"anonymous"),table:[{3:1,4:2,6:t,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(a,[2,6]),{3:12,4:2,6:t,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},e(a,[2,4]),e(a,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:s,7:31,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:32,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:33,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:34,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:35,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(x,[2,20]),e(x,[2,21]),e(x,[2,22]),e(x,[2,23]),e(x,[2,24]),e(x,[2,25]),e(b,[2,49]),e(b,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:w,56:S,57:T,58:E,59:_,60:A,61:L},{52:54,55:w,56:S,57:T,58:E,59:_,60:A,61:L},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(M,[2,40]),e(M,[2,41]),e(M,[2,42]),e(M,[2,43]),e(M,[2,44]),e(M,[2,45]),e(M,[2,46]),{54:[1,58]},{5:N,20:59,21:k,24:I,26:C,28:O,30:D},{5:P,30:F,46:66,47:B,49:G},{23:71,62:y,63:v},{23:72,62:y,63:v},e(z,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:N,20:77,21:k,24:I,26:C,28:O,30:D},e(z,[2,19]),e(z,[2,33]),{22:[1,78]},{22:[1,79]},{5:P,30:F,46:80,47:B,49:G},e(z,[2,37]),e(z,[2,38]),e(z,[2,39]),{23:81,62:y,63:v},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(z,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(z,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:N,20:106,21:k,24:I,26:C,28:O,30:D},{5:N,20:107,21:k,24:I,26:C,28:O,30:D},{5:N,20:108,21:k,24:I,26:C,28:O,30:D},{5:N,20:109,21:k,24:I,26:C,28:O,30:D},{5:P,30:F,46:110,47:B,49:G},{5:P,30:F,46:111,47:B,49:G},e(z,[2,14]),e(z,[2,15]),e(z,[2,16]),e(z,[2,17]),e(z,[2,34]),e(z,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:o(function(X,J){if(J.recoverable)this.trace(X);else{var Z=new Error(X);throw Z.hash=J,Z}},"parseError"),parse:o(function(X){var J=this,Z=[0],H=[],q=[null],K=[],ot=this.table,ct="",ut=0,et=0,Mt=0,it=2,wt=1,Ot=K.slice.call(arguments,1),St=Object.create(this.lexer),Vt={yy:{}};for(var Pt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Pt)&&(Vt.yy[Pt]=this.yy[Pt]);St.setInput(X,Vt.yy),Vt.yy.lexer=St,Vt.yy.parser=this,typeof St.yylloc>"u"&&(St.yylloc={});var _t=St.yylloc;K.push(_t);var dt=St.options&&St.options.ranges;typeof Vt.yy.parseError=="function"?this.parseError=Vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(Ut){Z.length=Z.length-2*Ut,q.length=q.length-Ut,K.length=K.length-Ut}o(Y,"popStack");function ft(){var Ut;return Ut=H.pop()||St.lex()||wt,typeof Ut!="number"&&(Ut instanceof Array&&(H=Ut,Ut=H.pop()),Ut=J.symbols_[Ut]||Ut),Ut}o(ft,"lex");for(var mt,rt,ht,nt,st,Tt,kt={},Ct,At,$t,Nt;;){if(ht=Z[Z.length-1],this.defaultActions[ht]?nt=this.defaultActions[ht]:((mt===null||typeof mt>"u")&&(mt=ft()),nt=ot[ht]&&ot[ht][mt]),typeof nt>"u"||!nt.length||!nt[0]){var yt="";Nt=[];for(Ct in ot[ht])this.terminals_[Ct]&&Ct>it&&Nt.push("'"+this.terminals_[Ct]+"'");St.showPosition?yt="Parse error on line "+(ut+1)+`: +`+St.showPosition()+` +Expecting `+Nt.join(", ")+", got '"+(this.terminals_[mt]||mt)+"'":yt="Parse error on line "+(ut+1)+": Unexpected "+(mt==wt?"end of input":"'"+(this.terminals_[mt]||mt)+"'"),this.parseError(yt,{text:St.match,token:this.terminals_[mt]||mt,line:St.yylineno,loc:_t,expected:Nt})}if(nt[0]instanceof Array&&nt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ht+", token: "+mt);switch(nt[0]){case 1:Z.push(mt),q.push(St.yytext),K.push(St.yylloc),Z.push(nt[1]),mt=null,rt?(mt=rt,rt=null):(et=St.yyleng,ct=St.yytext,ut=St.yylineno,_t=St.yylloc,Mt>0&&Mt--);break;case 2:if(At=this.productions_[nt[1]][1],kt.$=q[q.length-At],kt._$={first_line:K[K.length-(At||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(At||1)].first_column,last_column:K[K.length-1].last_column},dt&&(kt._$.range=[K[K.length-(At||1)].range[0],K[K.length-1].range[1]]),Tt=this.performAction.apply(kt,[ct,et,ut,Vt.yy,nt[1],q,K].concat(Ot)),typeof Tt<"u")return Tt;At&&(Z=Z.slice(0,-1*At*2),q=q.slice(0,-1*At),K=K.slice(0,-1*At)),Z.push(this.productions_[nt[1]][0]),q.push(kt.$),K.push(kt._$),$t=ot[Z[Z.length-2]][Z[Z.length-1]],Z.push($t);break;case 3:return!0}}return!0},"parse")},Q=function(){var at={EOF:1,parseError:o(function(J,Z){if(this.yy.parser)this.yy.parser.parseError(J,Z);else throw new Error(J)},"parseError"),setInput:o(function(X,J){return this.yy=J||this.yy||{},this._input=X,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var X=this._input[0];this.yytext+=X,this.yyleng++,this.offset++,this.match+=X,this.matched+=X;var J=X.match(/(?:\r\n?|\n).*/g);return J?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),X},"input"),unput:o(function(X){var J=X.length,Z=X.split(/(?:\r\n?|\n)/g);this._input=X+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-J),this.offset-=J;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===H.length?this.yylloc.first_column:0)+H[H.length-Z.length].length-Z[0].length:this.yylloc.first_column-J},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-J]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(X){this.unput(this.match.slice(X))},"less"),pastInput:o(function(){var X=this.matched.substr(0,this.matched.length-this.match.length);return(X.length>20?"...":"")+X.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var X=this.match;return X.length<20&&(X+=this._input.substr(0,20-X.length)),(X.substr(0,20)+(X.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var X=this.pastInput(),J=new Array(X.length+1).join("-");return X+this.upcomingInput()+` +`+J+"^"},"showPosition"),test_match:o(function(X,J){var Z,H,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),H=X[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+X[0].length},this.yytext+=X[0],this.match+=X[0],this.matches=X,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(X[0].length),this.matched+=X[0],Z=this.performAction.call(this,this.yy,this,J,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Z)return Z;if(this._backtrack){for(var K in q)this[K]=q[K];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var X,J,Z,H;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),K=0;KJ[0].length)){if(J=Z,H=K,this.options.backtrack_lexer){if(X=this.test_match(Z,q[K]),X!==!1)return X;if(this._backtrack){J=!1;continue}else return!1}else if(!this.options.flex)break}return J?(X=this.test_match(J,q[H]),X!==!1?X:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var J=this.next();return J||this.lex()},"lex"),begin:o(function(J){this.conditionStack.push(J)},"begin"),popState:o(function(){var J=this.conditionStack.length-1;return J>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(J){return J=this.conditionStack.length-1-Math.abs(J||0),J>=0?this.conditionStack[J]:"INITIAL"},"topState"),pushState:o(function(J){this.begin(J)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(J,Z,H,q){var K=q;switch(H){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return Z.yytext=Z.yytext.trim(),62;break}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return at}();W.lexer=Q;function j(){this.yy={}}return o(j,"Parser"),j.prototype=W,W.Parser=j,new j}();fP.parser=fP;Eft=fP});var dP,Us,$x,bf,Gx,YVt,qVt,XVt,jVt,KVt,QVt,ZVt,JVt,tUt,eUt,rUt,nUt,iUt,aUt,sUt,oUt,lUt,Sft,Aft=R(()=>{"use strict";Ue();ce();Ci();dP=[],Us={},$x=new Map,bf={},Gx=new Map,YVt={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},qVt={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},XVt={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},jVt={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},KVt=o((e,t)=>($x.has(e)||$x.set(e,{name:e,type:t,id:Us.id,text:Us.text,risk:Us.risk,verifyMethod:Us.verifyMethod}),Us={},$x.get(e)),"addRequirement"),QVt=o(()=>$x,"getRequirements"),ZVt=o(e=>{Us!==void 0&&(Us.id=e)},"setNewReqId"),JVt=o(e=>{Us!==void 0&&(Us.text=e)},"setNewReqText"),tUt=o(e=>{Us!==void 0&&(Us.risk=e)},"setNewReqRisk"),eUt=o(e=>{Us!==void 0&&(Us.verifyMethod=e)},"setNewReqVerifyMethod"),rUt=o(e=>(Gx.has(e)||(Gx.set(e,{name:e,type:bf.type,docRef:bf.docRef}),V.info("Added new requirement: ",e)),bf={},Gx.get(e)),"addElement"),nUt=o(()=>Gx,"getElements"),iUt=o(e=>{bf!==void 0&&(bf.type=e)},"setNewElementType"),aUt=o(e=>{bf!==void 0&&(bf.docRef=e)},"setNewElementDocRef"),sUt=o((e,t,r)=>{dP.push({type:e,src:t,dst:r})},"addRelationship"),oUt=o(()=>dP,"getRelationships"),lUt=o(()=>{dP=[],Us={},$x=new Map,bf={},Gx=new Map,Ar()},"clear"),Sft={RequirementType:YVt,RiskLevel:qVt,VerifyType:XVt,Relationships:jVt,getConfig:o(()=>pt().req,"getConfig"),addRequirement:KVt,getRequirements:QVt,setNewReqId:ZVt,setNewReqText:JVt,setNewReqRisk:tUt,setNewReqVerifyMethod:eUt,setAccTitle:Mr,getAccTitle:Br,setAccDescription:Fr,getAccDescription:zr,addElement:rUt,getElements:nUt,setNewElementType:iUt,setNewElementDocRef:aUt,addRelationship:sUt,getRelationships:oUt,clear:lUt}});var cUt,_ft,Lft=R(()=>{"use strict";cUt=o(e=>` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + +`,"getStyles"),_ft=cUt});var pP,uUt,mP,Dft=R(()=>{"use strict";pP={CONTAINS:"contains",ARROW:"arrow"},uUt=o((e,t)=>{let r=e.append("defs").append("marker").attr("id",pP.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");r.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),r.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),r.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",pP.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${t.line_height},${t.line_height/2} + M${t.line_height},${t.line_height/2} + L0,${t.line_height}`).attr("stroke-width",1)},"insertLineEndings"),mP={ReqMarkers:pP,insertLineEndings:uUt}});var ui,Rft,Nft,Mft,Ift,hUt,fUt,dUt,pUt,mUt,gUt,Kg,yUt,Oft,Pft=R(()=>{"use strict";ur();Xd();wa();Ue();ce();Jn();hr();Dft();ui={},Rft=0,Nft=o((e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",ui.rect_min_width+"px").attr("height",ui.rect_min_height+"px"),"newRectNode"),Mft=o((e,t,r)=>{let n=ui.rect_min_width/2,i=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",n).attr("y",ui.rect_padding).attr("dominant-baseline","hanging"),a=0;r.forEach(h=>{a==0?i.append("tspan").attr("text-anchor","middle").attr("x",ui.rect_min_width/2).attr("dy",0).text(h):i.append("tspan").attr("text-anchor","middle").attr("x",ui.rect_min_width/2).attr("dy",ui.line_height*.75).text(h),a++});let s=1.5*ui.rect_padding,l=a*ui.line_height*.75,u=s+l;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",ui.rect_min_width).attr("y1",u).attr("y2",u),{titleNode:i,y:u}},"newTitleNode"),Ift=o((e,t,r,n)=>{let i=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",ui.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),a=0,s=30,l=[];return r.forEach(u=>{let h=u.length;for(;h>s&&a<3;){let f=u.substring(0,s);u=u.substring(s,u.length),h=u.length,l[l.length]=f,a++}if(a==3){let f=l[l.length-1];l[l.length-1]=f.substring(0,f.length-4)+"..."}else l[l.length]=u;a=0}),l.forEach(u=>{i.append("tspan").attr("x",ui.rect_padding).attr("dy",ui.line_height).text(u)}),i},"newBodyNode"),hUt=o((e,t,r,n)=>{let i=t.node().getTotalLength(),a=t.node().getPointAtLength(i*.5),s="rel"+Rft;Rft++;let u=e.append("text").attr("class","req relationshipLabel").attr("id",s).attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();e.insert("rect","#"+s).attr("class","req reqLabelBox").attr("x",a.x-u.width/2).attr("y",a.y-u.height/2).attr("width",u.width).attr("height",u.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),fUt=o(function(e,t,r,n,i){let a=r.edge(Kg(t.src),Kg(t.dst)),s=ma().x(function(u){return u.x}).y(function(u){return u.y}),l=e.insert("path","#"+n).attr("class","er relationshipLine").attr("d",s(a.points)).attr("fill","none");t.type==i.db.Relationships.CONTAINS?l.attr("marker-start","url("+Yt.getUrl(ui.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(l.attr("stroke-dasharray","10,7"),l.attr("marker-end","url("+Yt.getUrl(ui.arrowMarkerAbsolute)+"#"+mP.ReqMarkers.ARROW+"_line_ending)")),hUt(e,l,ui,`<<${t.type}>>`)},"drawRelationshipFromLayout"),dUt=o((e,t,r)=>{e.forEach((n,i)=>{i=Kg(i),V.info("Added new requirement: ",i);let a=r.append("g").attr("id",i),s="req-"+i,l=Nft(a,s),u=[],h=Mft(a,i+"_title",[`<<${n.type}>>`,`${n.name}`]);u.push(h.titleNode);let f=Ift(a,i+"_body",[`Id: ${n.id}`,`Text: ${n.text}`,`Risk: ${n.risk}`,`Verification: ${n.verifyMethod}`],h.y);u.push(f);let d=l.node().getBBox();t.setNode(i,{width:d.width,height:d.height,shape:"rect",id:i})})},"drawReqs"),pUt=o((e,t,r)=>{e.forEach((n,i)=>{let a=Kg(i),s=r.append("g").attr("id",a),l="element-"+a,u=Nft(s,l),h=[],f=Mft(s,l+"_title",["<>",`${i}`]);h.push(f.titleNode);let d=Ift(s,l+"_body",[`Type: ${n.type||"Not Specified"}`,`Doc Ref: ${n.docRef||"None"}`],f.y);h.push(d);let p=u.node().getBBox();t.setNode(a,{width:p.width,height:p.height,shape:"rect",id:a})})},"drawElements"),mUt=o((e,t)=>(e.forEach(function(r){let n=Kg(r.src),i=Kg(r.dst);t.setEdge(n,i,{relationship:r})}),e),"addRelationships"),gUt=o(function(e,t){t.nodes().forEach(function(r){r!==void 0&&t.node(r)!==void 0&&(e.select("#"+r),e.select("#"+r).attr("transform","translate("+(t.node(r).x-t.node(r).width/2)+","+(t.node(r).y-t.node(r).height/2)+" )"))})},"adjustEntities"),Kg=o(e=>e.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),yUt=o((e,t,r,n)=>{ui=pt().requirement;let i=ui.securityLevel,a;i==="sandbox"&&(a=Gt("#i"+t));let l=(i==="sandbox"?Gt(a.nodes()[0].contentDocument.body):Gt("body")).select(`[id='${t}']`);mP.insertLineEndings(l,ui);let u=new yr({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:ui.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getRequirements(),f=n.db.getElements(),d=n.db.getRelationships();dUt(h,u,l),pUt(f,u,l),mUt(d,u),co(u),gUt(l,u),d.forEach(function(v){fUt(l,v,u,t,n)});let p=ui.rect_padding,m=l.node().getBBox(),g=m.width+p*2,y=m.height+p*2;Pr(l,y,g,ui.useMaxWidth),l.attr("viewBox",`${m.x-p} ${m.y-p} ${g} ${y}`)},"draw"),Oft={draw:yUt}});var Bft={};xr(Bft,{diagram:()=>vUt});var vUt,Fft=R(()=>{"use strict";Cft();Aft();Lft();Pft();vUt={parser:Eft,db:Sft,renderer:Oft,styles:_ft}});var gP,Gft,Vft=R(()=>{"use strict";gP=function(){var e=o(function(H,q,K,ot){for(K=K||{},ot=H.length;ot--;K[H[ot]]=q);return K},"o"),t=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],w=[1,31],S=[1,32],T=[1,33],E=[1,34],_=[1,35],A=[1,36],L=[1,37],M=[1,38],N=[1,39],k=[1,41],I=[1,42],C=[1,43],O=[1,44],D=[1,45],P=[1,46],F=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],B=[4,5,16,50,52,53],G=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],W=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Q=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],j=[68,69,70],at=[1,122],X={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:o(function(q,K,ot,ct,ut,et,Mt){var it=et.length-1;switch(ut){case 3:return ct.apply(et[it]),et[it];break;case 4:case 9:this.$=[];break;case 5:case 10:et[it-1].push(et[it]),this.$=et[it-1];break;case 6:case 7:case 11:case 12:this.$=et[it];break;case 8:case 13:this.$=[];break;case 15:et[it].type="createParticipant",this.$=et[it];break;case 16:et[it-1].unshift({type:"boxStart",boxData:ct.parseBoxData(et[it-2])}),et[it-1].push({type:"boxEnd",boxText:et[it-2]}),this.$=et[it-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(et[it-2]),sequenceIndexStep:Number(et[it-1]),sequenceVisible:!0,signalType:ct.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(et[it-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:ct.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:ct.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:ct.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:ct.LINETYPE.ACTIVE_START,actor:et[it-1].actor};break;case 23:this.$={type:"activeEnd",signalType:ct.LINETYPE.ACTIVE_END,actor:et[it-1].actor};break;case 29:ct.setDiagramTitle(et[it].substring(6)),this.$=et[it].substring(6);break;case 30:ct.setDiagramTitle(et[it].substring(7)),this.$=et[it].substring(7);break;case 31:this.$=et[it].trim(),ct.setAccTitle(this.$);break;case 32:case 33:this.$=et[it].trim(),ct.setAccDescription(this.$);break;case 34:et[it-1].unshift({type:"loopStart",loopText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.LOOP_START}),et[it-1].push({type:"loopEnd",loopText:et[it-2],signalType:ct.LINETYPE.LOOP_END}),this.$=et[it-1];break;case 35:et[it-1].unshift({type:"rectStart",color:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.RECT_START}),et[it-1].push({type:"rectEnd",color:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.RECT_END}),this.$=et[it-1];break;case 36:et[it-1].unshift({type:"optStart",optText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.OPT_START}),et[it-1].push({type:"optEnd",optText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.OPT_END}),this.$=et[it-1];break;case 37:et[it-1].unshift({type:"altStart",altText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.ALT_START}),et[it-1].push({type:"altEnd",signalType:ct.LINETYPE.ALT_END}),this.$=et[it-1];break;case 38:et[it-1].unshift({type:"parStart",parText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.PAR_START}),et[it-1].push({type:"parEnd",signalType:ct.LINETYPE.PAR_END}),this.$=et[it-1];break;case 39:et[it-1].unshift({type:"parStart",parText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.PAR_OVER_START}),et[it-1].push({type:"parEnd",signalType:ct.LINETYPE.PAR_END}),this.$=et[it-1];break;case 40:et[it-1].unshift({type:"criticalStart",criticalText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.CRITICAL_START}),et[it-1].push({type:"criticalEnd",signalType:ct.LINETYPE.CRITICAL_END}),this.$=et[it-1];break;case 41:et[it-1].unshift({type:"breakStart",breakText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.BREAK_START}),et[it-1].push({type:"breakEnd",optText:ct.parseMessage(et[it-2]),signalType:ct.LINETYPE.BREAK_END}),this.$=et[it-1];break;case 43:this.$=et[it-3].concat([{type:"option",optionText:ct.parseMessage(et[it-1]),signalType:ct.LINETYPE.CRITICAL_OPTION},et[it]]);break;case 45:this.$=et[it-3].concat([{type:"and",parText:ct.parseMessage(et[it-1]),signalType:ct.LINETYPE.PAR_AND},et[it]]);break;case 47:this.$=et[it-3].concat([{type:"else",altText:ct.parseMessage(et[it-1]),signalType:ct.LINETYPE.ALT_ELSE},et[it]]);break;case 48:et[it-3].draw="participant",et[it-3].type="addParticipant",et[it-3].description=ct.parseMessage(et[it-1]),this.$=et[it-3];break;case 49:et[it-1].draw="participant",et[it-1].type="addParticipant",this.$=et[it-1];break;case 50:et[it-3].draw="actor",et[it-3].type="addParticipant",et[it-3].description=ct.parseMessage(et[it-1]),this.$=et[it-3];break;case 51:et[it-1].draw="actor",et[it-1].type="addParticipant",this.$=et[it-1];break;case 52:et[it-1].type="destroyParticipant",this.$=et[it-1];break;case 53:this.$=[et[it-1],{type:"addNote",placement:et[it-2],actor:et[it-1].actor,text:et[it]}];break;case 54:et[it-2]=[].concat(et[it-1],et[it-1]).slice(0,2),et[it-2][0]=et[it-2][0].actor,et[it-2][1]=et[it-2][1].actor,this.$=[et[it-1],{type:"addNote",placement:ct.PLACEMENT.OVER,actor:et[it-2].slice(0,2),text:et[it]}];break;case 55:this.$=[et[it-1],{type:"addLinks",actor:et[it-1].actor,text:et[it]}];break;case 56:this.$=[et[it-1],{type:"addALink",actor:et[it-1].actor,text:et[it]}];break;case 57:this.$=[et[it-1],{type:"addProperties",actor:et[it-1].actor,text:et[it]}];break;case 58:this.$=[et[it-1],{type:"addDetails",actor:et[it-1].actor,text:et[it]}];break;case 61:this.$=[et[it-2],et[it]];break;case 62:this.$=et[it];break;case 63:this.$=ct.PLACEMENT.LEFTOF;break;case 64:this.$=ct.PLACEMENT.RIGHTOF;break;case 65:this.$=[et[it-4],et[it-1],{type:"addMessage",from:et[it-4].actor,to:et[it-1].actor,signalType:et[it-3],msg:et[it],activate:!0},{type:"activeStart",signalType:ct.LINETYPE.ACTIVE_START,actor:et[it-1].actor}];break;case 66:this.$=[et[it-4],et[it-1],{type:"addMessage",from:et[it-4].actor,to:et[it-1].actor,signalType:et[it-3],msg:et[it]},{type:"activeEnd",signalType:ct.LINETYPE.ACTIVE_END,actor:et[it-4].actor}];break;case 67:this.$=[et[it-3],et[it-1],{type:"addMessage",from:et[it-3].actor,to:et[it-1].actor,signalType:et[it-2],msg:et[it]}];break;case 68:this.$={type:"addParticipant",actor:et[it]};break;case 69:this.$=ct.LINETYPE.SOLID_OPEN;break;case 70:this.$=ct.LINETYPE.DOTTED_OPEN;break;case 71:this.$=ct.LINETYPE.SOLID;break;case 72:this.$=ct.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=ct.LINETYPE.DOTTED;break;case 74:this.$=ct.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=ct.LINETYPE.SOLID_CROSS;break;case 76:this.$=ct.LINETYPE.DOTTED_CROSS;break;case 77:this.$=ct.LINETYPE.SOLID_POINT;break;case 78:this.$=ct.LINETYPE.DOTTED_POINT;break;case 79:this.$=ct.parseMessage(et[it].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:r,6:n},{1:[3]},{3:5,4:t,5:r,6:n},{3:6,4:t,5:r,6:n},e([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},e(F,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},e(F,[2,7]),e(F,[2,8]),e(F,[2,14]),{12:48,50:L,52:M,53:N},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:P},{22:55,70:P},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},e(F,[2,29]),e(F,[2,30]),{32:[1,61]},{34:[1,62]},e(F,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:P},{22:72,70:P},{22:73,70:P},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:P},{22:90,70:P},{22:91,70:P},{22:92,70:P},e([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),e(F,[2,6]),e(F,[2,15]),e(B,[2,9],{10:93}),e(F,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},e(F,[2,21]),{5:[1,97]},{5:[1,98]},e(F,[2,24]),e(F,[2,25]),e(F,[2,26]),e(F,[2,27]),e(F,[2,28]),e(F,[2,31]),e(F,[2,32]),e(G,i,{7:99}),e(G,i,{7:100}),e(G,i,{7:101}),e(z,i,{40:102,7:103}),e(W,i,{42:104,7:105}),e(W,i,{7:105,42:106}),e(Q,i,{45:107,7:108}),e(G,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:P},e(j,[2,69]),e(j,[2,70]),e(j,[2,71]),e(j,[2,72]),e(j,[2,73]),e(j,[2,74]),e(j,[2,75]),e(j,[2,76]),e(j,[2,77]),e(j,[2,78]),{22:118,70:P},{22:120,58:119,70:P},{70:[2,63]},{70:[2,64]},{56:121,81:at},{56:123,81:at},{56:124,81:at},{56:125,81:at},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:L,52:M,53:N},{5:[1,131]},e(F,[2,19]),e(F,[2,20]),e(F,[2,22]),e(F,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,132],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,133],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,134],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,135]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,49:[1,136],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,137]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,48:[1,138],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{16:[1,139]},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,47:[1,141],50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,142],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:S,41:T,43:E,44:_,46:A,50:L,52:M,53:N,54:k,59:I,60:C,61:O,62:D,70:P},{15:[1,143]},e(F,[2,49]),{15:[1,144]},e(F,[2,51]),e(F,[2,52]),{22:145,70:P},{22:146,70:P},{56:147,81:at},{56:148,81:at},{56:149,81:at},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},e(F,[2,16]),e(B,[2,10]),{12:151,50:L,52:M,53:N},e(B,[2,12]),e(B,[2,13]),e(F,[2,18]),e(F,[2,34]),e(F,[2,35]),e(F,[2,36]),e(F,[2,37]),{15:[1,152]},e(F,[2,38]),{15:[1,153]},e(F,[2,39]),e(F,[2,40]),{15:[1,154]},e(F,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:at},{56:158,81:at},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:P},e(B,[2,11]),e(z,i,{7:103,40:160}),e(W,i,{7:105,42:161}),e(Q,i,{7:108,45:162}),e(F,[2,48]),e(F,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:o(function(q,K){if(K.recoverable)this.trace(q);else{var ot=new Error(q);throw ot.hash=K,ot}},"parseError"),parse:o(function(q){var K=this,ot=[0],ct=[],ut=[null],et=[],Mt=this.table,it="",wt=0,Ot=0,St=0,Vt=2,Pt=1,_t=et.slice.call(arguments,1),dt=Object.create(this.lexer),Y={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&(Y.yy[ft]=this.yy[ft]);dt.setInput(q,Y.yy),Y.yy.lexer=dt,Y.yy.parser=this,typeof dt.yylloc>"u"&&(dt.yylloc={});var mt=dt.yylloc;et.push(mt);var rt=dt.options&&dt.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ht(Ee){ot.length=ot.length-2*Ee,ut.length=ut.length-Ee,et.length=et.length-Ee}o(ht,"popStack");function nt(){var Ee;return Ee=ct.pop()||dt.lex()||Pt,typeof Ee!="number"&&(Ee instanceof Array&&(ct=Ee,Ee=ct.pop()),Ee=K.symbols_[Ee]||Ee),Ee}o(nt,"lex");for(var st,Tt,kt,Ct,At,$t,Nt={},yt,Ut,zt,ae;;){if(kt=ot[ot.length-1],this.defaultActions[kt]?Ct=this.defaultActions[kt]:((st===null||typeof st>"u")&&(st=nt()),Ct=Mt[kt]&&Mt[kt][st]),typeof Ct>"u"||!Ct.length||!Ct[0]){var ke="";ae=[];for(yt in Mt[kt])this.terminals_[yt]&&yt>Vt&&ae.push("'"+this.terminals_[yt]+"'");dt.showPosition?ke="Parse error on line "+(wt+1)+`: +`+dt.showPosition()+` +Expecting `+ae.join(", ")+", got '"+(this.terminals_[st]||st)+"'":ke="Parse error on line "+(wt+1)+": Unexpected "+(st==Pt?"end of input":"'"+(this.terminals_[st]||st)+"'"),this.parseError(ke,{text:dt.match,token:this.terminals_[st]||st,line:dt.yylineno,loc:mt,expected:ae})}if(Ct[0]instanceof Array&&Ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+st);switch(Ct[0]){case 1:ot.push(st),ut.push(dt.yytext),et.push(dt.yylloc),ot.push(Ct[1]),st=null,Tt?(st=Tt,Tt=null):(Ot=dt.yyleng,it=dt.yytext,wt=dt.yylineno,mt=dt.yylloc,St>0&&St--);break;case 2:if(Ut=this.productions_[Ct[1]][1],Nt.$=ut[ut.length-Ut],Nt._$={first_line:et[et.length-(Ut||1)].first_line,last_line:et[et.length-1].last_line,first_column:et[et.length-(Ut||1)].first_column,last_column:et[et.length-1].last_column},rt&&(Nt._$.range=[et[et.length-(Ut||1)].range[0],et[et.length-1].range[1]]),$t=this.performAction.apply(Nt,[it,Ot,wt,Y.yy,Ct[1],ut,et].concat(_t)),typeof $t<"u")return $t;Ut&&(ot=ot.slice(0,-1*Ut*2),ut=ut.slice(0,-1*Ut),et=et.slice(0,-1*Ut)),ot.push(this.productions_[Ct[1]][0]),ut.push(Nt.$),et.push(Nt._$),zt=Mt[ot[ot.length-2]][ot[ot.length-1]],ot.push(zt);break;case 3:return!0}}return!0},"parse")},J=function(){var H={EOF:1,parseError:o(function(K,ot){if(this.yy.parser)this.yy.parser.parseError(K,ot);else throw new Error(K)},"parseError"),setInput:o(function(q,K){return this.yy=K||this.yy||{},this._input=q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var q=this._input[0];this.yytext+=q,this.yyleng++,this.offset++,this.match+=q,this.matched+=q;var K=q.match(/(?:\r\n?|\n).*/g);return K?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),q},"input"),unput:o(function(q){var K=q.length,ot=q.split(/(?:\r\n?|\n)/g);this._input=q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-K),this.offset-=K;var ct=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ot.length-1&&(this.yylineno-=ot.length-1);var ut=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ot?(ot.length===ct.length?this.yylloc.first_column:0)+ct[ct.length-ot.length].length-ot[0].length:this.yylloc.first_column-K},this.options.ranges&&(this.yylloc.range=[ut[0],ut[0]+this.yyleng-K]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(q){this.unput(this.match.slice(q))},"less"),pastInput:o(function(){var q=this.matched.substr(0,this.matched.length-this.match.length);return(q.length>20?"...":"")+q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var q=this.match;return q.length<20&&(q+=this._input.substr(0,20-q.length)),(q.substr(0,20)+(q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var q=this.pastInput(),K=new Array(q.length+1).join("-");return q+this.upcomingInput()+` +`+K+"^"},"showPosition"),test_match:o(function(q,K){var ot,ct,ut;if(this.options.backtrack_lexer&&(ut={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ut.yylloc.range=this.yylloc.range.slice(0))),ct=q[0].match(/(?:\r\n?|\n).*/g),ct&&(this.yylineno+=ct.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ct?ct[ct.length-1].length-ct[ct.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+q[0].length},this.yytext+=q[0],this.match+=q[0],this.matches=q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(q[0].length),this.matched+=q[0],ot=this.performAction.call(this,this.yy,this,K,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ot)return ot;if(this._backtrack){for(var et in ut)this[et]=ut[et];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var q,K,ot,ct;this._more||(this.yytext="",this.match="");for(var ut=this._currentRules(),et=0;etK[0].length)){if(K=ot,ct=et,this.options.backtrack_lexer){if(q=this.test_match(ot,ut[et]),q!==!1)return q;if(this._backtrack){K=!1;continue}else return!1}else if(!this.options.flex)break}return K?(q=this.test_match(K,ut[ct]),q!==!1?q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var K=this.next();return K||this.lex()},"lex"),begin:o(function(K){this.conditionStack.push(K)},"begin"),popState:o(function(){var K=this.conditionStack.length-1;return K>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(K){return K=this.conditionStack.length-1-Math.abs(K||0),K>=0?this.conditionStack[K]:"INITIAL"},"topState"),pushState:o(function(K){this.begin(K)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(K,ot,ct,ut){var et=ut;switch(ct){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;break;case 8:return this.begin("ID"),50;break;case 9:return this.begin("ID"),52;break;case 10:return 13;case 11:return this.begin("ID"),53;break;case 12:return ot.yytext=ot.yytext.trim(),this.begin("ALIAS"),70;break;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 14:return this.popState(),this.popState(),5;break;case 15:return this.begin("LINE"),36;break;case 16:return this.begin("LINE"),37;break;case 17:return this.begin("LINE"),38;break;case 18:return this.begin("LINE"),39;break;case 19:return this.begin("LINE"),49;break;case 20:return this.begin("LINE"),41;break;case 21:return this.begin("LINE"),43;break;case 22:return this.begin("LINE"),48;break;case 23:return this.begin("LINE"),44;break;case 24:return this.begin("LINE"),47;break;case 25:return this.begin("LINE"),46;break;case 26:return this.popState(),15;break;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;break;case 37:return this.begin("ID"),23;break;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;break;case 41:return this.popState(),"acc_title_value";break;case 42:return this.begin("acc_descr"),33;break;case 43:return this.popState(),"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return ot.yytext=ot.yytext.trim(),70;break;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 66:return 5;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return H}();X.lexer=J;function Z(){this.yy={}}return o(Z,"Parser"),Z.prototype=X,X.Parser=Z,new Z}();gP.parser=gP;Gft=gP});function vP(e,t){if(e.links==null)e.links=t;else for(let r in t)e.links[r]=t[r]}function qft(e,t){if(e.properties==null)e.properties=t;else for(let r in t)e.properties[r]=t[r]}function UUt(){Ge.records.currentBox=void 0}var Ge,TUt,yP,kUt,EUt,xi,CUt,SUt,AUt,_Ut,LUt,DUt,RUt,Ux,NUt,MUt,IUt,OUt,PUt,Uft,M0,BUt,FUt,zUt,Vx,$Ut,GUt,Hft,Wft,VUt,Yft,Xft,HUt,jft,xP,Kft=R(()=>{"use strict";Ue();ce();HE();hr();Ci();Ge=new mf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),TUt=o(function(e){Ge.records.boxes.push({name:e.text,wrap:e.wrap??M0(),fill:e.color,actorKeys:[]}),Ge.records.currentBox=Ge.records.boxes.slice(-1)[0]},"addBox"),yP=o(function(e,t,r,n){let i=Ge.records.currentBox,a=Ge.records.actors.get(e);if(a){if(Ge.records.currentBox&&a.box&&Ge.records.currentBox!==a.box)throw new Error(`A same participant should only be defined in one Box: ${a.name} can't be in '${a.box.name}' and in '${Ge.records.currentBox.name}' at the same time.`);if(i=a.box?a.box:Ge.records.currentBox,a.box=i,a&&t===a.name&&r==null)return}if(r?.text==null&&(r={text:t,type:n}),(n==null||r.text==null)&&(r={text:t,type:n}),Ge.records.actors.set(e,{box:i,name:t,description:r.text,wrap:r.wrap??M0(),prevActor:Ge.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),Ge.records.prevActor){let s=Ge.records.actors.get(Ge.records.prevActor);s&&(s.nextActor=e)}Ge.records.currentBox&&Ge.records.currentBox.actorKeys.push(e),Ge.records.prevActor=e},"addActor"),kUt=o(e=>{let t,r=0;if(!e)return 0;for(t=0;t>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},s}return Ge.records.messages.push({from:e,to:t,message:r?.text??"",wrap:r?.wrap??M0(),type:n,activate:i}),!0},"addSignal"),CUt=o(function(){return Ge.records.boxes.length>0},"hasAtLeastOneBox"),SUt=o(function(){return Ge.records.boxes.some(e=>e.name)},"hasAtLeastOneBoxWithTitle"),AUt=o(function(){return Ge.records.messages},"getMessages"),_Ut=o(function(){return Ge.records.boxes},"getBoxes"),LUt=o(function(){return Ge.records.actors},"getActors"),DUt=o(function(){return Ge.records.createdActors},"getCreatedActors"),RUt=o(function(){return Ge.records.destroyedActors},"getDestroyedActors"),Ux=o(function(e){return Ge.records.actors.get(e)},"getActor"),NUt=o(function(){return[...Ge.records.actors.keys()]},"getActorKeys"),MUt=o(function(){Ge.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),IUt=o(function(){Ge.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),OUt=o(()=>Ge.records.sequenceNumbersEnabled,"showSequenceNumbers"),PUt=o(function(e){Ge.records.wrapEnabled=e},"setWrap"),Uft=o(e=>{if(e===void 0)return{};e=e.trim();let t=/^:?wrap:/.exec(e)!==null?!0:/^:?nowrap:/.exec(e)!==null?!1:void 0;return{cleanedText:(t===void 0?e:e.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:t}},"extractWrap"),M0=o(()=>Ge.records.wrapEnabled!==void 0?Ge.records.wrapEnabled:pt().sequence?.wrap??!1,"autoWrap"),BUt=o(function(){Ge.reset(),Ar()},"clear"),FUt=o(function(e){let t=e.trim(),{wrap:r,cleanedText:n}=Uft(t),i={text:n,wrap:r};return V.debug(`parseMessage: ${JSON.stringify(i)}`),i},"parseMessage"),zUt=o(function(e){let t=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(e),r=t?.[1]?t[1].trim():"transparent",n=t?.[2]?t[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",r)||(r="transparent",n=e.trim());else{let s=new Option().style;s.color=r,s.color!==r&&(r="transparent",n=e.trim())}let{wrap:i,cleanedText:a}=Uft(n);return{text:a?Zr(a,pt()):void 0,color:r,wrap:i}},"parseBoxData"),Vx={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},$Ut={FILLED:0,OPEN:1},GUt={LEFTOF:0,RIGHTOF:1,OVER:2},Hft=o(function(e,t,r){let n={actor:e,placement:t,message:r.text,wrap:r.wrap??M0()},i=[].concat(e,e);Ge.records.notes.push(n),Ge.records.messages.push({from:i[0],to:i[1],message:r.text,wrap:r.wrap??M0(),type:Vx.NOTE,placement:t})},"addNote"),Wft=o(function(e,t){let r=Ux(e);try{let n=Zr(t.text,pt());n=n.replace(/&/g,"&"),n=n.replace(/=/g,"=");let i=JSON.parse(n);vP(r,i)}catch(n){V.error("error while parsing actor link text",n)}},"addLinks"),VUt=o(function(e,t){let r=Ux(e);try{let n={},i=Zr(t.text,pt()),a=i.indexOf("@");i=i.replace(/&/g,"&"),i=i.replace(/=/g,"=");let s=i.slice(0,a-1).trim(),l=i.slice(a+1).trim();n[s]=l,vP(r,n)}catch(n){V.error("error while parsing actor link text",n)}},"addALink");o(vP,"insertLinks");Yft=o(function(e,t){let r=Ux(e);try{let n=Zr(t.text,pt()),i=JSON.parse(n);qft(r,i)}catch(n){V.error("error while parsing actor properties text",n)}},"addProperties");o(qft,"insertProperties");o(UUt,"boxEnd");Xft=o(function(e,t){let r=Ux(e),n=document.getElementById(t.text);try{let i=n.innerHTML,a=JSON.parse(i);a.properties&&qft(r,a.properties),a.links&&vP(r,a.links)}catch(i){V.error("error while parsing actor details text",i)}},"addDetails"),HUt=o(function(e,t){if(e?.properties!==void 0)return e.properties[t]},"getActorProperty"),jft=o(function(e){if(Array.isArray(e))e.forEach(function(t){jft(t)});else switch(e.type){case"sequenceIndex":Ge.records.messages.push({from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible},wrap:!1,type:e.signalType});break;case"addParticipant":yP(e.actor,e.actor,e.description,e.draw);break;case"createParticipant":if(Ge.records.actors.has(e.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");Ge.records.lastCreated=e.actor,yP(e.actor,e.actor,e.description,e.draw),Ge.records.createdActors.set(e.actor,Ge.records.messages.length);break;case"destroyParticipant":Ge.records.lastDestroyed=e.actor,Ge.records.destroyedActors.set(e.actor,Ge.records.messages.length);break;case"activeStart":xi(e.actor,void 0,void 0,e.signalType);break;case"activeEnd":xi(e.actor,void 0,void 0,e.signalType);break;case"addNote":Hft(e.actor,e.placement,e.text);break;case"addLinks":Wft(e.actor,e.text);break;case"addALink":VUt(e.actor,e.text);break;case"addProperties":Yft(e.actor,e.text);break;case"addDetails":Xft(e.actor,e.text);break;case"addMessage":if(Ge.records.lastCreated){if(e.to!==Ge.records.lastCreated)throw new Error("The created participant "+Ge.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");Ge.records.lastCreated=void 0}else if(Ge.records.lastDestroyed){if(e.to!==Ge.records.lastDestroyed&&e.from!==Ge.records.lastDestroyed)throw new Error("The destroyed participant "+Ge.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");Ge.records.lastDestroyed=void 0}xi(e.from,e.to,e.msg,e.signalType,e.activate);break;case"boxStart":TUt(e.boxData);break;case"boxEnd":UUt();break;case"loopStart":xi(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":xi(void 0,void 0,void 0,e.signalType);break;case"rectStart":xi(void 0,void 0,e.color,e.signalType);break;case"rectEnd":xi(void 0,void 0,void 0,e.signalType);break;case"optStart":xi(void 0,void 0,e.optText,e.signalType);break;case"optEnd":xi(void 0,void 0,void 0,e.signalType);break;case"altStart":xi(void 0,void 0,e.altText,e.signalType);break;case"else":xi(void 0,void 0,e.altText,e.signalType);break;case"altEnd":xi(void 0,void 0,void 0,e.signalType);break;case"setAccTitle":Mr(e.text);break;case"parStart":xi(void 0,void 0,e.parText,e.signalType);break;case"and":xi(void 0,void 0,e.parText,e.signalType);break;case"parEnd":xi(void 0,void 0,void 0,e.signalType);break;case"criticalStart":xi(void 0,void 0,e.criticalText,e.signalType);break;case"option":xi(void 0,void 0,e.optionText,e.signalType);break;case"criticalEnd":xi(void 0,void 0,void 0,e.signalType);break;case"breakStart":xi(void 0,void 0,e.breakText,e.signalType);break;case"breakEnd":xi(void 0,void 0,void 0,e.signalType);break}},"apply"),xP={addActor:yP,addMessage:EUt,addSignal:xi,addLinks:Wft,addDetails:Xft,addProperties:Yft,autoWrap:M0,setWrap:PUt,enableSequenceNumbers:MUt,disableSequenceNumbers:IUt,showSequenceNumbers:OUt,getMessages:AUt,getActors:LUt,getCreatedActors:DUt,getDestroyedActors:RUt,getActor:Ux,getActorKeys:NUt,getActorProperty:HUt,getAccTitle:Br,getBoxes:_Ut,getDiagramTitle:Jr,setDiagramTitle:cn,getConfig:o(()=>pt().sequence,"getConfig"),clear:BUt,parseMessage:FUt,parseBoxData:zUt,LINETYPE:Vx,ARROWTYPE:$Ut,PLACEMENT:GUt,addNote:Hft,setAccTitle:Mr,apply:jft,setAccDescription:Fr,getAccDescription:zr,hasAtLeastOneBox:CUt,hasAtLeastOneBoxWithTitle:SUt}});var WUt,Qft,Zft=R(()=>{"use strict";WUt=o(e=>`.actor { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + } + + text.actor > tspan { + fill: ${e.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${e.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${e.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${e.signalColor}; + } + + #arrowhead path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .sequenceNumber { + fill: ${e.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${e.signalColor}; + } + + #crosshead path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .messageText { + fill: ${e.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${e.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${e.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${e.noteBorderColor}; + fill: ${e.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${e.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation1 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation2 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${e.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + } + .actor-man circle, line { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),Qft=WUt});var bP,wf,tdt,edt,YUt,Jft,wP,qUt,XUt,Hx,I0,rdt,Yc,TP,jUt,KUt,QUt,ZUt,JUt,tHt,eHt,ndt,rHt,nHt,iHt,aHt,sHt,oHt,lHt,idt,cHt,kP,uHt,hi,adt=R(()=>{"use strict";hr();lv();_r();bP=Qi(Qp(),1);js();wf=18*2,tdt="actor-top",edt="actor-bottom",YUt="actor-box",Jft="actor-man",wP=o(function(e,t){return Td(e,t)},"drawRect"),qUt=o(function(e,t,r,n,i){if(t.links===void 0||t.links===null||Object.keys(t.links).length===0)return{height:0,width:0};let a=t.links,s=t.actorCnt,l=t.rectData;var u="none";i&&(u="block !important");let h=e.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,bP.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),uHt(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),XUt=o(function(e){return"var pu = document.getElementById('"+e+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Hx=o(async function(e,t,r=null){let n=e.append("foreignObject"),i=await vh(t.text,Nr()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),t.class==="noteText"){let l=e.node().firstChild;l.setAttribute("height",s.height+2*t.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),t.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),I0=o(function(e,t){let r=0,n=0,i=t.text.split(Yt.lineBreakRegex),[a,s]=Tc(t.fontSize),l=[],u=0,h=o(()=>t.y,"yfunc");if(t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0)switch(t.valign){case"top":case"start":h=o(()=>Math.round(t.y+t.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(t.y+(r+n+t.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(t.y+(r+n+2*t.textMargin)-t.textMargin),"yfunc");break}if(t.anchor!==void 0&&t.textMargin!==void 0&&t.width!==void 0)switch(t.anchor){case"left":case"start":t.x=Math.round(t.x+t.textMargin),t.anchor="start",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"middle":case"center":t.x=Math.round(t.x+t.width/2),t.anchor="middle",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"right":case"end":t.x=Math.round(t.x+t.width-t.textMargin),t.anchor="end",t.dominantBaseline="middle",t.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){t.textMargin!==void 0&&t.textMargin===0&&a!==void 0&&(u=f*a);let p=e.append("text");p.attr("x",t.x),p.attr("y",h()),t.anchor!==void 0&&p.attr("text-anchor",t.anchor).attr("dominant-baseline",t.dominantBaseline).attr("alignment-baseline",t.alignmentBaseline),t.fontFamily!==void 0&&p.style("font-family",t.fontFamily),s!==void 0&&p.style("font-size",s),t.fontWeight!==void 0&&p.style("font-weight",t.fontWeight),t.fill!==void 0&&p.attr("fill",t.fill),t.class!==void 0&&p.attr("class",t.class),t.dy!==void 0?p.attr("dy",t.dy):u!==0&&p.attr("dy",u);let m=d||B9;if(t.tspan){let g=p.append("tspan");g.attr("x",t.x),t.fill!==void 0&&g.attr("fill",t.fill),g.text(m)}else p.text(m);t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),rdt=o(function(e,t){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=e.append("polygon");return n.attr("points",r(t.x,t.y,t.width,t.height,7)),n.attr("class","labelBox"),t.y=t.y+t.height/2,I0(e,t),n},"drawLabel"),Yc=-1,TP=o((e,t,r,n)=>{e.select&&r.forEach(i=>{let a=t.get(i),s=e.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),jUt=o(function(e,t,r,n){let i=n?t.stopy:t.starty,a=t.x+t.width/2,s=i+t.height,l=e.append("g").lower();var u=l;n||(Yc++,Object.keys(t.links||{}).length&&!r.forceMenus&&u.attr("onclick",XUt(`actor${Yc}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Yc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),u=l.append("g"),t.actorCnt=Yc,t.links!=null&&u.attr("id","root-"+Yc));let h=Sl();var f="actor";t.properties?.class?f=t.properties.class:h.fill="#eaeaea",n?f+=` ${edt}`:f+=` ${tdt}`,h.x=t.x,h.y=i,h.width=t.width,h.height=t.height,h.class=f,h.rx=3,h.ry=3,h.name=t.name;let d=wP(u,h);if(t.rectData=h,t.properties?.icon){let m=t.properties.icon.trim();m.charAt(0)==="@"?Tq(u,h.x+h.width-20,h.y+10,m.substr(1)):wq(u,h.x+h.width-20,h.y+10,m)}kP(r,Pi(t.description))(t.description,u,h.x,h.y,h.width,h.height,{class:`actor ${YUt}`},r);let p=t.height;if(d.node){let m=d.node().getBBox();t.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),KUt=o(function(e,t,r,n){let i=n?t.stopy:t.starty,a=t.x+t.width/2,s=i+80,l=e.append("g").lower();n||(Yc++,l.append("line").attr("id","actor"+Yc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),t.actorCnt=Yc);let u=e.append("g"),h=Jft;n?h+=` ${edt}`:h+=` ${tdt}`,u.attr("class",h),u.attr("name",t.name);let f=Sl();f.x=t.x,f.y=i,f.fill="#eaeaea",f.width=t.width,f.height=t.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Yc).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Yc).attr("x1",a-wf/2).attr("y1",i+33).attr("x2",a+wf/2).attr("y2",i+33),u.append("line").attr("x1",a-wf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+wf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",t.x+t.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",t.width),d.attr("height",t.height);let p=u.node().getBBox();return t.height=p.height,kP(r,Pi(t.description))(t.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${Jft}`},r),t.height},"drawActorTypeActor"),QUt=o(async function(e,t,r,n){switch(t.type){case"actor":return await KUt(e,t,r,n);case"participant":return await jUt(e,t,r,n)}},"drawActor"),ZUt=o(function(e,t,r){let i=e.append("g");ndt(i,t),t.name&&kP(r)(t.name,i,t.x,t.y+(t.textMaxHeight||0)/2,t.width,0,{class:"text"},r),i.lower()},"drawBox"),JUt=o(function(e){return e.append("g")},"anchorElement"),tHt=o(function(e,t,r,n,i){let a=Sl(),s=t.anchored;a.x=t.startx,a.y=t.starty,a.class="activation"+i%3,a.width=t.stopx-t.startx,a.height=r-t.starty,wP(s,a)},"drawActivation"),eHt=o(async function(e,t,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=e.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(t.startx,t.starty,t.stopx,t.starty),p(t.stopx,t.starty,t.stopx,t.stopy),p(t.startx,t.stopy,t.stopx,t.stopy),p(t.startx,t.starty,t.startx,t.stopy),t.sections!==void 0&&t.sections.forEach(function(y){p(t.startx,y.y,t.stopx,y.y).style("stroke-dasharray","3, 3")});let m=ov();m.text=r,m.x=t.startx,m.y=t.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",rdt(d,m),m=idt(),m.text=t.title,m.x=t.startx+l/2+(t.stopx-t.startx)/2,m.y=t.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=Pi(m.text)?await Hx(d,m,t):I0(d,m);if(t.sectionTitles!==void 0){for(let[y,v]of Object.entries(t.sectionTitles))if(v.message){m.text=v.message,m.x=t.startx+(t.stopx-t.startx)/2,m.y=t.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=t.wrap,Pi(m.text)?(t.starty=t.sections[y].y,await Hx(d,m,t)):I0(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));t.sections[y].height+=x-(i+a)}}return t.height=Math.round(t.stopy-t.starty),d},"drawLoop"),ndt=o(function(e,t){m5(e,t)},"drawBackgroundRect"),rHt=o(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),nHt=o(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),iHt=o(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),aHt=o(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),sHt=o(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),oHt=o(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),lHt=o(function(e){e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),idt=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),cHt=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),kP=function(){function e(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(e,"byText");function t(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Tc(m),b=a.split(Yt.lineBreakRegex);for(let w=0;w{let s=O0(Rt),l=a.actorKeys.reduce((f,d)=>f+=e.get(d).width+(e.get(d).margin||0),0);l-=2*Rt.boxTextMargin,a.wrap&&(a.name=Oe.wrapLabel(a.name,l-2*Rt.wrapPadding,s));let u=Oe.calculateTextDimensions(a.name,s);i=Yt.getMax(u.height,i);let h=Yt.getMax(l,u.width+2*Rt.wrapPadding);if(a.margin=Rt.boxTextMargin,la.textMaxHeight=i),Yt.getMax(n,Rt.height)}var Rt,re,hHt,O0,Qg,EP,dHt,pHt,CP,odt,ldt,h6,sdt,gHt,vHt,bHt,wHt,THt,cdt,udt=R(()=>{"use strict";ur();adt();ce();hr();lv();Ue();yp();_r();Jn();Rt={},re={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(e=>e.height||0))+(this.loops.length===0?0:this.loops.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.messages.length===0?0:this.messages.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.notes.length===0?0:this.notes.map(e=>e.height||0).reduce((e,t)=>e+t))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(e){this.boxes.push(e)},"addBox"),addActor:o(function(e){this.actors.push(e)},"addActor"),addLoop:o(function(e){this.loops.push(e)},"addLoop"),addMessage:o(function(e){this.messages.push(e)},"addMessage"),addNote:o(function(e){this.notes.push(e)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,ldt(pt())},"init"),updateVal:o(function(e,t,r,n){e[t]===void 0?e[t]=r:e[t]=n(r,e[t])},"updateVal"),updateBounds:o(function(e,t,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",t-f*Rt.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Rt.boxMargin,Math.max),i.updateVal(re.data,"startx",e-f*Rt.boxMargin,Math.min),i.updateVal(re.data,"stopx",r+f*Rt.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",e-f*Rt.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Rt.boxMargin,Math.max),i.updateVal(re.data,"starty",t-f*Rt.boxMargin,Math.min),i.updateVal(re.data,"stopy",n+f*Rt.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(e,t,r,n){let i=Yt.getMin(e,r),a=Yt.getMax(e,r),s=Yt.getMin(t,n),l=Yt.getMax(t,n);this.updateVal(re.data,"startx",i,Math.min),this.updateVal(re.data,"starty",s,Math.min),this.updateVal(re.data,"stopx",a,Math.max),this.updateVal(re.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(e,t,r){let n=r.get(e.from),i=h6(e.from).length||0,a=n.x+n.width/2+(i-1)*Rt.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Rt.activationWidth,stopy:void 0,actor:e.from,anchored:hi.anchorElement(t)})},"newActivation"),endActivation:o(function(e){let t=this.activations.map(function(r){return r.actor}).lastIndexOf(e.from);return this.activations.splice(t,1)[0]},"endActivation"),createLoop:o(function(e={message:void 0,wrap:!1,width:void 0},t){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:e.message,wrap:e.wrap,width:e.width,height:0,fill:t}},"createLoop"),newLoop:o(function(e={message:void 0,wrap:!1,width:void 0},t){this.sequenceItems.push(this.createLoop(e,t))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(e){let t=this.sequenceItems.pop();t.sections=t.sections||[],t.sectionTitles=t.sectionTitles||[],t.sections.push({y:re.getVerticalPos(),height:0}),t.sectionTitles.push(e),this.sequenceItems.push(t)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=Yt.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},hHt=o(async function(e,t){re.bumpVerticalPos(Rt.boxMargin),t.height=Rt.boxMargin,t.starty=re.getVerticalPos();let r=Sl();r.x=t.startx,r.y=t.starty,r.width=t.width||Rt.width,r.class="note";let n=e.append("g"),i=hi.drawRect(n,r),a=ov();a.x=t.startx,a.y=t.starty,a.width=r.width,a.dy="1em",a.text=t.message,a.class="noteText",a.fontFamily=Rt.noteFontFamily,a.fontSize=Rt.noteFontSize,a.fontWeight=Rt.noteFontWeight,a.anchor=Rt.noteAlign,a.textMargin=Rt.noteMargin,a.valign="center";let s=Pi(a.text)?await Hx(n,a):I0(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Rt.noteMargin),t.height+=l+2*Rt.noteMargin,re.bumpVerticalPos(l+2*Rt.noteMargin),t.stopy=t.starty+l+2*Rt.noteMargin,t.stopx=t.startx+r.width,re.insert(t.startx,t.starty,t.stopx,t.stopy),re.models.addNote(t)},"drawNote"),O0=o(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont"),Qg=o(e=>({fontFamily:e.noteFontFamily,fontSize:e.noteFontSize,fontWeight:e.noteFontWeight}),"noteFont"),EP=o(e=>({fontFamily:e.actorFontFamily,fontSize:e.actorFontSize,fontWeight:e.actorFontWeight}),"actorFont");o(fHt,"boundMessage");dHt=o(async function(e,t,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=t,d=Oe.calculateTextDimensions(l,O0(Rt)),p=ov();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Rt.messageFontFamily,p.fontSize=Rt.messageFontSize,p.fontWeight=Rt.messageFontWeight,p.anchor=Rt.messageAlign,p.valign="center",p.textMargin=Rt.wrapPadding,p.tspan=!1,Pi(p.text)?await Hx(e,p,{startx:i,stopx:a,starty:r}):I0(e,p);let m=d.width,g;i===a?Rt.rightAngles?g=e.append("path").attr("d",`M ${i},${r} H ${i+Yt.getMax(Rt.width/2,m/2)} V ${r+25} H ${i}`):g=e.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=e.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Rt.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Rt.showSequenceNumbers)&&(g.attr("marker-start","url("+y+"#sequencenumber)"),e.append("text").attr("x",i).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},"drawMessage"),pHt=o(function(e,t,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=t.get(d),m=p.box;h&&h!=m&&(s||re.models.addBox(h),u+=Rt.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Rt.width,p.height=Yt.getMax(p.height||Rt.height,Rt.height),p.margin=p.margin||Rt.actorMargin,f=Yt.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=re.getVerticalPos(),re.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,re.models.addActor(p)}h&&!s&&re.models.addBox(h),re.bumpVerticalPos(f)},"addActorRenderingData"),CP=o(async function(e,t,r,n){if(n){let i=0;re.bumpVerticalPos(Rt.boxMargin*2);for(let a of r){let s=t.get(a);s.stopy||(s.stopy=re.getVerticalPos());let l=await hi.drawActor(e,s,Rt,!0);i=Yt.getMax(i,l)}re.bumpVerticalPos(i+Rt.boxMargin)}else for(let i of r){let a=t.get(i);await hi.drawActor(e,a,Rt,!1)}},"drawActors"),odt=o(function(e,t,r,n){let i=0,a=0;for(let s of r){let l=t.get(s),u=vHt(l),h=hi.drawPopup(e,l,u,Rt,Rt.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),ldt=o(function(e){Vn(Rt,e),e.fontFamily&&(Rt.actorFontFamily=Rt.noteFontFamily=Rt.messageFontFamily=e.fontFamily),e.fontSize&&(Rt.actorFontSize=Rt.noteFontSize=Rt.messageFontSize=e.fontSize),e.fontWeight&&(Rt.actorFontWeight=Rt.noteFontWeight=Rt.messageFontWeight=e.fontWeight)},"setConf"),h6=o(function(e){return re.activations.filter(function(t){return t.actor===e})},"actorActivations"),sdt=o(function(e,t){let r=t.get(e),n=h6(e),i=n.reduce(function(s,l){return Yt.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return Yt.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(qc,"adjustLoopHeightForWrap");o(mHt,"adjustCreatedDestroyedData");gHt=o(async function(e,t,r,n){let{securityLevel:i,sequence:a}=pt();Rt=a;let s;i==="sandbox"&&(s=Gt("#i"+t));let l=i==="sandbox"?Gt(s.nodes()[0].contentDocument.body):Gt("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;re.init(),V.debug(n.db);let h=i==="sandbox"?l.select(`[id="${t}"]`):Gt(`[id="${t}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),w=await yHt(f,y,n);if(Rt.height=await xHt(f,w,m),hi.insertComputerIcon(h),hi.insertDatabaseIcon(h),hi.insertClockIcon(h),x&&(re.bumpVerticalPos(Rt.boxMargin),b&&re.bumpVerticalPos(m[0].textMaxHeight)),Rt.hideUnusedParticipants===!0){let F=new Set;y.forEach(B=>{F.add(B.from),F.add(B.to)}),g=g.filter(B=>F.has(B))}pHt(h,f,d,g,0,y,!1);let S=await THt(y,f,w,n);hi.insertArrowHead(h),hi.insertArrowCrossHead(h),hi.insertArrowFilledHead(h),hi.insertSequenceNumber(h);function T(F,B){let G=re.endActivation(F);G.starty+18>B&&(G.starty=B-6,B+=12),hi.drawActivation(h,G,B,Rt,h6(F.from).length),re.insert(G.startx,B-10,G.stopx,B)}o(T,"activeEnd");let E=1,_=1,A=[],L=[],M=0;for(let F of y){let B,G,z;switch(F.type){case n.db.LINETYPE.NOTE:re.resetVerticalPos(),G=F.noteModel,await hHt(h,G);break;case n.db.LINETYPE.ACTIVE_START:re.newActivation(F,h,f);break;case n.db.LINETYPE.ACTIVE_END:T(F,re.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W));break;case n.db.LINETYPE.LOOP_END:B=re.endLoop(),await hi.drawLoop(h,B,"loop",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;case n.db.LINETYPE.RECT_START:qc(S,F,Rt.boxMargin,Rt.boxMargin,W=>re.newLoop(void 0,W.message));break;case n.db.LINETYPE.RECT_END:B=re.endLoop(),L.push(B),re.models.addLoop(B),re.bumpVerticalPos(B.stopy-re.getVerticalPos());break;case n.db.LINETYPE.OPT_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W));break;case n.db.LINETYPE.OPT_END:B=re.endLoop(),await hi.drawLoop(h,B,"opt",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;case n.db.LINETYPE.ALT_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W));break;case n.db.LINETYPE.ALT_ELSE:qc(S,F,Rt.boxMargin+Rt.boxTextMargin,Rt.boxMargin,W=>re.addSectionToLoop(W));break;case n.db.LINETYPE.ALT_END:B=re.endLoop(),await hi.drawLoop(h,B,"alt",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W)),re.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:qc(S,F,Rt.boxMargin+Rt.boxTextMargin,Rt.boxMargin,W=>re.addSectionToLoop(W));break;case n.db.LINETYPE.PAR_END:B=re.endLoop(),await hi.drawLoop(h,B,"par",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;case n.db.LINETYPE.AUTONUMBER:E=F.message.start||E,_=F.message.step||_,F.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W));break;case n.db.LINETYPE.CRITICAL_OPTION:qc(S,F,Rt.boxMargin+Rt.boxTextMargin,Rt.boxMargin,W=>re.addSectionToLoop(W));break;case n.db.LINETYPE.CRITICAL_END:B=re.endLoop(),await hi.drawLoop(h,B,"critical",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;case n.db.LINETYPE.BREAK_START:qc(S,F,Rt.boxMargin,Rt.boxMargin+Rt.boxTextMargin,W=>re.newLoop(W));break;case n.db.LINETYPE.BREAK_END:B=re.endLoop(),await hi.drawLoop(h,B,"break",Rt),re.bumpVerticalPos(B.stopy-re.getVerticalPos()),re.models.addLoop(B);break;default:try{z=F.msgModel,z.starty=re.getVerticalPos(),z.sequenceIndex=E,z.sequenceVisible=n.db.showSequenceNumbers();let W=await fHt(h,z);mHt(F,z,W,M,f,d,p),A.push({messageModel:z,lineStartY:W}),re.models.addMessage(z)}catch(W){V.error("error while drawing message",W)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(E=E+_),M++}V.debug("createdActors",d),V.debug("destroyedActors",p),await CP(h,f,g,!1);for(let F of A)await dHt(h,F.messageModel,F.lineStartY,n);Rt.mirrorActors&&await CP(h,f,g,!0),L.forEach(F=>hi.drawBackgroundRect(h,F)),TP(h,f,g,Rt);for(let F of re.models.boxes)F.height=re.getVerticalPos()-F.y,re.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",hi.drawBox(h,F,Rt);x&&re.bumpVerticalPos(Rt.boxMargin);let N=odt(h,f,g,u),{bounds:k}=re.getBounds();k.startx===void 0&&(k.startx=0),k.starty===void 0&&(k.starty=0),k.stopx===void 0&&(k.stopx=0),k.stopy===void 0&&(k.stopy=0);let I=k.stopy-k.starty;I2,d=o(y=>l?-y:y,"adjustValue");e.from===e.to?h=u:(e.activate&&!f&&(h+=d(Rt.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(e.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(e.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);e.wrap&&e.message&&(e.message=Oe.wrapLabel(e.message,Yt.getMax(m+2*Rt.wrapPadding,Rt.width),O0(Rt)));let g=Oe.calculateTextDimensions(e.message,O0(Rt));return{width:Yt.getMax(e.wrap?0:g.width+2*Rt.wrapPadding,m+2*Rt.wrapPadding,Rt.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:e.message,type:e.type,wrap:e.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),THt=o(async function(e,t,r,n){let i={},a=[],s,l,u;for(let h of e){switch(h.id=Oe.random({length:10}),h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=t.get(h.from?h.from:h.to.actor),p=h6(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Rt.activationWidth/2,g={startx:m,stopx:m+Rt.activationWidth,actor:h.from,enabled:!0};re.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=re.activations.map(p=>p.actor).lastIndexOf(h.from);re.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await bHt(h,t,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=Yt.getMin(s.from,l.startx),s.to=Yt.getMax(s.to,l.startx+l.width),s.width=Yt.getMax(s.width,Math.abs(s.from-s.to))-Rt.labelBoxWidth})):(u=wHt(h,t,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=t.get(h.from),m=t.get(h.to);s.from=Yt.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=Yt.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=Yt.getMax(s.width,Math.abs(s.to-s.from))-Rt.labelBoxWidth}else s.from=Yt.getMin(u.startx,s.from),s.to=Yt.getMax(u.stopx,s.to),s.width=Yt.getMax(s.width,u.width)-Rt.labelBoxWidth}))}return re.activations=[],V.debug("Loop type widths:",i),i},"calculateLoopBounds"),cdt={bounds:re,drawActors:CP,drawActorsPopup:odt,setConf:ldt,draw:gHt}});var hdt={};xr(hdt,{diagram:()=>kHt});var kHt,fdt=R(()=>{"use strict";Vft();Kft();Zft();udt();kHt={parser:Gft,db:xP,renderer:cdt,styles:Qft,init:o(({wrap:e})=>{xP.setWrap(e)},"init")}});var SP,f6,AP=R(()=>{"use strict";SP=function(){var e=o(function(Pt,_t,dt,Y){for(dt=dt||{},Y=Pt.length;Y--;dt[Pt[Y]]=_t);return dt},"o"),t=[1,17],r=[1,18],n=[1,19],i=[1,39],a=[1,40],s=[1,25],l=[1,23],u=[1,24],h=[1,31],f=[1,32],d=[1,33],p=[1,34],m=[1,35],g=[1,36],y=[1,26],v=[1,27],x=[1,28],b=[1,29],w=[1,43],S=[1,30],T=[1,42],E=[1,44],_=[1,41],A=[1,45],L=[1,9],M=[1,8,9],N=[1,56],k=[1,57],I=[1,58],C=[1,59],O=[1,60],D=[1,61],P=[1,62],F=[1,8,9,40],B=[1,74],G=[1,8,9,12,13,22,38,40,43,60,61,62,63,64,65,66,71,73],z=[1,8,9,12,13,17,20,22,38,40,43,47,60,61,62,63,64,65,66,71,73,75,81,96,98,99],W=[13,75,81,96,98,99],Q=[13,65,66,75,81,96,98,99],j=[13,60,61,62,63,64,75,81,96,98,99],at=[1,94],X=[1,111],J=[1,109],Z=[1,103],H=[1,104],q=[1,105],K=[1,106],ot=[1,107],ct=[1,108],ut=[1,110],et=[1,8,9,38,40,43],Mt=[1,8,9,22],it=[1,8,9,79],wt=[1,8,9,22,74,75,79,81,82,83,84,85,86],Ot={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,namespaceIdentifier:37,STRUCT_START:38,classStatements:39,STRUCT_STOP:40,NAMESPACE:41,classIdentifier:42,STYLE_SEPARATOR:43,members:44,CLASS:45,ANNOTATION_START:46,ANNOTATION_END:47,MEMBER:48,SEPARATOR:49,relation:50,NOTE_FOR:51,noteText:52,NOTE:53,direction_tb:54,direction_bt:55,direction_rl:56,direction_lr:57,relationType:58,lineType:59,AGGREGATION:60,EXTENSION:61,COMPOSITION:62,DEPENDENCY:63,LOLLIPOP:64,LINE:65,DOTTED_LINE:66,CALLBACK:67,LINK:68,LINK_TARGET:69,CLICK:70,CALLBACK_NAME:71,CALLBACK_ARGS:72,HREF:73,STYLE:74,ALPHA:75,stylesOpt:76,CSSCLASS:77,style:78,COMMA:79,styleComponent:80,NUM:81,COLON:82,UNIT:83,SPACE:84,BRKT:85,PCT:86,commentToken:87,textToken:88,graphCodeTokens:89,textNoTagsToken:90,TAGSTART:91,TAGEND:92,"==":93,"--":94,DEFAULT:95,MINUS:96,keywords:97,UNICODE_TEXT:98,BQUOTE_STR:99,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",38:"STRUCT_START",40:"STRUCT_STOP",41:"NAMESPACE",43:"STYLE_SEPARATOR",45:"CLASS",46:"ANNOTATION_START",47:"ANNOTATION_END",48:"MEMBER",49:"SEPARATOR",51:"NOTE_FOR",53:"NOTE",54:"direction_tb",55:"direction_bt",56:"direction_rl",57:"direction_lr",60:"AGGREGATION",61:"EXTENSION",62:"COMPOSITION",63:"DEPENDENCY",64:"LOLLIPOP",65:"LINE",66:"DOTTED_LINE",67:"CALLBACK",68:"LINK",69:"LINK_TARGET",70:"CLICK",71:"CALLBACK_NAME",72:"CALLBACK_ARGS",73:"HREF",74:"STYLE",75:"ALPHA",77:"CSSCLASS",79:"COMMA",81:"NUM",82:"COLON",83:"UNIT",84:"SPACE",85:"BRKT",86:"PCT",89:"graphCodeTokens",91:"TAGSTART",92:"TAGEND",93:"==",94:"--",95:"DEFAULT",96:"MINUS",97:"keywords",98:"UNICODE_TEXT",99:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[37,2],[39,1],[39,2],[39,3],[24,1],[24,3],[24,4],[24,6],[42,2],[42,3],[26,4],[44,1],[44,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,1],[31,1],[31,1],[31,1],[50,3],[50,2],[50,2],[50,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[76,1],[76,3],[78,1],[78,2],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[87,1],[87,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[90,1],[90,1],[90,1],[90,1],[16,1],[16,1],[16,1],[16,1],[19,1],[52,1]],performAction:o(function(_t,dt,Y,ft,mt,rt,ht){var nt=rt.length-1;switch(mt){case 8:this.$=rt[nt-1];break;case 9:case 12:case 14:this.$=rt[nt];break;case 10:case 13:this.$=rt[nt-2]+"."+rt[nt];break;case 11:case 15:this.$=rt[nt-1]+rt[nt];break;case 16:case 17:this.$=rt[nt-1]+"~"+rt[nt]+"~";break;case 18:ft.addRelation(rt[nt]);break;case 19:rt[nt-1].title=ft.cleanupLabel(rt[nt]),ft.addRelation(rt[nt-1]);break;case 29:this.$=rt[nt].trim(),ft.setAccTitle(this.$);break;case 30:case 31:this.$=rt[nt].trim(),ft.setAccDescription(this.$);break;case 32:ft.addClassesToNamespace(rt[nt-3],rt[nt-1]);break;case 33:ft.addClassesToNamespace(rt[nt-4],rt[nt-1]);break;case 34:this.$=rt[nt],ft.addNamespace(rt[nt]);break;case 35:this.$=[rt[nt]];break;case 36:this.$=[rt[nt-1]];break;case 37:rt[nt].unshift(rt[nt-2]),this.$=rt[nt];break;case 39:ft.setCssClass(rt[nt-2],rt[nt]);break;case 40:ft.addMembers(rt[nt-3],rt[nt-1]);break;case 41:ft.setCssClass(rt[nt-5],rt[nt-3]),ft.addMembers(rt[nt-5],rt[nt-1]);break;case 42:this.$=rt[nt],ft.addClass(rt[nt]);break;case 43:this.$=rt[nt-1],ft.addClass(rt[nt-1]),ft.setClassLabel(rt[nt-1],rt[nt]);break;case 44:ft.addAnnotation(rt[nt],rt[nt-2]);break;case 45:this.$=[rt[nt]];break;case 46:rt[nt].push(rt[nt-1]),this.$=rt[nt];break;case 47:break;case 48:ft.addMember(rt[nt-1],ft.cleanupLabel(rt[nt]));break;case 49:break;case 50:break;case 51:this.$={id1:rt[nt-2],id2:rt[nt],relation:rt[nt-1],relationTitle1:"none",relationTitle2:"none"};break;case 52:this.$={id1:rt[nt-3],id2:rt[nt],relation:rt[nt-1],relationTitle1:rt[nt-2],relationTitle2:"none"};break;case 53:this.$={id1:rt[nt-3],id2:rt[nt],relation:rt[nt-2],relationTitle1:"none",relationTitle2:rt[nt-1]};break;case 54:this.$={id1:rt[nt-4],id2:rt[nt],relation:rt[nt-2],relationTitle1:rt[nt-3],relationTitle2:rt[nt-1]};break;case 55:ft.addNote(rt[nt],rt[nt-1]);break;case 56:ft.addNote(rt[nt]);break;case 57:ft.setDirection("TB");break;case 58:ft.setDirection("BT");break;case 59:ft.setDirection("RL");break;case 60:ft.setDirection("LR");break;case 61:this.$={type1:rt[nt-2],type2:rt[nt],lineType:rt[nt-1]};break;case 62:this.$={type1:"none",type2:rt[nt],lineType:rt[nt-1]};break;case 63:this.$={type1:rt[nt-1],type2:"none",lineType:rt[nt]};break;case 64:this.$={type1:"none",type2:"none",lineType:rt[nt]};break;case 65:this.$=ft.relationType.AGGREGATION;break;case 66:this.$=ft.relationType.EXTENSION;break;case 67:this.$=ft.relationType.COMPOSITION;break;case 68:this.$=ft.relationType.DEPENDENCY;break;case 69:this.$=ft.relationType.LOLLIPOP;break;case 70:this.$=ft.lineType.LINE;break;case 71:this.$=ft.lineType.DOTTED_LINE;break;case 72:case 78:this.$=rt[nt-2],ft.setClickEvent(rt[nt-1],rt[nt]);break;case 73:case 79:this.$=rt[nt-3],ft.setClickEvent(rt[nt-2],rt[nt-1]),ft.setTooltip(rt[nt-2],rt[nt]);break;case 74:this.$=rt[nt-2],ft.setLink(rt[nt-1],rt[nt]);break;case 75:this.$=rt[nt-3],ft.setLink(rt[nt-2],rt[nt-1],rt[nt]);break;case 76:this.$=rt[nt-3],ft.setLink(rt[nt-2],rt[nt-1]),ft.setTooltip(rt[nt-2],rt[nt]);break;case 77:this.$=rt[nt-4],ft.setLink(rt[nt-3],rt[nt-2],rt[nt]),ft.setTooltip(rt[nt-3],rt[nt-1]);break;case 80:this.$=rt[nt-3],ft.setClickEvent(rt[nt-2],rt[nt-1],rt[nt]);break;case 81:this.$=rt[nt-4],ft.setClickEvent(rt[nt-3],rt[nt-2],rt[nt-1]),ft.setTooltip(rt[nt-3],rt[nt]);break;case 82:this.$=rt[nt-3],ft.setLink(rt[nt-2],rt[nt]);break;case 83:this.$=rt[nt-4],ft.setLink(rt[nt-3],rt[nt-1],rt[nt]);break;case 84:this.$=rt[nt-4],ft.setLink(rt[nt-3],rt[nt-1]),ft.setTooltip(rt[nt-3],rt[nt]);break;case 85:this.$=rt[nt-5],ft.setLink(rt[nt-4],rt[nt-2],rt[nt]),ft.setTooltip(rt[nt-4],rt[nt-1]);break;case 86:this.$=rt[nt-2],ft.setCssStyle(rt[nt-1],rt[nt]);break;case 87:ft.setCssClass(rt[nt-1],rt[nt]);break;case 88:this.$=[rt[nt]];break;case 89:rt[nt-2].push(rt[nt]),this.$=rt[nt-2];break;case 91:this.$=rt[nt-1]+rt[nt];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,18:20,19:38,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:t,34:r,36:n,37:21,41:i,42:22,45:a,46:s,48:l,49:u,51:h,53:f,54:d,55:p,56:m,57:g,67:y,68:v,70:x,74:b,75:w,77:S,81:T,96:E,98:_,99:A},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(L,[2,5],{8:[1,46]}),{8:[1,47]},e(M,[2,18],{22:[1,48]}),e(M,[2,20]),e(M,[2,21]),e(M,[2,22]),e(M,[2,23]),e(M,[2,24]),e(M,[2,25]),e(M,[2,26]),e(M,[2,27]),e(M,[2,28]),{33:[1,49]},{35:[1,50]},e(M,[2,31]),e(M,[2,47],{50:51,58:54,59:55,13:[1,52],22:[1,53],60:N,61:k,62:I,63:C,64:O,65:D,66:P}),{38:[1,63]},e(F,[2,38],{38:[1,65],43:[1,64]}),e(M,[2,49]),e(M,[2,50]),{16:66,75:w,81:T,96:E,98:_},{16:37,18:67,19:38,75:w,81:T,96:E,98:_,99:A},{16:37,18:68,19:38,75:w,81:T,96:E,98:_,99:A},{16:37,18:69,19:38,75:w,81:T,96:E,98:_,99:A},{75:[1,70]},{13:[1,71]},{16:37,18:72,19:38,75:w,81:T,96:E,98:_,99:A},{13:B,52:73},e(M,[2,57]),e(M,[2,58]),e(M,[2,59]),e(M,[2,60]),e(G,[2,12],{16:37,19:38,18:76,17:[1,75],20:[1,77],75:w,81:T,96:E,98:_,99:A}),e(G,[2,14],{20:[1,78]}),{15:79,16:80,75:w,81:T,96:E,98:_},{16:37,18:81,19:38,75:w,81:T,96:E,98:_,99:A},e(z,[2,114]),e(z,[2,115]),e(z,[2,116]),e(z,[2,117]),e([1,8,9,12,13,20,22,38,40,43,60,61,62,63,64,65,66,71,73],[2,118]),e(L,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,18:20,37:21,42:22,16:37,19:38,5:82,32:t,34:r,36:n,41:i,45:a,46:s,48:l,49:u,51:h,53:f,54:d,55:p,56:m,57:g,67:y,68:v,70:x,74:b,75:w,77:S,81:T,96:E,98:_,99:A}),{5:83,10:5,16:37,18:20,19:38,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:t,34:r,36:n,37:21,41:i,42:22,45:a,46:s,48:l,49:u,51:h,53:f,54:d,55:p,56:m,57:g,67:y,68:v,70:x,74:b,75:w,77:S,81:T,96:E,98:_,99:A},e(M,[2,19]),e(M,[2,29]),e(M,[2,30]),{13:[1,85],16:37,18:84,19:38,75:w,81:T,96:E,98:_,99:A},{50:86,58:54,59:55,60:N,61:k,62:I,63:C,64:O,65:D,66:P},e(M,[2,48]),{59:87,65:D,66:P},e(W,[2,64],{58:88,60:N,61:k,62:I,63:C,64:O}),e(Q,[2,65]),e(Q,[2,66]),e(Q,[2,67]),e(Q,[2,68]),e(Q,[2,69]),e(j,[2,70]),e(j,[2,71]),{8:[1,90],24:91,39:89,42:22,45:a},{16:92,75:w,81:T,96:E,98:_},{44:93,48:at},{47:[1,95]},{13:[1,96]},{13:[1,97]},{71:[1,98],73:[1,99]},{22:X,74:J,75:Z,76:100,78:101,80:102,81:H,82:q,83:K,84:ot,85:ct,86:ut},{75:[1,112]},{13:B,52:113},e(M,[2,56]),e(M,[2,119]),{16:37,18:114,19:38,75:w,81:T,96:E,98:_,99:A},e(G,[2,15]),e(G,[2,16]),e(G,[2,17]),{38:[2,34]},{15:116,16:80,17:[1,115],38:[2,9],75:w,81:T,96:E,98:_},e(et,[2,42],{11:117,12:[1,118]}),e(L,[2,7]),{9:[1,119]},e(Mt,[2,51]),{16:37,18:120,19:38,75:w,81:T,96:E,98:_,99:A},{13:[1,122],16:37,18:121,19:38,75:w,81:T,96:E,98:_,99:A},e(W,[2,63],{58:123,60:N,61:k,62:I,63:C,64:O}),e(W,[2,62]),{40:[1,124]},{24:91,39:125,42:22,45:a},{8:[1,126],40:[2,35]},e(F,[2,39],{38:[1,127]}),{40:[1,128]},{40:[2,45],44:129,48:at},{16:37,18:130,19:38,75:w,81:T,96:E,98:_,99:A},e(M,[2,72],{13:[1,131]}),e(M,[2,74],{13:[1,133],69:[1,132]}),e(M,[2,78],{13:[1,134],72:[1,135]}),{13:[1,136]},e(M,[2,86],{79:[1,137]}),e(it,[2,88],{80:138,22:X,74:J,75:Z,81:H,82:q,83:K,84:ot,85:ct,86:ut}),e(wt,[2,90]),e(wt,[2,92]),e(wt,[2,93]),e(wt,[2,94]),e(wt,[2,95]),e(wt,[2,96]),e(wt,[2,97]),e(wt,[2,98]),e(wt,[2,99]),e(wt,[2,100]),e(M,[2,87]),e(M,[2,55]),e(G,[2,13]),{15:139,16:80,75:w,81:T,96:E,98:_},{38:[2,11]},e(et,[2,43]),{13:[1,140]},{1:[2,4]},e(Mt,[2,53]),e(Mt,[2,52]),{16:37,18:141,19:38,75:w,81:T,96:E,98:_,99:A},e(W,[2,61]),e(M,[2,32]),{40:[1,142]},{24:91,39:143,40:[2,36],42:22,45:a},{44:144,48:at},e(F,[2,40]),{40:[2,46]},e(M,[2,44]),e(M,[2,73]),e(M,[2,75]),e(M,[2,76],{69:[1,145]}),e(M,[2,79]),e(M,[2,80],{13:[1,146]}),e(M,[2,82],{13:[1,148],69:[1,147]}),{22:X,74:J,75:Z,78:149,80:102,81:H,82:q,83:K,84:ot,85:ct,86:ut},e(wt,[2,91]),{38:[2,10]},{14:[1,150]},e(Mt,[2,54]),e(M,[2,33]),{40:[2,37]},{40:[1,151]},e(M,[2,77]),e(M,[2,81]),e(M,[2,83]),e(M,[2,84],{69:[1,152]}),e(it,[2,89],{80:138,22:X,74:J,75:Z,81:H,82:q,83:K,84:ot,85:ct,86:ut}),e(et,[2,8]),e(F,[2,41]),e(M,[2,85])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],79:[2,34],116:[2,11],119:[2,4],129:[2,46],139:[2,10],143:[2,37]},parseError:o(function(_t,dt){if(dt.recoverable)this.trace(_t);else{var Y=new Error(_t);throw Y.hash=dt,Y}},"parseError"),parse:o(function(_t){var dt=this,Y=[0],ft=[],mt=[null],rt=[],ht=this.table,nt="",st=0,Tt=0,kt=0,Ct=2,At=1,$t=rt.slice.call(arguments,1),Nt=Object.create(this.lexer),yt={yy:{}};for(var Ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ut)&&(yt.yy[Ut]=this.yy[Ut]);Nt.setInput(_t,yt.yy),yt.yy.lexer=Nt,yt.yy.parser=this,typeof Nt.yylloc>"u"&&(Nt.yylloc={});var zt=Nt.yylloc;rt.push(zt);var ae=Nt.options&&Nt.options.ranges;typeof yt.yy.parseError=="function"?this.parseError=yt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(oe){Y.length=Y.length-2*oe,mt.length=mt.length-oe,rt.length=rt.length-oe}o(ke,"popStack");function Ee(){var oe;return oe=ft.pop()||Nt.lex()||At,typeof oe!="number"&&(oe instanceof Array&&(ft=oe,oe=ft.pop()),oe=dt.symbols_[oe]||oe),oe}o(Ee,"lex");for(var le,Zt,me,Ht,ne,xe,Se={},Ye,fe,ee,pe;;){if(me=Y[Y.length-1],this.defaultActions[me]?Ht=this.defaultActions[me]:((le===null||typeof le>"u")&&(le=Ee()),Ht=ht[me]&&ht[me][le]),typeof Ht>"u"||!Ht.length||!Ht[0]){var Me="";pe=[];for(Ye in ht[me])this.terminals_[Ye]&&Ye>Ct&&pe.push("'"+this.terminals_[Ye]+"'");Nt.showPosition?Me="Parse error on line "+(st+1)+`: +`+Nt.showPosition()+` +Expecting `+pe.join(", ")+", got '"+(this.terminals_[le]||le)+"'":Me="Parse error on line "+(st+1)+": Unexpected "+(le==At?"end of input":"'"+(this.terminals_[le]||le)+"'"),this.parseError(Me,{text:Nt.match,token:this.terminals_[le]||le,line:Nt.yylineno,loc:zt,expected:pe})}if(Ht[0]instanceof Array&&Ht.length>1)throw new Error("Parse Error: multiple actions possible at state: "+me+", token: "+le);switch(Ht[0]){case 1:Y.push(le),mt.push(Nt.yytext),rt.push(Nt.yylloc),Y.push(Ht[1]),le=null,Zt?(le=Zt,Zt=null):(Tt=Nt.yyleng,nt=Nt.yytext,st=Nt.yylineno,zt=Nt.yylloc,kt>0&&kt--);break;case 2:if(fe=this.productions_[Ht[1]][1],Se.$=mt[mt.length-fe],Se._$={first_line:rt[rt.length-(fe||1)].first_line,last_line:rt[rt.length-1].last_line,first_column:rt[rt.length-(fe||1)].first_column,last_column:rt[rt.length-1].last_column},ae&&(Se._$.range=[rt[rt.length-(fe||1)].range[0],rt[rt.length-1].range[1]]),xe=this.performAction.apply(Se,[nt,Tt,st,yt.yy,Ht[1],mt,rt].concat($t)),typeof xe<"u")return xe;fe&&(Y=Y.slice(0,-1*fe*2),mt=mt.slice(0,-1*fe),rt=rt.slice(0,-1*fe)),Y.push(this.productions_[Ht[1]][0]),mt.push(Se.$),rt.push(Se._$),ee=ht[Y[Y.length-2]][Y[Y.length-1]],Y.push(ee);break;case 3:return!0}}return!0},"parse")},St=function(){var Pt={EOF:1,parseError:o(function(dt,Y){if(this.yy.parser)this.yy.parser.parseError(dt,Y);else throw new Error(dt)},"parseError"),setInput:o(function(_t,dt){return this.yy=dt||this.yy||{},this._input=_t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _t=this._input[0];this.yytext+=_t,this.yyleng++,this.offset++,this.match+=_t,this.matched+=_t;var dt=_t.match(/(?:\r\n?|\n).*/g);return dt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_t},"input"),unput:o(function(_t){var dt=_t.length,Y=_t.split(/(?:\r\n?|\n)/g);this._input=_t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-dt),this.offset-=dt;var ft=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Y.length-1&&(this.yylineno-=Y.length-1);var mt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Y?(Y.length===ft.length?this.yylloc.first_column:0)+ft[ft.length-Y.length].length-Y[0].length:this.yylloc.first_column-dt},this.options.ranges&&(this.yylloc.range=[mt[0],mt[0]+this.yyleng-dt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_t){this.unput(this.match.slice(_t))},"less"),pastInput:o(function(){var _t=this.matched.substr(0,this.matched.length-this.match.length);return(_t.length>20?"...":"")+_t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _t=this.match;return _t.length<20&&(_t+=this._input.substr(0,20-_t.length)),(_t.substr(0,20)+(_t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _t=this.pastInput(),dt=new Array(_t.length+1).join("-");return _t+this.upcomingInput()+` +`+dt+"^"},"showPosition"),test_match:o(function(_t,dt){var Y,ft,mt;if(this.options.backtrack_lexer&&(mt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(mt.yylloc.range=this.yylloc.range.slice(0))),ft=_t[0].match(/(?:\r\n?|\n).*/g),ft&&(this.yylineno+=ft.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ft?ft[ft.length-1].length-ft[ft.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_t[0].length},this.yytext+=_t[0],this.match+=_t[0],this.matches=_t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_t[0].length),this.matched+=_t[0],Y=this.performAction.call(this,this.yy,this,dt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Y)return Y;if(this._backtrack){for(var rt in mt)this[rt]=mt[rt];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _t,dt,Y,ft;this._more||(this.yytext="",this.match="");for(var mt=this._currentRules(),rt=0;rtdt[0].length)){if(dt=Y,ft=rt,this.options.backtrack_lexer){if(_t=this.test_match(Y,mt[rt]),_t!==!1)return _t;if(this._backtrack){dt=!1;continue}else return!1}else if(!this.options.flex)break}return dt?(_t=this.test_match(dt,mt[ft]),_t!==!1?_t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var dt=this.next();return dt||this.lex()},"lex"),begin:o(function(dt){this.conditionStack.push(dt)},"begin"),popState:o(function(){var dt=this.conditionStack.length-1;return dt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(dt){return dt=this.conditionStack.length-1-Math.abs(dt||0),dt>=0?this.conditionStack[dt]:"INITIAL"},"topState"),pushState:o(function(dt){this.begin(dt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(dt,Y,ft,mt){var rt=mt;switch(ft){case 0:return 54;case 1:return 55;case 2:return 56;case 3:return 57;case 4:break;case 5:break;case 6:return this.begin("acc_title"),32;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),34;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 71;case 22:this.popState();break;case 23:return 72;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 74;case 28:return this.begin("namespace"),41;break;case 29:return this.popState(),8;break;case 30:break;case 31:return this.begin("namespace-body"),38;break;case 32:return this.popState(),40;break;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),45;break;case 38:return this.popState(),8;break;case 39:break;case 40:return this.popState(),this.popState(),40;break;case 41:return this.begin("class-body"),38;break;case 42:return this.popState(),40;break;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 77;case 49:return 67;case 50:return 68;case 51:return 70;case 52:return 51;case 53:return 53;case 54:return 46;case 55:return 47;case 56:return 73;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 69;case 64:return 69;case 65:return 69;case 66:return 69;case 67:return 61;case 68:return 61;case 69:return 63;case 70:return 63;case 71:return 62;case 72:return 60;case 73:return 64;case 74:return 65;case 75:return 66;case 76:return 22;case 77:return 43;case 78:return 96;case 79:return 17;case 80:return"PLUS";case 81:return 82;case 82:return 79;case 83:return 85;case 84:return 85;case 85:return 86;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 75;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 81;case 93:return 98;case 94:return 84;case 95:return 84;case 96:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return Pt}();Ot.lexer=St;function Vt(){this.yy={}}return o(Vt,"Parser"),Vt.prototype=Ot,Ot.Parser=Vt,new Vt}();SP.parser=SP;f6=SP});var mdt,Wx,gdt=R(()=>{"use strict";Ue();hr();mdt=["#","+","~","-",""],Wx=class{static{o(this,"ClassMember")}constructor(t,r){this.memberType=r,this.visibility="",this.classifier="";let n=Zr(t,pt());this.parseMember(n)}getDisplayDetails(){let t=this.visibility+yh(this.id);this.memberType==="method"&&(t+=`(${yh(this.parameters.trim())})`,this.returnType&&(t+=" : "+yh(this.returnType))),t=t.trim();let r=this.parseClassifier();return{displayText:t,cssStyle:r}}parseMember(t){let r="";if(this.memberType==="method"){let i=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t);if(i){let a=i[1]?i[1].trim():"";if(mdt.includes(a)&&(this.visibility=a),this.id=i[2].trim(),this.parameters=i[3]?i[3].trim():"",r=i[4]?i[4].trim():"",this.returnType=i[5]?i[5].trim():"",r===""){let s=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(s)&&(r=s,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let n=t.length,i=t.substring(0,1),a=t.substring(n-1);mdt.includes(i)&&(this.visibility=i),/[$*]/.exec(a)&&(r=a),this.id=t.substring(this.visibility===""?0:1,r===""?n:n-1)}this.classifier=r}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var m6,LP,Wi,d6,ydt,Zu,_P,Yx,P0,B0,AHt,p6,vdt,_Ht,LHt,DHt,RHt,NHt,MHt,IHt,xdt,OHt,PHt,BHt,DP,FHt,zHt,$Ht,GHt,VHt,UHt,HHt,WHt,bdt,RP,YHt,qHt,XHt,jHt,KHt,QHt,ZHt,Zg,NP=R(()=>{"use strict";ur();ce();Ue();hr();_r();Ci();gdt();m6="classId-",LP=[],Wi=new Map,d6=[],ydt=0,Zu=new Map,_P=0,Yx=[],P0=o(e=>Yt.sanitizeText(e,pt()),"sanitizeText"),B0=o(function(e){let t=Yt.sanitizeText(e,pt()),r="",n=t;if(t.indexOf("~")>0){let i=t.split("~");n=P0(i[0]),r=P0(i[1])}return{className:n,type:r}},"splitClassNameAndType"),AHt=o(function(e,t){let r=Yt.sanitizeText(e,pt());t&&(t=P0(t));let{className:n}=B0(r);Wi.get(n).label=t},"setClassLabel"),p6=o(function(e){let t=Yt.sanitizeText(e,pt()),{className:r,type:n}=B0(t);if(Wi.has(r))return;let i=Yt.sanitizeText(r,pt());Wi.set(i,{id:i,type:n,label:i,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:m6+i+"-"+ydt}),ydt++},"addClass"),vdt=o(function(e){let t=Yt.sanitizeText(e,pt());if(Wi.has(t))return Wi.get(t).domId;throw new Error("Class not found: "+t)},"lookUpDomId"),_Ht=o(function(){LP=[],Wi=new Map,d6=[],Yx=[],Yx.push(bdt),Zu=new Map,_P=0,RP="TB",Ar()},"clear"),LHt=o(function(e){return Wi.get(e)},"getClass"),DHt=o(function(){return Wi},"getClasses"),RHt=o(function(){return LP},"getRelations"),NHt=o(function(){return d6},"getNotes"),MHt=o(function(e){V.debug("Adding relation: "+JSON.stringify(e)),p6(e.id1),p6(e.id2),e.id1=B0(e.id1).className,e.id2=B0(e.id2).className,e.relationTitle1=Yt.sanitizeText(e.relationTitle1.trim(),pt()),e.relationTitle2=Yt.sanitizeText(e.relationTitle2.trim(),pt()),LP.push(e)},"addRelation"),IHt=o(function(e,t){let r=B0(e).className;Wi.get(r).annotations.push(t)},"addAnnotation"),xdt=o(function(e,t){p6(e);let r=B0(e).className,n=Wi.get(r);if(typeof t=="string"){let i=t.trim();i.startsWith("<<")&&i.endsWith(">>")?n.annotations.push(P0(i.substring(2,i.length-2))):i.indexOf(")")>0?n.methods.push(new Wx(i,"method")):i&&n.members.push(new Wx(i,"attribute"))}},"addMember"),OHt=o(function(e,t){Array.isArray(t)&&(t.reverse(),t.forEach(r=>xdt(e,r)))},"addMembers"),PHt=o(function(e,t){let r={id:`note${d6.length}`,class:t,text:e};d6.push(r)},"addNote"),BHt=o(function(e){return e.startsWith(":")&&(e=e.substring(1)),P0(e.trim())},"cleanupLabel"),DP=o(function(e,t){e.split(",").forEach(function(r){let n=r;/\d/.exec(r[0])&&(n=m6+n);let i=Wi.get(n);i&&i.cssClasses.push(t)})},"setCssClass"),FHt=o(function(e,t){e.split(",").forEach(function(r){t!==void 0&&(Wi.get(r).tooltip=P0(t))})},"setTooltip"),zHt=o(function(e,t){return t&&Zu.has(t)?Zu.get(t).classes.get(e).tooltip:Wi.get(e).tooltip},"getTooltip"),$Ht=o(function(e,t,r){let n=pt();e.split(",").forEach(function(i){let a=i;/\d/.exec(i[0])&&(a=m6+a);let s=Wi.get(a);s&&(s.link=Oe.formatUrl(t,n),n.securityLevel==="sandbox"?s.linkTarget="_top":typeof r=="string"?s.linkTarget=P0(r):s.linkTarget="_blank")}),DP(e,"clickable")},"setLink"),GHt=o(function(e,t,r){e.split(",").forEach(function(n){VHt(n,t,r),Wi.get(n).haveCallback=!0}),DP(e,"clickable")},"setClickEvent"),VHt=o(function(e,t,r){let n=Yt.sanitizeText(e,pt());if(pt().securityLevel!=="loose"||t===void 0)return;let a=n;if(Wi.has(a)){let s=vdt(a),l=[];if(typeof r=="string"){l=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let u=0;u")),i.classed("hover",!0)}).on("mouseout",function(){t.transition().duration(500).style("opacity",0),Gt(this).classed("hover",!1)})},"setupToolTips");Yx.push(bdt);RP="TB",YHt=o(()=>RP,"getDirection"),qHt=o(e=>{RP=e},"setDirection"),XHt=o(function(e){Zu.has(e)||(Zu.set(e,{id:e,classes:new Map,children:{},domId:m6+e+"-"+_P}),_P++)},"addNamespace"),jHt=o(function(e){return Zu.get(e)},"getNamespace"),KHt=o(function(){return Zu},"getNamespaces"),QHt=o(function(e,t){if(Zu.has(e))for(let r of t){let{className:n}=B0(r);Wi.get(n).parent=e,Zu.get(e).classes.set(n,Wi.get(n))}},"addClassesToNamespace"),ZHt=o(function(e,t){let r=Wi.get(e);if(!(!t||!r))for(let n of t)n.includes(",")?r.styles.push(...n.split(",")):r.styles.push(n)},"setCssStyle"),Zg={setAccTitle:Mr,getAccTitle:Br,getAccDescription:zr,setAccDescription:Fr,getConfig:o(()=>pt().class,"getConfig"),addClass:p6,bindFunctions:UHt,clear:_Ht,getClass:LHt,getClasses:DHt,getNotes:NHt,addAnnotation:IHt,addNote:PHt,getRelations:RHt,addRelation:MHt,getDirection:YHt,setDirection:qHt,addMember:xdt,addMembers:OHt,cleanupLabel:BHt,lineType:HHt,relationType:WHt,setClickEvent:GHt,setCssClass:DP,setLink:$Ht,getTooltip:zHt,setTooltip:FHt,lookUpDomId:vdt,setDiagramTitle:cn,getDiagramTitle:Jr,setClassLabel:AHt,addNamespace:XHt,addClassesToNamespace:QHt,getNamespace:jHt,getNamespaces:KHt,setCssStyle:ZHt}});var JHt,g6,MP=R(()=>{"use strict";JHt=o(e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,"getStyles"),g6=JHt});var wdt,tWt,eWt,kdt,rWt,Tdt,y6,Edt=R(()=>{"use strict";ur();_r();ce();hr();wdt=0,tWt=o(function(e,t,r,n,i){let a=o(function(b){switch(b){case i.db.relationType.AGGREGATION:return"aggregation";case i.db.relationType.EXTENSION:return"extension";case i.db.relationType.COMPOSITION:return"composition";case i.db.relationType.DEPENDENCY:return"dependency";case i.db.relationType.LOLLIPOP:return"lollipop"}},"getRelationType");t.points=t.points.filter(b=>!Number.isNaN(b.y));let s=t.points,l=ma().x(function(b){return b.x}).y(function(b){return b.y}).curve(Ts),u=e.append("path").attr("d",l(s)).attr("id","edge"+wdt).attr("class","relation"),h="";n.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),r.relation.lineType==1&&u.attr("class","relation dashed-line"),r.relation.lineType==10&&u.attr("class","relation dotted-line"),r.relation.type1!=="none"&&u.attr("marker-start","url("+h+"#"+a(r.relation.type1)+"Start)"),r.relation.type2!=="none"&&u.attr("marker-end","url("+h+"#"+a(r.relation.type2)+"End)");let f,d,p=t.points.length,m=Oe.calcLabelPosition(t.points);f=m.x,d=m.y;let g,y,v,x;if(p%2!==0&&p>1){let b=Oe.calcCardinalityPosition(r.relation.type1!=="none",t.points,t.points[0]),w=Oe.calcCardinalityPosition(r.relation.type2!=="none",t.points,t.points[p-1]);V.debug("cardinality_1_point "+JSON.stringify(b)),V.debug("cardinality_2_point "+JSON.stringify(w)),g=b.x,y=b.y,v=w.x,x=w.y}if(r.title!==void 0){let b=e.append("g").attr("class","classLabel"),w=b.append("text").attr("class","label").attr("x",f).attr("y",d).attr("fill","red").attr("text-anchor","middle").text(r.title);window.label=w;let S=w.node().getBBox();b.insert("rect",":first-child").attr("class","box").attr("x",S.x-n.padding/2).attr("y",S.y-n.padding/2).attr("width",S.width+n.padding).attr("height",S.height+n.padding)}V.info("Rendering relation "+JSON.stringify(r)),r.relationTitle1!==void 0&&r.relationTitle1!=="none"&&e.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",y).attr("fill","black").attr("font-size","6").text(r.relationTitle1),r.relationTitle2!==void 0&&r.relationTitle2!=="none"&&e.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",v).attr("y",x).attr("fill","black").attr("font-size","6").text(r.relationTitle2),wdt++},"drawEdge"),eWt=o(function(e,t,r,n){V.debug("Rendering class ",t,r);let i=t.id,a={id:i,label:t.id,width:0,height:0},s=e.append("g").attr("id",n.db.lookUpDomId(i)).attr("class","classGroup"),l;t.link?l=s.append("svg:a").attr("xlink:href",t.link).attr("target",t.linkTarget).append("text").attr("y",r.textHeight+r.padding).attr("x",0):l=s.append("text").attr("y",r.textHeight+r.padding).attr("x",0);let u=!0;t.annotations.forEach(function(w){let S=l.append("tspan").text("\xAB"+w+"\xBB");u||S.attr("dy",r.textHeight),u=!1});let h=kdt(t),f=l.append("tspan").text(h).attr("class","title");u||f.attr("dy",r.textHeight);let d=l.node().getBBox().height,p,m,g;if(t.members.length>0){p=s.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin/2).attr("y2",r.padding+d+r.dividerMargin/2);let w=s.append("text").attr("x",r.padding).attr("y",d+r.dividerMargin+r.textHeight).attr("fill","white").attr("class","classText");u=!0,t.members.forEach(function(S){Tdt(w,S,u,r),u=!1}),m=w.node().getBBox()}if(t.methods.length>0){g=s.append("line").attr("x1",0).attr("y1",r.padding+d+r.dividerMargin+m.height).attr("y2",r.padding+d+r.dividerMargin+m.height);let w=s.append("text").attr("x",r.padding).attr("y",d+2*r.dividerMargin+m.height+r.textHeight).attr("fill","white").attr("class","classText");u=!0,t.methods.forEach(function(S){Tdt(w,S,u,r),u=!1})}let y=s.node().getBBox();var v=" ";t.cssClasses.length>0&&(v=v+t.cssClasses.join(" "));let b=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",y.width+2*r.padding).attr("height",y.height+r.padding+.5*r.dividerMargin).attr("class",v).node().getBBox().width;return l.node().childNodes.forEach(function(w){w.setAttribute("x",(b-w.getBBox().width)/2)}),t.tooltip&&l.insert("title").text(t.tooltip),p&&p.attr("x2",b),g&&g.attr("x2",b),a.width=b,a.height=y.height+r.padding+.5*r.dividerMargin,a},"drawClass"),kdt=o(function(e){let t=e.id;return e.type&&(t+="<"+yh(e.type)+">"),t},"getClassTitleString"),rWt=o(function(e,t,r,n){V.debug("Rendering note ",t,r);let i=t.id,a={id:i,text:t.text,width:0,height:0},s=e.append("g").attr("id",i).attr("class","classGroup"),l=s.append("text").attr("y",r.textHeight+r.padding).attr("x",0),u=JSON.parse(`"${t.text}"`).split(` +`);u.forEach(function(p){V.debug(`Adding line: ${p}`),l.append("tspan").text(p).attr("class","title").attr("dy",r.textHeight)});let h=s.node().getBBox(),d=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",h.width+2*r.padding).attr("height",h.height+u.length*r.textHeight+r.padding+.5*r.dividerMargin).node().getBBox().width;return l.node().childNodes.forEach(function(p){p.setAttribute("x",(d-p.getBBox().width)/2)}),a.width=d,a.height=h.height+u.length*r.textHeight+r.padding+.5*r.dividerMargin,a},"drawNote"),Tdt=o(function(e,t,r,n){let{displayText:i,cssStyle:a}=t.getDisplayDetails(),s=e.append("tspan").attr("x",n.padding).text(i);a!==""&&s.attr("style",t.cssStyle),r||s.attr("dy",n.textHeight)},"addTspan"),y6={getClassTitleString:kdt,drawClass:eWt,drawEdge:tWt,drawNote:rWt}});var x6,v6,qx,nWt,iWt,Cdt,Sdt=R(()=>{"use strict";ur();Xd();wa();ce();Edt();Jn();Ue();x6={},v6=20,qx=o(function(e){let t=Object.entries(x6).find(r=>r[1].label===e);if(t)return t[0]},"getGraphId"),nWt=o(function(e){e.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),e.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),iWt=o(function(e,t,r,n){let i=pt().class;x6={},V.info("Rendering diagram "+e);let a=pt().securityLevel,s;a==="sandbox"&&(s=Gt("#i"+t));let l=a==="sandbox"?Gt(s.nodes()[0].contentDocument.body):Gt("body"),u=l.select(`[id='${t}']`);nWt(u);let h=new yr({multigraph:!0});h.setGraph({isMultiGraph:!0}),h.setDefaultEdgeLabel(function(){return{}});let f=n.db.getClasses(),d=[...f.keys()];for(let b of d){let w=f.get(b),S=y6.drawClass(u,w,i,n);x6[S.id]=S,h.setNode(S.id,S),V.info("Org height: "+S.height)}n.db.getRelations().forEach(function(b){V.info("tjoho"+qx(b.id1)+qx(b.id2)+JSON.stringify(b)),h.setEdge(qx(b.id1),qx(b.id2),{relation:b},b.title||"DEFAULT")}),n.db.getNotes().forEach(function(b){V.debug(`Adding note: ${JSON.stringify(b)}`);let w=y6.drawNote(u,b,i,n);x6[w.id]=w,h.setNode(w.id,w),b.class&&f.has(b.class)&&h.setEdge(b.id,qx(b.class),{relation:{id1:b.id,id2:b.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),co(h),h.nodes().forEach(function(b){b!==void 0&&h.node(b)!==void 0&&(V.debug("Node "+b+": "+JSON.stringify(h.node(b))),l.select("#"+(n.db.lookUpDomId(b)||b)).attr("transform","translate("+(h.node(b).x-h.node(b).width/2)+","+(h.node(b).y-h.node(b).height/2)+" )"))}),h.edges().forEach(function(b){b!==void 0&&h.edge(b)!==void 0&&(V.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(h.edge(b))),y6.drawEdge(u,h.edge(b),h.edge(b).relation,i,n))});let g=u.node().getBBox(),y=g.width+v6*2,v=g.height+v6*2;Pr(u,v,y,i.useMaxWidth);let x=`${g.x-v6} ${g.y-v6} ${y} ${v}`;V.debug(`viewBox ${x}`),u.attr("viewBox",x)},"draw"),Cdt={draw:iWt}});var Adt={};xr(Adt,{diagram:()=>aWt});var aWt,_dt=R(()=>{"use strict";AP();NP();MP();Sdt();aWt={parser:f6,db:Zg,renderer:Cdt,styles:g6,init:o(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,Zg.clear()},"init")}});var cWt,uWt,hWt,fWt,dWt,pWt,mWt,gWt,yWt,vWt,xWt,b6,IP=R(()=>{"use strict";ce();cWt=o((e,t,r,n)=>{t.forEach(i=>{xWt[i](e,r,n)})},"insertMarkers"),uWt=o((e,t,r)=>{V.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),hWt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),fWt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),dWt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),pWt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),mWt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),gWt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),yWt=o((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),vWt=o((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),xWt={extension:uWt,composition:hWt,aggregation:fWt,dependency:dWt,lollipop:pWt,point:mWt,circle:gWt,cross:yWt,barb:vWt},b6=cWt});function Rdt(e,t){t&&e.attr("style",t)}function bWt(e){let t=Gt(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),n=e.label,i=e.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),Rdt(a,e.labelStyle),a.attr("class",i),Rdt(r,e.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}var wWt,oa,Xx=R(()=>{"use strict";ur();ce();Ue();hr();_r();Nl();o(Rdt,"applyStyle");o(bWt,"addHtmlLabel");wWt=o((e,t,r,n)=>{let i=e||"";if(typeof i=="object"&&(i=i[0]),Tr(pt().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
        "),V.debug("vertexText"+i);let a={isNode:n,label:UL(no(i)),labelStyle:t.replace("fill:","color:")};return bWt(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),oa=wWt});function Hl(e,t,r,n){return e.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}var Li,Nn,w6=R(()=>{"use strict";Xx();Nl();Ue();ur();hr();_r();Li=o(async(e,t,r,n)=>{let i=pt(),a,s=t.useHtmlLabels||Tr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=e.insert("g").attr("class",a).attr("id",t.domId||t.id),u=l.insert("g").attr("class","label").attr("style",t.labelStyle),h;t.labelText===void 0?h="":h=typeof t.labelText=="string"?t.labelText:t.labelText[0];let f=u.node(),d;t.labelType==="markdown"?d=ia(u,Zr(no(h),i),{useHtmlLabels:s,width:t.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(oa(Zr(no(h),i),t.labelStyle,!1,n));let p=d.getBBox(),m=t.padding/2;if(Tr(i.flowchart.htmlLabels)){let g=d.children[0],y=Gt(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(w=>{function S(){if(b.style.display="flex",b.style.flexDirection="column",x){let T=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,_=parseInt(T,10)*5+"px";b.style.minWidth=_,b.style.maxWidth=_}else b.style.width="100%";w(b)}o(S,"setupImage"),setTimeout(()=>{b.complete&&S()}),b.addEventListener("error",S),b.addEventListener("load",S)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),t.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),Nn=o((e,t)=>{let r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds");o(Hl,"insertPolygonShape")});var dr,Wl,Ndt,Mdt,k6,TWt,Idt,Odt,Jg,T6,Pdt,Bdt,Fdt,zdt,$dt=R(()=>{"use strict";ce();s2();wa();dr={},Wl={},Ndt={},Mdt=o(()=>{Wl={},Ndt={},dr={}},"clear"),k6=o((e,t)=>(V.trace("In isDescendant",t," ",e," = ",Wl[t].includes(e)),!!Wl[t].includes(e)),"isDescendant"),TWt=o((e,t)=>(V.info("Descendants of ",t," is ",Wl[t]),V.info("Edge is ",e),e.v===t||e.w===t?!1:Wl[t]?Wl[t].includes(e.v)||k6(e.v,t)||k6(e.w,t)||Wl[t].includes(e.w):(V.debug("Tilt, ",t,",not in descendants"),!1)),"edgeInCluster"),Idt=o((e,t,r,n)=>{V.warn("Copying children of ",e,"root",n,"data",t.node(e),n);let i=t.children(e)||[];e!==n&&i.push(e),V.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)Idt(a,t,r,n);else{let s=t.node(a);V.info("cp ",a," to ",n," with parent ",e),r.setNode(a,s),n!==t.parent(a)&&(V.warn("Setting parent",a,t.parent(a)),r.setParent(a,t.parent(a))),e!==n&&a!==e?(V.debug("Setting parent",a,e),r.setParent(a,e)):(V.info("In copy ",e,"root",n,"data",t.node(e),n),V.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==n,"node!==clusterId",a!==e));let l=t.edges(a);V.debug("Copying Edges",l),l.forEach(u=>{V.info("Edge",u);let h=t.edge(u.v,u.w,u.name);V.info("Edge data",h,n);try{TWt(u,n)?(V.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),V.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):V.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",e)}catch(f){V.error(f)}})}V.debug("Removing node",a),t.removeNode(a)})},"copy"),Odt=o((e,t)=>{let r=t.children(e),n=[...r];for(let i of r)Ndt[i]=e,n=[...n,...Odt(i,t)];return n},"extractDescendants"),Jg=o((e,t)=>{V.trace("Searching",e);let r=t.children(e);if(V.trace("Searching children of id ",e,r),r.length<1)return V.trace("This is a valid node",e),e;for(let n of r){let i=Jg(n,t);if(i)return V.trace("Found replacement for",e," => ",i),i}},"findNonClusterChild"),T6=o(e=>!dr[e]||!dr[e].externalConnections?e:dr[e]?dr[e].id:e,"getAnchorId"),Pdt=o((e,t)=>{if(!e||t>10){V.debug("Opting out, no graph ");return}else V.debug("Opting in, graph ");e.nodes().forEach(function(r){e.children(r).length>0&&(V.warn("Cluster identified",r," Replacement id in edges: ",Jg(r,e)),Wl[r]=Odt(r,e),dr[r]={id:Jg(r,e),clusterData:e.node(r)})}),e.nodes().forEach(function(r){let n=e.children(r),i=e.edges();n.length>0?(V.debug("Cluster identified",r,Wl),i.forEach(a=>{if(a.v!==r&&a.w!==r){let s=k6(a.v,r),l=k6(a.w,r);s^l&&(V.warn("Edge: ",a," leaves cluster ",r),V.warn("Descendants of XXX ",r,": ",Wl[r]),dr[r].externalConnections=!0)}})):V.debug("Not a cluster ",r,Wl)});for(let r of Object.keys(dr)){let n=dr[r].id,i=e.parent(n);i!==r&&dr[i]&&!dr[i].externalConnections&&(dr[r].id=i)}e.edges().forEach(function(r){let n=e.edge(r);V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),V.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(e.edge(r)));let i=r.v,a=r.w;if(V.warn("Fix XXX",dr,"ids:",r.v,r.w,"Translating: ",dr[r.v]," --- ",dr[r.w]),dr[r.v]&&dr[r.w]&&dr[r.v]===dr[r.w]){V.warn("Fixing and trixing link to self - removing XXX",r.v,r.w,r.name),V.warn("Fixing and trixing - removing XXX",r.v,r.w,r.name),i=T6(r.v),a=T6(r.w),e.removeEdge(r.v,r.w,r.name);let s=r.w+"---"+r.v;e.setNode(s,{domId:s,id:s,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});let l=structuredClone(n),u=structuredClone(n);l.label="",l.arrowTypeEnd="none",u.label="",l.fromCluster=r.v,u.toCluster=r.v,e.setEdge(i,s,l,r.name+"-cyclic-special"),e.setEdge(s,a,u,r.name+"-cyclic-special")}else if(dr[r.v]||dr[r.w]){if(V.warn("Fixing and trixing - removing XXX",r.v,r.w,r.name),i=T6(r.v),a=T6(r.w),e.removeEdge(r.v,r.w,r.name),i!==r.v){let s=e.parent(i);dr[s].externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=e.parent(a);dr[s].externalConnections=!0,n.toCluster=r.w}V.warn("Fix Replacing with XXX",i,a,r.name),e.setEdge(i,a,n,r.name)}}),V.warn("Adjusted Graph",Yn(e)),Bdt(e,0),V.trace(dr)},"adjustClustersAndEdges"),Bdt=o((e,t)=>{if(V.warn("extractor - ",t,Yn(e),e.children("D")),t>10){V.error("Bailing out");return}let r=e.nodes(),n=!1;for(let i of r){let a=e.children(i);n=n||a.length>0}if(!n){V.debug("Done, no node has children",e.nodes());return}V.debug("Nodes = ",r,t);for(let i of r)if(V.debug("Extracting node",i,dr,dr[i]&&!dr[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!dr[i])V.debug("Not a cluster",i,t);else if(!dr[i].externalConnections&&e.children(i)&&e.children(i).length>0){V.warn("Cluster without external connections, without a parent and with children",i,t);let s=e.graph().rankdir==="TB"?"LR":"TB";dr[i]?.clusterData?.dir&&(s=dr[i].clusterData.dir,V.warn("Fixing dir",dr[i].clusterData.dir,s));let l=new yr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});V.warn("Old graph before copy",Yn(e)),Idt(i,e,l,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:dr[i].clusterData,labelText:dr[i].labelText,graph:l}),V.warn("New graph after copy node: (",i,")",Yn(l)),V.debug("Old graph after copy",Yn(e))}else V.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!dr[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),V.debug(dr);r=e.nodes(),V.warn("New list of nodes",r);for(let i of r){let a=e.node(i);V.warn(" Now next level",i,a),a.clusterNode&&Bdt(a.graph,t+1)}},"extractor"),Fdt=o((e,t)=>{if(t.length===0)return[];let r=Object.assign(t);return t.forEach(n=>{let i=e.children(n),a=Fdt(e,i);r=[...r,...a]}),r},"sorter"),zdt=o(e=>Fdt(e,e.children()),"sortNodesByHierarchy")});var kWt,Gdt,Vdt=R(()=>{"use strict";kWt=o(e=>{let t=new Set;for(let r of e)switch(r){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(r);break}return t},"expandAndDeduplicateDirections"),Gdt=o((e,t,r)=>{let n=kWt(e),i=2,a=t.height+2*r.padding,s=a/i,l=t.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function EWt(e,t){return e.intersect(t)}var Udt,Hdt=R(()=>{"use strict";o(EWt,"intersectNode");Udt=EWt});function CWt(e,t,r,n){var i=e.x,a=e.y,s=i-n.x,l=a-n.y,u=Math.sqrt(t*t*l*l+r*r*s*s),h=Math.abs(t*r*s/u);n.x{"use strict";o(CWt,"intersectEllipse");E6=CWt});function SWt(e,t,r){return E6(e,t,t,r)}var Wdt,Ydt=R(()=>{"use strict";OP();o(SWt,"intersectCircle");Wdt=SWt});function AWt(e,t,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=t.y-e.y,s=e.x-t.x,u=t.x*e.y-e.x*t.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&qdt(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*e.x+l*e.y+h,d=a*t.x+l*t.y+h,!(f!==0&&d!==0&&qdt(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function qdt(e,t){return e*t>0}var Xdt,jdt=R(()=>{"use strict";o(AWt,"intersectLine");o(qdt,"sameSign");Xdt=AWt});function _Wt(e,t,r){var n=e.x,i=e.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));for(var u=n-e.width/2-s,h=i-e.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),w=y.x-r.x,S=y.y-r.y,T=Math.sqrt(w*w+S*S);return b{"use strict";jdt();Kdt=_Wt;o(_Wt,"intersectPolygon")});var LWt,F0,PP=R(()=>{"use strict";LWt=o((e,t)=>{var r=e.x,n=e.y,i=t.x-r,a=t.y-n,s=e.width/2,l=e.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),F0=LWt});var Mn,BP=R(()=>{"use strict";Hdt();Ydt();OP();Qdt();PP();Mn={node:Udt,circle:Wdt,ellipse:E6,polygon:Kdt,rect:F0}});var DWt,Zdt,Jdt=R(()=>{"use strict";w6();ce();Ue();BP();DWt=o(async(e,t)=>{t.useHtmlLabels||pt().flowchart.htmlLabels||(t.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await Li(e,t,"node "+t.classes,!0);V.info("Classes = ",t.classes);let s=n.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+t.padding).attr("height",i.height+t.padding),Nn(t,s),t.intersect=function(l){return Mn.rect(t,l)},n},"note"),Zdt=DWt});function FP(e,t,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");t.includes("t")?(V.debug("add top border"),a(r)):s(r),t.includes("r")?(V.debug("add right border"),a(n)):s(n),t.includes("b")?(V.debug("add bottom border"),a(r)):s(r),t.includes("l")?(V.debug("add left border"),a(n)):s(n),e.attr("stroke-dasharray",i.join(" "))}var t0t,xo,e0t,RWt,NWt,MWt,IWt,OWt,PWt,BWt,FWt,zWt,$Wt,GWt,VWt,UWt,HWt,WWt,YWt,qWt,XWt,jWt,r0t,KWt,QWt,n0t,t1,jx,i0t,a0t,Kx,zP=R(()=>{"use strict";ur();Ue();hr();ce();Vdt();Xx();BP();Jdt();w6();t0t=o(e=>e?" "+e:"","formatClass"),xo=o((e,t)=>`${t||"node default"}${t0t(e.classes)} ${t0t(e.class)}`,"getClassesFromNode"),e0t=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];V.info("Question main (Circle)");let u=Hl(r,s,s,l);return u.attr("style",t.style),Nn(t,u),t.intersect=function(h){return V.warn("Intersect called"),Mn.polygon(t,l,h)},r},"question"),RWt=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return Mn.circle(t,14,s)},r},"choice"),NWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=4,a=n.height+t.padding,s=a/i,l=n.width+2*s+t.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Hl(r,l,a,u);return h.attr("style",t.style),Nn(t,h),t.intersect=function(f){return Mn.polygon(t,u,f)},r},"hexagon"),MWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,void 0,!0),i=2,a=n.height+2*t.padding,s=a/i,l=n.width+2*s+t.padding,u=Gdt(t.directions,n,t),h=Hl(r,l,a,u);return h.attr("style",t.style),Nn(t,h),t.intersect=function(f){return Mn.polygon(t,u,f)},r},"block_arrow"),IWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Hl(r,i,a,s).attr("style",t.style),t.width=i+a,t.height=a,t.intersect=function(u){return Mn.polygon(t,s,u)},r},"rect_left_inv_arrow"),OWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"lean_right"),PWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"lean_left"),BWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"trapezoid"),FWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"inv_trapezoid"),zWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"rect_right_inv_arrow"),$Wt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+t.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return Nn(t,h),t.intersect=function(f){let d=Mn.rect(t,f),p=d.x-t.x;if(a!=0&&(Math.abs(p)t.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-t.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),GWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(e,t,"node "+t.classes+" "+t.class,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,u=t.positioned?-s/2:-n.width/2-i,h=t.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),t.props){let f=new Set(Object.keys(t.props));t.props.borders&&(FP(a,t.props.borders,s,l),f.delete("borders")),f.forEach(d=>{V.warn(`Unknown node property ${d}`)})}return Nn(t,a),t.intersect=function(f){return Mn.rect(t,f)},r},"rect"),VWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(e,t,"node "+t.classes,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,u=t.positioned?-s/2:-n.width/2-i,h=t.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),t.props){let f=new Set(Object.keys(t.props));t.props.borders&&(FP(a,t.props.borders,s,l),f.delete("borders")),f.forEach(d=>{V.warn(`Unknown node property ${d}`)})}return Nn(t,a),t.intersect=function(f){return Mn.rect(t,f)},r},"composite"),UWt=o(async(e,t)=>{let{shapeSvg:r}=await Li(e,t,"label",!0);V.trace("Classes = ",t.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),t.props){let s=new Set(Object.keys(t.props));t.props.borders&&(FP(n,t.props.borders,i,a),s.delete("borders")),s.forEach(l=>{V.warn(`Unknown node property ${l}`)})}return Nn(t,n),t.intersect=function(s){return Mn.rect(t,s)},r},"labelRect");o(FP,"applyNodePropertyBorders");HWt=o((e,t)=>{let r;t.classes?r="node "+t.classes:r="node default";let n=e.insert("g").attr("class",r).attr("id",t.domId||t.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText,u="";typeof l=="object"?u=l[0]:u=l,V.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(oa(u,t.labelStyle,!0,!0)),f={width:0,height:0};if(Tr(pt().flowchart.htmlLabels)){let y=h.children[0],v=Gt(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}V.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(oa(d.join?d.join("
        "):d,t.labelStyle,!0,!0));if(Tr(pt().flowchart.htmlLabels)){let y=m.children[0],v=Gt(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=t.padding/2;return Gt(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),Gt(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.height+t.padding,a=n.width+i/4+t.padding,s=r.insert("rect",":first-child").attr("style",t.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return Nn(t,s),t.intersect=function(l){return Mn.rect(t,l)},r},"stadium"),YWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(e,t,xo(t,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),V.info("Circle main"),Nn(t,a),t.intersect=function(s){return V.info("Circle intersect",t,n.width/2+i,s),Mn.circle(t,n.width/2+i,s)},r},"circle"),qWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Li(e,t,xo(t,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i+a).attr("width",n.width+t.padding+a*2).attr("height",n.height+t.padding+a*2),u.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),V.info("DoubleCircle main"),Nn(t,l),t.intersect=function(h){return V.info("DoubleCircle intersect",t,n.width/2+i+a,h),Mn.circle(t,n.width/2+i+a,h)},r},"doublecircle"),XWt=o(async(e,t)=>{let{shapeSvg:r,bbox:n}=await Li(e,t,xo(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Hl(r,i,a,s);return l.attr("style",t.style),Nn(t,l),t.intersect=function(u){return Mn.polygon(t,s,u)},r},"subroutine"),jWt=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Nn(t,n),t.intersect=function(i){return Mn.circle(t,7,i)},r},"start"),r0t=o((e,t,r)=>{let n=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return Nn(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return Mn.rect(t,l)},n},"forkJoin"),KWt=o((e,t)=>{let r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Nn(t,i),t.intersect=function(a){return Mn.circle(t,7,a)},r},"end"),QWt=o((e,t)=>{let r=t.padding/2,n=4,i=8,a;t.classes?a="node "+t.classes:a="node default";let s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=t.classData.annotations?.[0],y=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(oa(y,t.labelStyle,!0,!0)),x=v.getBBox();if(Tr(pt().flowchart.htmlLabels)){let A=v.children[0],L=Gt(v);x=A.getBoundingClientRect(),L.attr("width",x.width),L.attr("height",x.height)}t.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(pt().flowchart.htmlLabels?b+="<"+t.classData.type+">":b+="<"+t.classData.type+">");let w=p.node().appendChild(oa(b,t.labelStyle,!0,!0));Gt(w).attr("class","classTitle");let S=w.getBBox();if(Tr(pt().flowchart.htmlLabels)){let A=w.children[0],L=Gt(w);S=A.getBoundingClientRect(),L.attr("width",S.width),L.attr("height",S.height)}d+=S.height+n,S.width>f&&(f=S.width);let T=[];t.classData.members.forEach(A=>{let L=A.getDisplayDetails(),M=L.displayText;pt().flowchart.htmlLabels&&(M=M.replace(//g,">"));let N=p.node().appendChild(oa(M,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0)),k=N.getBBox();if(Tr(pt().flowchart.htmlLabels)){let I=N.children[0],C=Gt(N);k=I.getBoundingClientRect(),C.attr("width",k.width),C.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,T.push(N)}),d+=i;let E=[];if(t.classData.methods.forEach(A=>{let L=A.getDisplayDetails(),M=L.displayText;pt().flowchart.htmlLabels&&(M=M.replace(//g,">"));let N=p.node().appendChild(oa(M,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0)),k=N.getBBox();if(Tr(pt().flowchart.htmlLabels)){let I=N.children[0],C=Gt(N);k=I.getBoundingClientRect(),C.attr("width",k.width),C.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,E.push(N)}),d+=i,g){let A=(f-x.width)/2;Gt(v).attr("transform","translate( "+(-1*f/2+A)+", "+-1*d/2+")"),m=x.height+n}let _=(f-S.width)/2;return Gt(w).attr("transform","translate( "+(-1*f/2+_)+", "+(-1*d/2+m)+")"),m+=S.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,T.forEach(A=>{Gt(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,E.forEach(A=>{Gt(A).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let L=A?.getBBox();m+=(L?.height??0)+n}),l.attr("style",t.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+t.padding).attr("height",d+t.padding),Nn(t,l),t.intersect=function(A){return Mn.rect(t,A)},s},"class_box"),n0t={rhombus:e0t,composite:VWt,question:e0t,rect:GWt,labelRect:UWt,rectWithTitle:HWt,choice:RWt,circle:YWt,doublecircle:qWt,stadium:WWt,hexagon:NWt,block_arrow:MWt,rect_left_inv_arrow:IWt,lean_right:OWt,lean_left:PWt,trapezoid:BWt,inv_trapezoid:FWt,rect_right_inv_arrow:zWt,cylinder:$Wt,start:jWt,end:KWt,note:Zdt,subroutine:XWt,fork:r0t,join:r0t,class_box:QWt},t1={},jx=o(async(e,t,r)=>{let n,i;if(t.link){let a;pt().securityLevel==="sandbox"?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),n=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a),i=await n0t[t.shape](n,t,r)}else i=await n0t[t.shape](e,t,r),n=i;return t.tooltip&&i.attr("title",t.tooltip),t.class&&i.attr("class","node default "+t.class),t1[t.id]=n,t.haveCallback&&t1[t.id].attr("class",t1[t.id].attr("class")+" clickable"),n},"insertNode"),i0t=o((e,t)=>{t1[t.id]=e},"setNodeElem"),a0t=o(()=>{t1={}},"clear"),Kx=o(e=>{let t=t1[e.id];V.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let r=8,n=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+n-e.width/2)+", "+(e.y-e.height/2-r)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),n},"positionNode")});var ZWt,JWt,tYt,eYt,rYt,s0t,o0t,l0t,c0t=R(()=>{"use strict";PP();ce();Xx();Nl();ur();Ue();hr();Nd();ZWt=o((e,t)=>{V.info("Creating subgraph rect for ",t.id,t);let r=pt(),n=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=n.insert("rect",":first-child"),a=Tr(r.flowchart.htmlLabels),s=n.insert("g").attr("class","cluster-label"),l=t.labelType==="markdown"?ia(s,t.labelText,{style:t.labelStyle,useHtmlLabels:a},r):s.node().appendChild(oa(t.labelText,t.labelStyle,void 0,!0)),u=l.getBBox();if(Tr(r.flowchart.htmlLabels)){let g=l.children[0],y=Gt(l);u=g.getBoundingClientRect(),y.attr("width",u.width),y.attr("height",u.height)}let h=0*t.padding,f=h/2,d=t.width<=u.width+h?u.width+h:t.width;t.width<=u.width+h?t.diff=(u.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,V.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-d/2).attr("y",t.y-t.height/2-f).attr("width",d).attr("height",t.height+h);let{subGraphTitleTopMargin:p}=io(r);a?s.attr("transform",`translate(${t.x-u.width/2}, ${t.y-t.height/2+p})`):s.attr("transform",`translate(${t.x}, ${t.y-t.height/2+p})`);let m=i.node().getBBox();return t.width=m.width,t.height=m.height,t.intersect=function(g){return F0(t,g)},n},"rect"),JWt=o((e,t)=>{let r=e.insert("g").attr("class","note-cluster").attr("id",t.id),n=r.insert("rect",":first-child"),i=0*t.padding,a=i/2;n.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");let s=n.node().getBBox();return t.width=s.width,t.height=s.height,t.intersect=function(l){return F0(t,l)},r},"noteGroup"),tYt=o((e,t)=>{let r=pt(),n=e.insert("g").attr("class",t.classes).attr("id",t.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),s=n.append("rect"),l=a.node().appendChild(oa(t.labelText,t.labelStyle,void 0,!0)),u=l.getBBox();if(Tr(r.flowchart.htmlLabels)){let g=l.children[0],y=Gt(l);u=g.getBoundingClientRect(),y.attr("width",u.width),y.attr("height",u.height)}u=l.getBBox();let h=0*t.padding,f=h/2,d=t.width<=u.width+t.padding?u.width+t.padding:t.width;t.width<=u.width+t.padding?t.diff=(u.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-d/2-f).attr("y",t.y-t.height/2-f).attr("width",d+h).attr("height",t.height+h),s.attr("class","inner").attr("x",t.x-d/2-f).attr("y",t.y-t.height/2-f+u.height-1).attr("width",d+h).attr("height",t.height+h-u.height-3);let{subGraphTitleTopMargin:p}=io(r);a.attr("transform",`translate(${t.x-u.width/2}, ${t.y-t.height/2-t.padding/3+(Tr(r.flowchart.htmlLabels)?5:3)+p})`);let m=i.node().getBBox();return t.height=m.height,t.intersect=function(g){return F0(t,g)},n},"roundedWithTitle"),eYt=o((e,t)=>{let r=e.insert("g").attr("class",t.classes).attr("id",t.id),n=r.insert("rect",":first-child"),i=0*t.padding,a=i/2;n.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);let s=n.node().getBBox();return t.width=s.width,t.height=s.height,t.diff=-t.padding/2,t.intersect=function(l){return F0(t,l)},r},"divider"),rYt={rect:ZWt,roundedWithTitle:tYt,noteGroup:JWt,divider:eYt},s0t={},o0t=o((e,t)=>{V.trace("Inserting cluster");let r=t.shape||"rect";s0t[t.id]=rYt[r](e,t)},"insertCluster"),l0t=o(()=>{s0t={}},"clear")});var h0t,nYt,u0t,f0t=R(()=>{"use strict";ce();h0t=o((e,t,r,n,i)=>{t.arrowTypeStart&&u0t(e,"start",t.arrowTypeStart,r,n,i),t.arrowTypeEnd&&u0t(e,"end",t.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),nYt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},u0t=o((e,t,r,n,i,a)=>{let s=nYt[r];if(!s){V.warn(`Unknown arrow type: ${r}`);return}let l=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function C6(e,t){pt().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}var S6,Sa,p0t,A6,_6,iYt,aYt,d0t,L6,$P=R(()=>{"use strict";ce();Xx();Nl();ur();Ue();_r();hr();YL();Nd();f0t();S6={},Sa={},p0t=o(()=>{S6={},Sa={}},"clear"),A6=o((e,t)=>{let r=pt(),n=Tr(r.flowchart.htmlLabels),i=t.labelType==="markdown"?ia(e,t.label,{style:t.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):oa(t.label,t.labelStyle),a=e.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=Gt(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),S6[t.id]=a,t.width=l.width,t.height=l.height;let u;if(t.startLabelLeft){let h=oa(t.startLabelLeft,t.labelStyle),f=e.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Sa[t.id]||(Sa[t.id]={}),Sa[t.id].startLeft=f,C6(u,t.startLabelLeft)}if(t.startLabelRight){let h=oa(t.startLabelRight,t.labelStyle),f=e.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Sa[t.id]||(Sa[t.id]={}),Sa[t.id].startRight=f,C6(u,t.startLabelRight)}if(t.endLabelLeft){let h=oa(t.endLabelLeft,t.labelStyle),f=e.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Sa[t.id]||(Sa[t.id]={}),Sa[t.id].endLeft=f,C6(u,t.endLabelLeft)}if(t.endLabelRight){let h=oa(t.endLabelRight,t.labelStyle),f=e.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Sa[t.id]||(Sa[t.id]={}),Sa[t.id].endRight=f,C6(u,t.endLabelRight)}return i},"insertEdgeLabel");o(C6,"setTerminalWidth");_6=o((e,t)=>{V.debug("Moving label abc88 ",e.id,e.label,S6[e.id],t);let r=t.updatedPath?t.updatedPath:t.originalPath,n=pt(),{subGraphTitleTotalMargin:i}=io(n);if(e.label){let a=S6[e.id],s=e.x,l=e.y;if(r){let u=Oe.calcLabelPosition(r);V.debug("Moving label "+e.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),t.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(e.startLabelLeft){let a=Sa[e.id].startLeft,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.startLabelRight){let a=Sa[e.id].startRight,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelLeft){let a=Sa[e.id].endLeft,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelRight){let a=Sa[e.id].endRight,s=e.x,l=e.y;if(r){let u=Oe.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),iYt=o((e,t)=>{let r=e.x,n=e.y,i=Math.abs(t.x-r),a=Math.abs(t.y-n),s=e.width/2,l=e.height/2;return i>=s||a>=l},"outsideNode"),aYt=o((e,t,r)=>{V.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(r)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let n=e.x,i=e.y,a=Math.abs(n-r.x),s=e.width/2,l=r.xMath.abs(n-t.x)*u){let d=r.y{V.debug("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(a=>{if(!iYt(t,a)&&!i){let s=aYt(t,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),L6=o(function(e,t,r,n,i,a,s){let l=r.points;V.debug("abc88 InsertEdge: edge=",r,"e=",t);let u=!1,h=a.node(t.v);var f=a.node(t.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(V.debug("to cluster abc88",n[r.toCluster]),l=d0t(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(V.debug("from cluster abc88",n[r.fromCluster]),l=d0t(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(S=>!Number.isNaN(S.y)),p=Ts;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=xw(r),y=ma().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=e.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(pt().flowchart.arrowMarkerAbsolute||pt().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),h0t(x,r,b,s,i);let w={};return u&&(w.updatedPath=l),w.originalPath=r.points,w},"insertEdge")});var m0t,g0t,y0t=R(()=>{"use strict";Xd();s2();IP();w6();$dt();zP();c0t();$P();ce();Nd();Ue();m0t=o(async(e,t,r,n,i,a)=>{V.info("Graph in recursive render: XXX",Yn(t),i);let s=t.graph().rankdir;V.trace("Dir in recursive render - dir:",s);let l=e.insert("g").attr("class","root");t.nodes()?V.info("Recursive render XXX",t.nodes()):V.info("No nodes found for",t),t.edges().length>0&&V.trace("Recursive edges",t.edge(t.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(g){let y=t.node(g);if(i!==void 0){let v=JSON.parse(JSON.stringify(i.clusterData));V.info("Setting data for cluster XXX (",g,") ",v,i),t.setNode(i.id,v),t.parent(g)||(V.trace("Setting parent",g,i.id),t.setParent(g,i.id,v))}if(V.info("(Insert) Node XXX"+g+": "+JSON.stringify(t.node(g))),y?.clusterNode){V.info("Cluster identified",g,y.width,t.node(g));let{ranksep:v,nodesep:x}=t.graph();y.graph.setGraph({...y.graph.graph(),ranksep:v,nodesep:x});let b=await m0t(d,y.graph,r,n,t.node(g),a),w=b.elem;Nn(y,w),y.diff=b.diff||0,V.info("Node bounds (abc123)",g,y,y.width,y.x,y.y),i0t(w,y),V.warn("Recursive render complete ",w,y)}else t.children(g).length>0?(V.info("Cluster - the non recursive path XXX",g,y.id,y,t),V.info(Jg(y.id,t)),dr[y.id]={id:Jg(y.id,t),node:y}):(V.info("Node - the non recursive path",g,y.id,y),await jx(d,t.node(g),{config:a,dir:s}))})),t.edges().forEach(async function(g){let y=t.edge(g.v,g.w,g.name);V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(g)),V.info("Edge "+g.v+" -> "+g.w+": ",g," ",JSON.stringify(t.edge(g))),V.info("Fix",dr,"ids:",g.v,g.w,"Translating: ",dr[g.v],dr[g.w]),await A6(f,y)}),t.edges().forEach(function(g){V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(g))}),V.info("Graph before layout:",JSON.stringify(Yn(t))),V.info("#############################################"),V.info("### Layout ###"),V.info("#############################################"),V.info(t),co(t),V.info("Graph after layout:",JSON.stringify(Yn(t)));let p=0,{subGraphTitleTotalMargin:m}=io(a);return zdt(t).forEach(function(g){let y=t.node(g);V.info("Position "+g+": "+JSON.stringify(t.node(g))),V.info("Position "+g+": ("+y.x,","+y.y,") width: ",y.width," height: ",y.height),y?.clusterNode?(y.y+=m,Kx(y)):t.children(g).length>0?(y.height+=m,o0t(u,y),dr[y.id].node=y):(y.y+=m/2,Kx(y))}),t.edges().forEach(function(g){let y=t.edge(g);V.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(y),y),y.points.forEach(x=>x.y+=m/2);let v=L6(h,g,y,dr,r,t,n);_6(y,v)}),t.nodes().forEach(function(g){let y=t.node(g);V.info(g,y.type,y.diff),y.type==="group"&&(p=y.diff)}),{elem:l,diff:p}},"recursiveRender"),g0t=o(async(e,t,r,n,i)=>{b6(e,r,n,i),a0t(),p0t(),l0t(),Mdt(),V.warn("Graph at first:",JSON.stringify(Yn(t))),Pdt(t),V.warn("Graph after:",JSON.stringify(Yn(t)));let a=pt();await m0t(e,t,n,i,void 0,a)},"render")});function v0t(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}var VP,GP,sYt,x0t,oYt,lYt,cYt,uYt,b0t,w0t=R(()=>{"use strict";ur();wa();ce();Ue();y0t();_r();_r();Jn();hr();VP=o(e=>Yt.sanitizeText(e,pt()),"sanitizeText"),GP={dividerMargin:10,padding:5,textHeight:10,curve:void 0},sYt=o(function(e,t,r,n){V.info("keys:",[...e.keys()]),V.info(e),e.forEach(function(i){let s={shape:"rect",id:i.id,domId:i.domId,labelText:VP(i.id),labelStyle:"",style:"fill: none; stroke: black",padding:pt().flowchart?.padding??pt().class?.padding};t.setNode(i.id,s),x0t(i.classes,t,r,n,i.id),V.info("setNode",s)})},"addNamespaces"),x0t=o(function(e,t,r,n,i){V.info("keys:",[...e.keys()]),V.info(e),[...e.values()].filter(a=>a.parent===i).forEach(function(a){let s=a.cssClasses.join(" "),l=gm(a.styles),u=a.label??a.id,h=0,d={labelStyle:l.labelStyle,shape:"class_box",labelText:VP(u),classData:a,rx:h,ry:h,class:s,style:l.style,id:a.id,domId:a.domId,tooltip:n.db.getTooltip(a.id,i)||"",haveCallback:a.haveCallback,link:a.link,width:a.type==="group"?500:void 0,type:a.type,padding:pt().flowchart?.padding??pt().class?.padding};t.setNode(a.id,d),i&&t.setParent(a.id,i),V.info("setNode",d)})},"addClasses"),oYt=o(function(e,t,r,n){V.info(e),e.forEach(function(i,a){let s=i,l="",u={labelStyle:"",style:""},h=s.text,f=0,p={labelStyle:u.labelStyle,shape:"note",labelText:VP(h),noteData:s,rx:f,ry:f,class:l,style:u.style,id:s.id,domId:s.id,tooltip:"",type:"note",padding:pt().flowchart?.padding??pt().class?.padding};if(t.setNode(s.id,p),V.info("setNode",p),!s.class||!n.has(s.class))return;let m=r+a,g={id:`edgeNote${m}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:mm(GP.curve,Cu)};t.setEdge(s.id,s.class,g,m)})},"addNotes"),lYt=o(function(e,t){let r=pt().flowchart,n=0;e.forEach(function(i){n++;let a={classes:"relation",pattern:i.relation.lineType==1?"dashed":"solid",id:B5(i.id1,i.id2,{prefix:"id",counter:n}),arrowhead:i.type==="arrow_open"?"none":"normal",startLabelRight:i.relationTitle1==="none"?"":i.relationTitle1,endLabelLeft:i.relationTitle2==="none"?"":i.relationTitle2,arrowTypeStart:v0t(i.relation.type1),arrowTypeEnd:v0t(i.relation.type2),style:"fill:none",labelStyle:"",curve:mm(r?.curve,Cu)};if(V.info(a,i),i.style!==void 0){let s=gm(i.style);a.style=s.style,a.labelStyle=s.labelStyle}i.text=i.title,i.text===void 0?i.style!==void 0&&(a.arrowheadStyle="fill: #333"):(a.arrowheadStyle="fill: #333",a.labelpos="c",pt().flowchart?.htmlLabels??pt().htmlLabels?(a.labelType="html",a.label=''+i.text+""):(a.labelType="text",a.label=i.text.replace(Yt.lineBreakRegex,` +`),i.style===void 0&&(a.style=a.style||"stroke: #333; stroke-width: 1.5px;fill:none"),a.labelStyle=a.labelStyle.replace("color:","fill:"))),t.setEdge(i.id1,i.id2,a,n)})},"addRelations"),cYt=o(function(e){GP={...GP,...e}},"setConf"),uYt=o(async function(e,t,r,n){V.info("Drawing class - ",t);let i=pt().flowchart??pt().class,a=pt().securityLevel;V.info("config:",i);let s=i?.nodeSpacing??50,l=i?.rankSpacing??50,u=new yr({multigraph:!0,compound:!0}).setGraph({rankdir:n.db.getDirection(),nodesep:s,ranksep:l,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getNamespaces(),f=n.db.getClasses(),d=n.db.getRelations(),p=n.db.getNotes();V.info(d),sYt(h,u,t,n),x0t(f,u,t,n),lYt(d,u),oYt(p,u,d.length+1,f);let m;a==="sandbox"&&(m=Gt("#i"+t));let g=a==="sandbox"?Gt(m.nodes()[0].contentDocument.body):Gt("body"),y=g.select(`[id="${t}"]`),v=g.select("#"+t+" g");if(await g0t(v,u,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),Oe.insertTitle(y,"classTitleText",i?.titleTopMargin??5,n.db.getDiagramTitle()),No(u,y,i?.diagramPadding,i?.useMaxWidth),!i?.htmlLabels){let x=a==="sandbox"?m.nodes()[0].contentDocument:document,b=x.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(let w of b){let S=w.getBBox(),T=x.createElementNS("http://www.w3.org/2000/svg","rect");T.setAttribute("rx",0),T.setAttribute("ry",0),T.setAttribute("width",S.width),T.setAttribute("height",S.height),w.insertBefore(T,w.firstChild)}}},"draw");o(v0t,"getArrowMarker");b0t={setConf:cYt,draw:uYt}});var T0t={};xr(T0t,{diagram:()=>hYt});var hYt,k0t=R(()=>{"use strict";AP();NP();MP();w0t();hYt={parser:f6,db:Zg,renderer:b0t,styles:g6,init:o(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute,Zg.clear()},"init")}});var UP,D6,HP=R(()=>{"use strict";UP=function(){var e=o(function(F,B,G,z){for(G=G||{},z=F.length;z--;G[F[z]]=B);return G},"o"),t=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,32],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],w=[1,28],S=[1,29],T=[1,30],E=[1,31],_=[1,34],A=[1,35],L=[1,36],M=[1,37],N=[1,33],k=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],C=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],O={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(B,G,z,W,Q,j,at){var X=j.length-1;switch(Q){case 3:return W.setRootDoc(j[X]),j[X];break;case 4:this.$=[];break;case 5:j[X]!="nl"&&(j[X-1].push(j[X]),this.$=j[X-1]);break;case 6:case 7:this.$=j[X];break;case 8:this.$="nl";break;case 12:this.$=j[X];break;case 13:let q=j[X-1];q.description=W.trimColon(j[X]),this.$=q;break;case 14:this.$={stmt:"relation",state1:j[X-2],state2:j[X]};break;case 15:let K=W.trimColon(j[X]);this.$={stmt:"relation",state1:j[X-3],state2:j[X-1],description:K};break;case 19:this.$={stmt:"state",id:j[X-3],type:"default",description:"",doc:j[X-1]};break;case 20:var J=j[X],Z=j[X-2].trim();if(j[X].match(":")){var H=j[X].split(":");J=H[0],Z=[Z,H[1]]}this.$={stmt:"state",id:J,type:"default",description:Z};break;case 21:this.$={stmt:"state",id:j[X-3],type:"default",description:j[X-5],doc:j[X-1]};break;case 22:this.$={stmt:"state",id:j[X],type:"fork"};break;case 23:this.$={stmt:"state",id:j[X],type:"join"};break;case 24:this.$={stmt:"state",id:j[X],type:"choice"};break;case 25:this.$={stmt:"state",id:W.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:j[X-1].trim(),note:{position:j[X-2].trim(),text:j[X].trim()}};break;case 29:this.$=j[X].trim(),W.setAccTitle(this.$);break;case 30:case 31:this.$=j[X].trim(),W.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:j[X-1].trim(),classes:j[X].trim()};break;case 34:this.$={stmt:"style",id:j[X-1].trim(),styleClass:j[X].trim()};break;case 35:this.$={stmt:"applyClass",id:j[X-1].trim(),styleClass:j[X].trim()};break;case 36:W.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:W.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:W.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:W.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:j[X].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:j[X-2].trim(),classes:[j[X].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:j[X-2].trim(),classes:[j[X].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:t,5:r,6:n},{1:[3]},{3:5,4:t,5:r,6:n},{3:6,4:t,5:r,6:n},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},e(k,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},e(k,[2,7]),e(k,[2,8]),e(k,[2,9]),e(k,[2,10]),e(k,[2,11]),e(k,[2,12],{14:[1,39],15:[1,40]}),e(k,[2,16]),{18:[1,41]},e(k,[2,18],{20:[1,42]}),{23:[1,43]},e(k,[2,22]),e(k,[2,23]),e(k,[2,24]),e(k,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},e(k,[2,28]),{34:[1,48]},{36:[1,49]},e(k,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},e(I,[2,42],{55:[1,54]}),e(I,[2,43],{55:[1,55]}),e(k,[2,36]),e(k,[2,37]),e(k,[2,38]),e(k,[2,39]),e(k,[2,6]),e(k,[2,13]),{13:56,24:d,54:N},e(k,[2,17]),e(C,i,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},e(k,[2,29]),e(k,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},e(k,[2,14],{14:[1,67]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,68],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},e(k,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},e(k,[2,32]),e(k,[2,33]),e(k,[2,34]),e(k,[2,35]),e(I,[2,44]),e(I,[2,45]),e(k,[2,15]),e(k,[2,19]),e(C,i,{7:72}),e(k,[2,26]),e(k,[2,27]),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,73],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:S,42:T,45:E,48:_,49:A,50:L,51:M,54:N},e(k,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:o(function(B,G){if(G.recoverable)this.trace(B);else{var z=new Error(B);throw z.hash=G,z}},"parseError"),parse:o(function(B){var G=this,z=[0],W=[],Q=[null],j=[],at=this.table,X="",J=0,Z=0,H=0,q=2,K=1,ot=j.slice.call(arguments,1),ct=Object.create(this.lexer),ut={yy:{}};for(var et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,et)&&(ut.yy[et]=this.yy[et]);ct.setInput(B,ut.yy),ut.yy.lexer=ct,ut.yy.parser=this,typeof ct.yylloc>"u"&&(ct.yylloc={});var Mt=ct.yylloc;j.push(Mt);var it=ct.options&&ct.options.ranges;typeof ut.yy.parseError=="function"?this.parseError=ut.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function wt(Tt){z.length=z.length-2*Tt,Q.length=Q.length-Tt,j.length=j.length-Tt}o(wt,"popStack");function Ot(){var Tt;return Tt=W.pop()||ct.lex()||K,typeof Tt!="number"&&(Tt instanceof Array&&(W=Tt,Tt=W.pop()),Tt=G.symbols_[Tt]||Tt),Tt}o(Ot,"lex");for(var St,Vt,Pt,_t,dt,Y,ft={},mt,rt,ht,nt;;){if(Pt=z[z.length-1],this.defaultActions[Pt]?_t=this.defaultActions[Pt]:((St===null||typeof St>"u")&&(St=Ot()),_t=at[Pt]&&at[Pt][St]),typeof _t>"u"||!_t.length||!_t[0]){var st="";nt=[];for(mt in at[Pt])this.terminals_[mt]&&mt>q&&nt.push("'"+this.terminals_[mt]+"'");ct.showPosition?st="Parse error on line "+(J+1)+`: +`+ct.showPosition()+` +Expecting `+nt.join(", ")+", got '"+(this.terminals_[St]||St)+"'":st="Parse error on line "+(J+1)+": Unexpected "+(St==K?"end of input":"'"+(this.terminals_[St]||St)+"'"),this.parseError(st,{text:ct.match,token:this.terminals_[St]||St,line:ct.yylineno,loc:Mt,expected:nt})}if(_t[0]instanceof Array&&_t.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Pt+", token: "+St);switch(_t[0]){case 1:z.push(St),Q.push(ct.yytext),j.push(ct.yylloc),z.push(_t[1]),St=null,Vt?(St=Vt,Vt=null):(Z=ct.yyleng,X=ct.yytext,J=ct.yylineno,Mt=ct.yylloc,H>0&&H--);break;case 2:if(rt=this.productions_[_t[1]][1],ft.$=Q[Q.length-rt],ft._$={first_line:j[j.length-(rt||1)].first_line,last_line:j[j.length-1].last_line,first_column:j[j.length-(rt||1)].first_column,last_column:j[j.length-1].last_column},it&&(ft._$.range=[j[j.length-(rt||1)].range[0],j[j.length-1].range[1]]),Y=this.performAction.apply(ft,[X,Z,J,ut.yy,_t[1],Q,j].concat(ot)),typeof Y<"u")return Y;rt&&(z=z.slice(0,-1*rt*2),Q=Q.slice(0,-1*rt),j=j.slice(0,-1*rt)),z.push(this.productions_[_t[1]][0]),Q.push(ft.$),j.push(ft._$),ht=at[z[z.length-2]][z[z.length-1]],z.push(ht);break;case 3:return!0}}return!0},"parse")},D=function(){var F={EOF:1,parseError:o(function(G,z){if(this.yy.parser)this.yy.parser.parseError(G,z);else throw new Error(G)},"parseError"),setInput:o(function(B,G){return this.yy=G||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var G=B.match(/(?:\r\n?|\n).*/g);return G?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},"input"),unput:o(function(B){var G=B.length,z=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-G),this.offset-=G;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===W.length?this.yylloc.first_column:0)+W[W.length-z.length].length-z[0].length:this.yylloc.first_column-G},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-G]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(B){this.unput(this.match.slice(B))},"less"),pastInput:o(function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var B=this.pastInput(),G=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+G+"^"},"showPosition"),test_match:o(function(B,G){var z,W,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),W=B[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(B[0].length),this.matched+=B[0],z=this.performAction.call(this,this.yy,this,G,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var j in Q)this[j]=Q[j];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,G,z,W;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),j=0;jG[0].length)){if(G=z,W=j,this.options.backtrack_lexer){if(B=this.test_match(z,Q[j]),B!==!1)return B;if(this._backtrack){G=!1;continue}else return!1}else if(!this.options.flex)break}return G?(B=this.test_match(G,Q[W]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var G=this.next();return G||this.lex()},"lex"),begin:o(function(G){this.conditionStack.push(G)},"begin"),popState:o(function(){var G=this.conditionStack.length-1;return G>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(G){return G=this.conditionStack.length-1-Math.abs(G||0),G>=0?this.conditionStack[G]:"INITIAL"},"topState"),pushState:o(function(G){this.begin(G)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(G,z,W,Q){var j=Q;switch(W){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),z.yytext=z.yytext.substr(2).trim(),31;break;case 67:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return z.yytext=z.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return F}();O.lexer=D;function P(){this.yy={}}return o(P,"Parser"),P.prototype=O,O.Parser=P,new P}();UP.parser=UP;D6=UP});var S0t,R6,e1,Qx,A0t,_0t,L0t,z0,N6,WP,YP,qP,XP,jP,M6,I6,D0t,R0t,KP,QP,N0t,M0t,r1,mYt,I0t,ZP,gYt,yYt,O0t,P0t,vYt,B0t,xYt,F0t,JP,tB,z0t,O6,$0t,eB,P6=R(()=>{"use strict";S0t="LR",R6="TB",e1="state",Qx="relation",A0t="classDef",_0t="style",L0t="applyClass",z0="default",N6="divider",WP="fill:none",YP="fill: #333",qP="c",XP="text",jP="normal",M6="rect",I6="rectWithTitle",D0t="stateStart",R0t="stateEnd",KP="divider",QP="roundedWithTitle",N0t="note",M0t="noteGroup",r1="statediagram",mYt="state",I0t=`${r1}-${mYt}`,ZP="transition",gYt="note",yYt="note-edge",O0t=`${ZP} ${yYt}`,P0t=`${r1}-${gYt}`,vYt="cluster",B0t=`${r1}-${vYt}`,xYt="cluster-alt",F0t=`${r1}-${xYt}`,JP="parent",tB="note",z0t="state",O6="----",$0t=`${O6}${tB}`,eB=`${O6}${JP}`});function rB(e="",t=0,r="",n=O6){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${z0t}-${e}${i}-${t}`}function B6(e,t,r){if(!t.id||t.id===""||t.id==="")return;t.cssClasses&&(Array.isArray(t.cssCompiledStyles)||(t.cssCompiledStyles=[]),t.cssClasses.split(" ").forEach(i=>{if(r.get(i)){let a=r.get(i);t.cssCompiledStyles=[...t.cssCompiledStyles,...a.styles]}}));let n=e.find(i=>i.id===t.id);n?Object.assign(n,t):e.push(t)}function wYt(e){return e?.classes?.join(" ")??""}function TYt(e){return e?.styles??[]}var F6,Tf,bYt,G0t,n1,V0t,U0t=R(()=>{"use strict";Ue();ce();hr();P6();F6=new Map,Tf=0;o(rB,"stateDomId");bYt=o((e,t,r,n,i,a,s,l)=>{V.trace("items",t),t.forEach(u=>{switch(u.stmt){case e1:n1(e,u,r,n,i,a,s,l);break;case z0:n1(e,u,r,n,i,a,s,l);break;case Qx:{n1(e,u.state1,r,n,i,a,s,l),n1(e,u.state2,r,n,i,a,s,l);let h={id:"edge"+Tf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:WP,labelStyle:"",label:Yt.sanitizeText(u.description,pt()),arrowheadStyle:YP,labelpos:qP,labelType:XP,thickness:jP,classes:ZP,look:s};i.push(h),Tf++}break}})},"setupDoc"),G0t=o((e,t=R6)=>{let r=t;if(e.doc)for(let n of e.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(B6,"insertOrUpdateNode");o(wYt,"getClassesFromDbInfo");o(TYt,"getStylesFromDbInfo");n1=o((e,t,r,n,i,a,s,l)=>{let u=t.id,h=r.get(u),f=wYt(h),d=TYt(h);if(V.info("dataFetcher parsedItem",t,h,d),u!=="root"){let p=M6;t.start===!0?p=D0t:t.start===!1&&(p=R0t),t.type!==z0&&(p=t.type),F6.get(u)||F6.set(u,{id:u,shape:p,description:Yt.sanitizeText(u,pt()),cssClasses:`${f} ${I0t}`,cssStyles:d});let m=F6.get(u);t.description&&(Array.isArray(m.description)?(m.shape=I6,m.description.push(t.description)):m.description?.length>0?(m.shape=I6,m.description===u?m.description=[t.description]:m.description=[m.description,t.description]):(m.shape=M6,m.description=t.description),m.description=Yt.sanitizeTextOrArray(m.description,pt())),m.description?.length===1&&m.shape===I6&&(m.type==="group"?m.shape=QP:m.shape=M6),!m.type&&t.doc&&(V.info("Setting cluster for XCX",u,G0t(t)),m.type="group",m.isGroup=!0,m.dir=G0t(t),m.shape=t.type===N6?KP:QP,m.cssClasses=`${m.cssClasses} ${B0t} ${a?F0t:""}`);let g={labelStyle:"",shape:m.shape,label:m.description,cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,id:u,dir:m.dir,domId:rB(u,Tf),type:m.type,isGroup:m.type==="group",padding:8,rx:10,ry:10,look:s};if(g.shape===KP&&(g.label=""),e&&e.id!=="root"&&(V.trace("Setting node ",u," to be child of its parent ",e.id),g.parentId=e.id),g.centerLabel=!0,t.note){let y={labelStyle:"",shape:N0t,label:t.note.text,cssClasses:P0t,cssStyles:[],cssCompilesStyles:[],id:u+$0t+"-"+Tf,domId:rB(u,Tf,tB),type:m.type,isGroup:m.type==="group",padding:pt().flowchart.padding,look:s,position:t.note.position},v=u+eB,x={labelStyle:"",shape:M0t,label:t.note.text,cssClasses:m.cssClasses,cssStyles:[],id:u+eB,domId:rB(u,Tf,JP),type:"group",isGroup:!0,padding:16,look:s,position:t.note.position};Tf++,x.id=v,y.parentId=v,B6(n,x,l),B6(n,y,l),B6(n,g,l);let b=u,w=y.id;t.note.position==="left of"&&(b=y.id,w=u),i.push({id:b+"-"+w,start:b,end:w,arrowhead:"none",arrowTypeEnd:"",style:WP,labelStyle:"",classes:O0t,arrowheadStyle:YP,labelpos:qP,labelType:XP,thickness:jP,look:s})}else B6(n,g,l)}t.doc&&(V.trace("Adding nodes children "),bYt(t,t.doc,r,n,i,!a,s,l))},"dataFetcher"),V0t=o(()=>{F6.clear(),Tf=0},"reset")});var nB,kYt,EYt,H0t,iB=R(()=>{"use strict";Ue();ce();pL();ZT();TR();_r();P6();nB=o((e,t=R6)=>{if(!e.doc)return t;let r=t;for(let n of e.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),kYt=o(function(e,t){return t.db.extract(t.db.getRootDocV2()),t.db.getClasses()},"getClasses"),EYt=o(async function(e,t,r,n){V.info("REF0:"),V.info("Drawing state diagram (v2)",t);let{securityLevel:i,state:a,layout:s}=pt();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=rw(t,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=t,await QT(l,u);let h=8;Oe.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),JT(u,h,r1,a?.useMaxWidth??!0)},"draw"),H0t={getClasses:kYt,draw:EYt,getDir:nB}});function Q0t(){return new Map}function aB(e=""){let t=e;return e===lB&&(Zx++,t=`${X0t}${Zx}`),t}function sB(e="",t=z0){return e===lB?X0t:t}function IYt(e=""){let t=e;return e===j0t&&(Zx++,t=`${K0t}${Zx}`),t}function OYt(e="",t=z0){return e===j0t?K0t:t}function PYt(e,t,r){let n=aB(e.id.trim()),i=sB(e.id.trim(),e.type),a=aB(t.id.trim()),s=sB(t.id.trim(),t.type);kf(n,i,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),kf(a,s,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),Hs.relations.push({id1:n,id2:a,relationTitle:Yt.sanitizeText(r,pt())})}var lB,X0t,j0t,K0t,W0t,Y0t,CYt,SYt,G6,cB,Z0t,V6,i1,J0t,U6,Hs,Zx,q0t,AYt,_Yt,z6,LYt,DYt,$6,uB,RYt,kf,tpt,$0,ept,NYt,MYt,rpt,oB,BYt,FYt,npt,zYt,hB,$Yt,GYt,VYt,UYt,HYt,WYt,el,H6=R(()=>{"use strict";ce();_r();hr();Ue();Ci();U0t();iB();P6();lB="[*]",X0t="start",j0t=lB,K0t="end",W0t="color",Y0t="fill",CYt="bgFill",SYt=",";o(Q0t,"newClassesList");G6=[],cB=[],Z0t=S0t,V6=[],i1=Q0t(),J0t=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),U6={root:J0t()},Hs=U6.root,Zx=0,q0t=0,AYt={LINE:0,DOTTED_LINE:1},_Yt={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},z6=o(e=>JSON.parse(JSON.stringify(e)),"clone"),LYt=o(e=>{V.info("Setting root doc",e),V6=e},"setRootDoc"),DYt=o(()=>V6,"getRootDoc"),$6=o((e,t,r)=>{if(t.stmt===Qx)$6(e,t.state1,!0),$6(e,t.state2,!1);else if(t.stmt===e1&&(t.id==="[*]"?(t.id=r?e.id+"_start":e.id+"_end",t.start=r):t.id=t.id.trim()),t.doc){let n=[],i=[],a;for(a=0;a0&&i.length>0){let s={stmt:e1,id:z9(),type:"divider",doc:z6(i)};n.push(z6(s)),t.doc=n}t.doc.forEach(s=>$6(t,s,!0))}},"docTranslator"),uB=o(()=>($6({id:"root"},{id:"root",doc:V6},!0),{id:"root",doc:V6}),"getRootDocV2"),RYt=o(e=>{let t;e.doc?t=e.doc:t=e,V.info(t),tpt(!0),V.info("Extract initial document:",t),t.forEach(a=>{switch(V.warn("Statement",a.stmt),a.stmt){case e1:kf(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case Qx:rpt(a.state1,a.state2,a.description);break;case A0t:npt(a.id.trim(),a.classes);break;case _0t:{let s=a.id.trim().split(","),l=a.styleClass.split(",");s.forEach(u=>{let h=$0(u);if(h===void 0){let f=u.trim();kf(f),h=$0(f)}h.styles=l.map(f=>f.replace(/;/g,"")?.trim())})}break;case L0t:hB(a.id.trim(),a.styleClass);break}});let r=ept(),i=pt().look;V0t(),n1(void 0,uB(),r,G6,cB,!0,i,i1),G6.forEach(a=>{if(Array.isArray(a.label)){if(a.description=a.label.slice(1),a.isGroup&&a.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+a.id+"]");a.label=a.label[0]}})},"extract"),kf=o(function(e,t=z0,r=null,n=null,i=null,a=null,s=null,l=null){let u=e?.trim();if(Hs.states.has(u)?(Hs.states.get(u).doc||(Hs.states.get(u).doc=r),Hs.states.get(u).type||(Hs.states.get(u).type=t)):(V.info("Adding state ",u,n),Hs.states.set(u,{id:u,descriptions:[],type:t,doc:r,note:i,classes:[],styles:[],textStyles:[]})),n&&(V.info("Setting state description",u,n),typeof n=="string"&&oB(u,n.trim()),typeof n=="object"&&n.forEach(h=>oB(u,h.trim()))),i){let h=Hs.states.get(u);h.note=i,h.note.text=Yt.sanitizeText(h.note.text,pt())}a&&(V.info("Setting state classes",u,a),(typeof a=="string"?[a]:a).forEach(f=>hB(u,f.trim()))),s&&(V.info("Setting state styles",u,s),(typeof s=="string"?[s]:s).forEach(f=>$Yt(u,f.trim()))),l&&(V.info("Setting state styles",u,s),(typeof l=="string"?[l]:l).forEach(f=>GYt(u,f.trim())))},"addState"),tpt=o(function(e){G6=[],cB=[],U6={root:J0t()},Hs=U6.root,Zx=0,i1=Q0t(),e||Ar()},"clear"),$0=o(function(e){return Hs.states.get(e)},"getState"),ept=o(function(){return Hs.states},"getStates"),NYt=o(function(){V.info("Documents = ",U6)},"logDocuments"),MYt=o(function(){return Hs.relations},"getRelations");o(aB,"startIdIfNeeded");o(sB,"startTypeIfNeeded");o(IYt,"endIdIfNeeded");o(OYt,"endTypeIfNeeded");o(PYt,"addRelationObjs");rpt=o(function(e,t,r){if(typeof e=="object")PYt(e,t,r);else{let n=aB(e.trim()),i=sB(e),a=IYt(t.trim()),s=OYt(t);kf(n,i),kf(a,s),Hs.relations.push({id1:n,id2:a,title:Yt.sanitizeText(r,pt())})}},"addRelation"),oB=o(function(e,t){let r=Hs.states.get(e),n=t.startsWith(":")?t.replace(":","").trim():t;r.descriptions.push(Yt.sanitizeText(n,pt()))},"addDescription"),BYt=o(function(e){return e.substring(0,1)===":"?e.substr(2).trim():e.trim()},"cleanupLabel"),FYt=o(()=>(q0t++,"divider-id-"+q0t),"getDividerId"),npt=o(function(e,t=""){i1.has(e)||i1.set(e,{id:e,styles:[],textStyles:[]});let r=i1.get(e);t?.split(SYt).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(W0t).exec(n)){let s=i.replace(Y0t,CYt).replace(W0t,Y0t);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),zYt=o(function(){return i1},"getClasses"),hB=o(function(e,t){e.split(",").forEach(function(r){let n=$0(r);if(n===void 0){let i=r.trim();kf(i),n=$0(i)}n.classes.push(t)})},"setCssClass"),$Yt=o(function(e,t){let r=$0(e);r!==void 0&&r.styles.push(t)},"setStyle"),GYt=o(function(e,t){let r=$0(e);r!==void 0&&r.textStyles.push(t)},"setTextStyle"),VYt=o(()=>Z0t,"getDirection"),UYt=o(e=>{Z0t=e},"setDirection"),HYt=o(e=>e&&e[0]===":"?e.substr(1).trim():e.trim(),"trimColon"),WYt=o(()=>{let e=pt();return{nodes:G6,edges:cB,other:{},config:e,direction:nB(uB())}},"getData"),el={getConfig:o(()=>pt().state,"getConfig"),getData:WYt,addState:kf,clear:tpt,getState:$0,getStates:ept,getRelations:MYt,getClasses:zYt,getDirection:VYt,addRelation:rpt,getDividerId:FYt,setDirection:UYt,cleanupLabel:BYt,lineType:AYt,relationType:_Yt,logDocuments:NYt,getRootDoc:DYt,setRootDoc:LYt,getRootDocV2:uB,extract:RYt,trimColon:HYt,getAccTitle:Br,setAccTitle:Mr,getAccDescription:zr,setAccDescription:Fr,addStyleClass:npt,setCssClass:hB,addDescription:oB,setDiagramTitle:cn,getDiagramTitle:Jr}});var YYt,W6,fB=R(()=>{"use strict";YYt=o(e=>` +defs #statediagram-barbEnd { + fill: ${e.transitionColor}; + stroke: ${e.transitionColor}; + } +g.stateGroup text { + fill: ${e.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${e.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${e.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.stateGroup line { + stroke: ${e.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${e.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${e.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${e.noteBorderColor}; + fill: ${e.noteBkgColor}; + + text { + fill: ${e.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${e.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${e.edgeLabelBackground}; + p { + background-color: ${e.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${e.transitionLabelColor||e.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${e.transitionLabelColor||e.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${e.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${e.specialStateColor}; + stroke: ${e.specialStateColor}; +} + +.node .fork-join { + fill: ${e.specialStateColor}; + stroke: ${e.specialStateColor}; +} + +.node circle.state-end { + fill: ${e.innerEndBackground}; + stroke: ${e.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${e.compositeBackground||e.background}; + // stroke: ${e.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${e.stateBkg||e.mainBkg}; + stroke: ${e.stateBorder||e.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${e.mainBkg}; + stroke: ${e.stateBorder||e.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${e.lineColor}; +} + +.statediagram-cluster rect { + fill: ${e.compositeTitleBackground}; + stroke: ${e.stateBorder||e.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${e.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${e.stateBorder||e.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${e.compositeBackground||e.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${e.altBackground?e.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${e.altBackground?e.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${e.noteBkgColor}; + stroke: ${e.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${e.noteBkgColor}; + stroke: ${e.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${e.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${e.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${e.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${e.lineColor}; + stroke: ${e.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,"getStyles"),W6=YYt});var dB,qYt,XYt,ipt,jYt,apt,spt=R(()=>{"use strict";dB={},qYt=o((e,t)=>{dB[e]=t},"set"),XYt=o(e=>dB[e],"get"),ipt=o(()=>Object.keys(dB),"keys"),jYt=o(()=>ipt().length,"size"),apt={get:XYt,set:qYt,keys:ipt,size:jYt}});var KYt,QYt,ZYt,JYt,lpt,tqt,eqt,rqt,nqt,pB,opt,cpt,upt=R(()=>{"use strict";ur();spt();H6();_r();hr();Ue();ce();KYt=o(e=>e.append("circle").attr("class","start-state").attr("r",pt().state.sizeUnit).attr("cx",pt().state.padding+pt().state.sizeUnit).attr("cy",pt().state.padding+pt().state.sizeUnit),"drawStartState"),QYt=o(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",pt().state.textHeight).attr("class","divider").attr("x2",pt().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),ZYt=o((e,t)=>{let r=e.append("text").attr("x",2*pt().state.padding).attr("y",pt().state.textHeight+2*pt().state.padding).attr("font-size",pt().state.fontSize).attr("class","state-title").text(t.id),n=r.node().getBBox();return e.insert("rect",":first-child").attr("x",pt().state.padding).attr("y",pt().state.padding).attr("width",n.width+2*pt().state.padding).attr("height",n.height+2*pt().state.padding).attr("rx",pt().state.radius),r},"drawSimpleState"),JYt=o((e,t)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*pt().state.padding).text(m);g||y.attr("dy",pt().state.textHeight)},"addTspan"),i=e.append("text").attr("x",2*pt().state.padding).attr("y",pt().state.textHeight+1.3*pt().state.padding).attr("font-size",pt().state.fontSize).attr("class","state-title").text(t.descriptions[0]).node().getBBox(),a=i.height,s=e.append("text").attr("x",pt().state.padding).attr("y",a+pt().state.padding*.4+pt().state.dividerMargin+pt().state.textHeight).attr("class","state-description"),l=!0,u=!0;t.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=e.append("line").attr("x1",pt().state.padding).attr("y1",pt().state.padding+a+pt().state.dividerMargin/2).attr("y2",pt().state.padding+a+pt().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*pt().state.padding),e.insert("rect",":first-child").attr("x",pt().state.padding).attr("y",pt().state.padding).attr("width",d+2*pt().state.padding).attr("height",f.height+a+2*pt().state.padding).attr("rx",pt().state.radius),e},"drawDescrState"),lpt=o((e,t,r)=>{let n=pt().state.padding,i=2*pt().state.padding,a=e.node().getBBox(),s=a.width,l=a.x,u=e.append("text").attr("x",0).attr("y",pt().state.titleShift).attr("font-size",pt().state.fontSize).attr("class","state-title").text(t.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=e.node().getBBox();t.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-pt().state.textHeight;return e.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+pt().state.textHeight+pt().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),e.insert("rect",":first-child").attr("x",p).attr("y",pt().state.titleShift-pt().state.textHeight-pt().state.padding).attr("width",d).attr("height",pt().state.textHeight*3).attr("rx",pt().state.radius),e.insert("rect",":first-child").attr("x",p).attr("y",pt().state.titleShift-pt().state.textHeight-pt().state.padding).attr("width",d).attr("height",m.height+3+2*pt().state.textHeight).attr("rx",pt().state.radius),e},"addTitleAndBox"),tqt=o(e=>(e.append("circle").attr("class","end-state-outer").attr("r",pt().state.sizeUnit+pt().state.miniPadding).attr("cx",pt().state.padding+pt().state.sizeUnit+pt().state.miniPadding).attr("cy",pt().state.padding+pt().state.sizeUnit+pt().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",pt().state.sizeUnit).attr("cx",pt().state.padding+pt().state.sizeUnit+2).attr("cy",pt().state.padding+pt().state.sizeUnit+2)),"drawEndState"),eqt=o((e,t)=>{let r=pt().state.forkWidth,n=pt().state.forkHeight;if(t.parentId){let i=r;r=n,n=i}return e.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",pt().state.padding).attr("y",pt().state.padding)},"drawForkJoinState"),rqt=o((e,t,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=e.replace(/\r\n/g,"
        ");s=s.replace(/\n/g,"
        ");let l=s.split(Yt.lineBreakRegex),u=1.25*pt().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",t+pt().state.noteMargin),d.attr("y",r+i+1.25*pt().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),nqt=o((e,t)=>{t.attr("class","state-note");let r=t.append("rect").attr("x",0).attr("y",pt().state.padding),n=t.append("g"),{textWidth:i,textHeight:a}=rqt(e,0,0,n);return r.attr("height",a+2*pt().state.noteMargin),r.attr("width",i+pt().state.noteMargin*2),r},"drawNote"),pB=o(function(e,t){let r=t.id,n={id:r,label:t.id,width:0,height:0},i=e.append("g").attr("id",r).attr("class","stateGroup");t.type==="start"&&KYt(i),t.type==="end"&&tqt(i),(t.type==="fork"||t.type==="join")&&eqt(i,t),t.type==="note"&&nqt(t.note.text,i),t.type==="divider"&&QYt(i),t.type==="default"&&t.descriptions.length===0&&ZYt(i,t),t.type==="default"&&t.descriptions.length>0&&JYt(i,t);let a=i.node().getBBox();return n.width=a.width+2*pt().state.padding,n.height=a.height+2*pt().state.padding,apt.set(r,n),n},"drawState"),opt=0,cpt=o(function(e,t,r){let n=o(function(u){switch(u){case el.relationType.AGGREGATION:return"aggregation";case el.relationType.EXTENSION:return"extension";case el.relationType.COMPOSITION:return"composition";case el.relationType.DEPENDENCY:return"dependency"}},"getRelationType");t.points=t.points.filter(u=>!Number.isNaN(u.y));let i=t.points,a=ma().x(function(u){return u.x}).y(function(u){return u.y}).curve(Ts),s=e.append("path").attr("d",a(i)).attr("id","edge"+opt).attr("class","transition"),l="";if(pt().state.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),s.attr("marker-end","url("+l+"#"+n(el.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=e.append("g").attr("class","stateLabel"),{x:h,y:f}=Oe.calcLabelPosition(t.points),d=Yt.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let w=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),S=w.node().getBBox();g=Math.max(g,S.width),y=Math.min(y,S.x),V.info(S.x,h,f+p),p===0&&(p=w.node().getBBox().height,V.info("Title height",p,f)),m.push(w)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((w,S)=>w.attr("y",f+S*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-pt().state.padding/2).attr("y",f-v/2-pt().state.padding/2-3.5).attr("width",g+pt().state.padding).attr("height",v+pt().state.padding),V.info(x)}opt++},"drawEdge")});var bo,mB,iqt,aqt,sqt,oqt,hpt,fpt,dpt=R(()=>{"use strict";ur();Xd();wa();ce();hr();upt();Ue();Jn();mB={},iqt=o(function(){},"setConf"),aqt=o(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),sqt=o(function(e,t,r,n){bo=pt().state;let i=pt().securityLevel,a;i==="sandbox"&&(a=Gt("#i"+t));let s=i==="sandbox"?Gt(a.nodes()[0].contentDocument.body):Gt("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;V.debug("Rendering diagram "+e);let u=s.select(`[id='${t}']`);aqt(u);let h=n.db.getRootDoc();hpt(h,u,void 0,!1,s,l,n);let f=bo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Pr(u,m,g,bo.useMaxWidth),u.attr("viewBox",`${d.x-bo.padding} ${d.y-bo.padding} `+p+" "+m)},"draw"),oqt=o(e=>e?e.length*bo.fontSizeFactor:1,"getLabelWidth"),hpt=o((e,t,r,n,i,a,s)=>{let l=new yr({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let T=S.parentElement,E=0,_=0;T&&(T.parentElement&&(E=T.parentElement.getBBox().width),_=parseInt(T.getAttribute("data-x-shift"),10),Number.isNaN(_)&&(_=0)),S.setAttribute("x1",0-_+8),S.setAttribute("x2",E-_-8)})):V.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(V.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),cpt(t,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*bo.padding,x.height=v.height+2*bo.padding,V.debug("Doc rendered",x,l),x},"renderDoc"),fpt={setConf:iqt,draw:sqt}});var ppt={};xr(ppt,{diagram:()=>lqt});var lqt,mpt=R(()=>{"use strict";HP();H6();fB();dpt();lqt={parser:D6,db:el,renderer:fpt,styles:W6,init:o(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,el.clear()},"init")}});var vpt={};xr(vpt,{diagram:()=>fqt});var fqt,xpt=R(()=>{"use strict";HP();H6();fB();iB();fqt={parser:D6,db:el,renderer:H0t,styles:W6,init:o(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,el.clear()},"init")}});var gB,Tpt,kpt=R(()=>{"use strict";gB=function(){var e=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),t=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var w=x.length-1;switch(v){case 1:return x[w-1];case 2:this.$=[];break;case 3:x[w-1].push(x[w]),this.$=x[w-1];break;case 4:case 5:this.$=x[w];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[w].substr(6)),this.$=x[w].substr(6);break;case 9:this.$=x[w].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[w].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[w].substr(8)),this.$=x[w].substr(8);break;case 13:y.addTask(x[w-1],x[w]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},e(t,[2,5]),e(t,[2,6]),e(t,[2,8]),{13:[1,16]},{15:[1,17]},e(t,[2,11]),e(t,[2,12]),{19:[1,18]},e(t,[2,4]),e(t,[2,9]),e(t,[2,10]),e(t,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,w="",S=0,T=0,E=0,_=2,A=1,L=x.slice.call(arguments,1),M=Object.create(this.lexer),N={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(N.yy[k]=this.yy[k]);M.setInput(p,N.yy),N.yy.lexer=M,N.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var I=M.yylloc;x.push(I);var C=M.options&&M.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(H){g.length=g.length-2*H,v.length=v.length-H,x.length=x.length-H}o(O,"popStack");function D(){var H;return H=y.pop()||M.lex()||A,typeof H!="number"&&(H instanceof Array&&(y=H,H=y.pop()),H=m.symbols_[H]||H),H}o(D,"lex");for(var P,F,B,G,z,W,Q={},j,at,X,J;;){if(B=g[g.length-1],this.defaultActions[B]?G=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=D()),G=b[B]&&b[B][P]),typeof G>"u"||!G.length||!G[0]){var Z="";J=[];for(j in b[B])this.terminals_[j]&&j>_&&J.push("'"+this.terminals_[j]+"'");M.showPosition?Z="Parse error on line "+(S+1)+`: +`+M.showPosition()+` +Expecting `+J.join(", ")+", got '"+(this.terminals_[P]||P)+"'":Z="Parse error on line "+(S+1)+": Unexpected "+(P==A?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(Z,{text:M.match,token:this.terminals_[P]||P,line:M.yylineno,loc:I,expected:J})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+B+", token: "+P);switch(G[0]){case 1:g.push(P),v.push(M.yytext),x.push(M.yylloc),g.push(G[1]),P=null,F?(P=F,F=null):(T=M.yyleng,w=M.yytext,S=M.yylineno,I=M.yylloc,E>0&&E--);break;case 2:if(at=this.productions_[G[1]][1],Q.$=v[v.length-at],Q._$={first_line:x[x.length-(at||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(at||1)].first_column,last_column:x[x.length-1].last_column},C&&(Q._$.range=[x[x.length-(at||1)].range[0],x[x.length-1].range[1]]),W=this.performAction.apply(Q,[w,T,S,N.yy,G[1],v,x].concat(L)),typeof W<"u")return W;at&&(g=g.slice(0,-1*at*2),v=v.slice(0,-1*at),x=x.slice(0,-1*at)),g.push(this.productions_[G[1]][0]),v.push(Q.$),x.push(Q._$),X=b[g[g.length-2]][g[g.length-1]],g.push(X);break;case 3:return!0}}return!0},"parse")},h=function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d}();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f}();gB.parser=gB;Tpt=gB});var a1,yB,Jx,tb,gqt,yqt,vqt,xqt,bqt,wqt,Tqt,Ept,kqt,vB,Cpt=R(()=>{"use strict";Ue();Ci();a1="",yB=[],Jx=[],tb=[],gqt=o(function(){yB.length=0,Jx.length=0,a1="",tb.length=0,Ar()},"clear"),yqt=o(function(e){a1=e,yB.push(e)},"addSection"),vqt=o(function(){return yB},"getSections"),xqt=o(function(){let e=Ept(),t=100,r=0;for(;!e&&r{r.people&&e.push(...r.people)}),[...new Set(e)].sort()},"updateActors"),wqt=o(function(e,t){let r=t.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:a1,type:a1,people:a,task:e,score:n};tb.push(s)},"addTask"),Tqt=o(function(e){let t={section:a1,type:a1,description:e,task:e,classes:[]};Jx.push(t)},"addTaskOrg"),Ept=o(function(){let e=o(function(r){return tb[r].processed},"compileTask"),t=!0;for(let[r,n]of tb.entries())e(r),t=t&&n.processed;return t},"compileTasks"),kqt=o(function(){return bqt()},"getActors"),vB={getConfig:o(()=>pt().journey,"getConfig"),clear:gqt,setDiagramTitle:cn,getDiagramTitle:Jr,setAccTitle:Mr,getAccTitle:Br,setAccDescription:Fr,getAccDescription:zr,addSection:yqt,getSections:vqt,getTasks:xqt,addTask:wqt,addTaskOrg:Tqt,getActors:kqt}});var Eqt,Spt,Apt=R(()=>{"use strict";Eqt=o(e=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${e.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${e.textColor} + } + + .legend { + fill: ${e.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${e.textColor} + } + + .face { + ${e.faceColor?`fill: ${e.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${e.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${e.fillType0?`fill: ${e.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${e.fillType0?`fill: ${e.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${e.fillType0?`fill: ${e.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${e.fillType0?`fill: ${e.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${e.fillType0?`fill: ${e.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${e.fillType0?`fill: ${e.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${e.fillType0?`fill: ${e.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${e.fillType0?`fill: ${e.fillType7}`:""}; + } + + .actor-0 { + ${e.actor0?`fill: ${e.actor0}`:""}; + } + .actor-1 { + ${e.actor1?`fill: ${e.actor1}`:""}; + } + .actor-2 { + ${e.actor2?`fill: ${e.actor2}`:""}; + } + .actor-3 { + ${e.actor3?`fill: ${e.actor3}`:""}; + } + .actor-4 { + ${e.actor4?`fill: ${e.actor4}`:""}; + } + .actor-5 { + ${e.actor5?`fill: ${e.actor5}`:""}; + } +`,"getStyles"),Spt=Eqt});var xB,Cqt,Lpt,Dpt,Sqt,Aqt,_pt,_qt,Lqt,Rpt,Dqt,s1,Npt=R(()=>{"use strict";ur();lv();xB=o(function(e,t){return Td(e,t)},"drawRect"),Cqt=o(function(e,t){let n=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=e.append("g");i.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=Cl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(a,"smile");function s(u){let h=Cl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),t.score>3?a(i):t.score<3?s(i):l(i),n},"drawFace"),Lpt=o(function(e,t){let r=e.append("circle");return r.attr("cx",t.cx),r.attr("cy",t.cy),r.attr("class","actor-"+t.pos),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("r",t.r),r.class!==void 0&&r.attr("class",r.class),t.title!==void 0&&r.append("title").text(t.title),r},"drawCircle"),Dpt=o(function(e,t){return bq(e,t)},"drawText"),Sqt=o(function(e,t){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=e.append("polygon");n.attr("points",r(t.x,t.y,50,20,7)),n.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,Dpt(e,t)},"drawLabel"),Aqt=o(function(e,t,r){let n=e.append("g"),i=Sl();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=r.width*t.taskCount+r.diagramMarginX*(t.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+t.num,i.rx=3,i.ry=3,xB(n,i),Rpt(r)(t.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+t.num},r,t.colour)},"drawSection"),_pt=-1,_qt=o(function(e,t,r){let n=t.x+r.width/2,i=e.append("g");_pt++;let a=300+5*30;i.append("line").attr("id","task"+_pt).attr("x1",n).attr("y1",t.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Cqt(i,{cx:n,cy:300+(5-t.score)*30,score:t.score});let s=Sl();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+t.num,s.rx=3,s.ry=3,xB(i,s);let l=t.x+14;t.people.forEach(u=>{let h=t.actors[u].color,f={cx:l,cy:t.y,r:7,fill:h,stroke:"#000",title:u,pos:t.actors[u].position};Lpt(i,f),l+=10}),Rpt(r)(t.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,t.colour)},"drawTask"),Lqt=o(function(e,t){m5(e,t)},"drawBackgroundRect"),Rpt=function(){function e(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(e,"byText");function t(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let i=Ju[n].color,a={cx:20,cy:r,r:7,fill:i,stroke:"#000",pos:Ju[n].position};s1.drawCircle(e,a);let s={x:40,y:r+7,fill:"#666",text:n,textMargin:t.boxTextMargin|5};s1.drawText(e,s),r+=20})}var Rqt,Ju,Y6,G0,Mqt,rl,bB,Mpt,Iqt,wB,Ipt=R(()=>{"use strict";ur();Npt();Ue();Jn();Rqt=o(function(e){Object.keys(e).forEach(function(r){Y6[r]=e[r]})},"setConf"),Ju={};o(Nqt,"drawActorLegend");Y6=pt().journey,G0=Y6.leftMargin,Mqt=o(function(e,t,r,n){let i=pt().journey,a=pt().securityLevel,s;a==="sandbox"&&(s=Gt("#i"+t));let l=a==="sandbox"?Gt(s.nodes()[0].contentDocument.body):Gt("body");rl.init();let u=l.select("#"+t);s1.initGraphics(u);let h=n.db.getTasks(),f=n.db.getDiagramTitle(),d=n.db.getActors();for(let x in Ju)delete Ju[x];let p=0;d.forEach(x=>{Ju[x]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),Nqt(u),rl.insert(0,0,G0,Object.keys(Ju).length*50),Iqt(u,h,0);let m=rl.getBounds();f&&u.append("text").text(f).attr("x",G0).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=m.stopy-m.starty+2*i.diagramMarginY,y=G0+m.stopx+2*i.diagramMarginX;Pr(u,g,y,i.useMaxWidth),u.append("line").attr("x1",G0).attr("y1",i.height*4).attr("x2",y-G0-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let v=f?70:0;u.attr("viewBox",`${m.startx} -25 ${y} ${g+v}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",g+v+25)},"draw"),rl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(e,t,r,n){e[t]===void 0?e[t]=r:e[t]=n(r,e[t])},"updateVal"),updateBounds:o(function(e,t,r,n){let i=pt().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(rl.data,"startx",e-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(rl.data,"starty",t-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(e,t,r,n){let i=Math.min(e,r),a=Math.max(e,r),s=Math.min(t,n),l=Math.max(t,n);this.updateVal(rl.data,"startx",i,Math.min),this.updateVal(rl.data,"starty",s,Math.min),this.updateVal(rl.data,"stopx",a,Math.max),this.updateVal(rl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},bB=Y6.sectionFills,Mpt=Y6.sectionColours,Iqt=o(function(e,t,r){let n=pt().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of t.entries()){if(i!==p.section){u=bB[l%bB.length],f=l%bB.length,h=Mpt[l%Mpt.length];let g=0,y=p.section;for(let x=d;x(Ju[y]&&(g[y]=Ju[y]),g),{});p.x=d*n.taskMargin+d*n.width+G0,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,s1.drawTask(e,p,n),rl.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},"drawTasks"),wB={setConf:Rqt,draw:Mqt}});var Opt={};xr(Opt,{diagram:()=>Oqt});var Oqt,Ppt=R(()=>{"use strict";kpt();Cpt();Apt();Ipt();Oqt={parser:Tpt,db:vB,renderer:wB,styles:Spt,init:o(e=>{wB.setConf(e.journey),vB.clear()},"init")}});var kB,Upt,Hpt=R(()=>{"use strict";kB=function(){var e=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),t=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,w){var S=b.length-1;switch(x){case 1:return b[S-1];case 2:this.$=[];break;case 3:b[S-1].push(b[S]),this.$=b[S-1];break;case 4:case 5:this.$=b[S];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[S].substr(6)),this.$=b[S].substr(6);break;case 9:this.$=b[S].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[S].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[S].substr(8)),this.$=b[S].substr(8);break;case 15:v.addTask(b[S],0,""),this.$=b[S];break;case 16:v.addEvent(b[S].substr(2)),this.$=b[S];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},e(t,[2,7],{1:[2,1]}),e(t,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},e(t,[2,5]),e(t,[2,6]),e(t,[2,8]),{13:[1,19]},{15:[1,20]},e(t,[2,11]),e(t,[2,12]),e(t,[2,13]),e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,4]),e(t,[2,9]),e(t,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],w=this.table,S="",T=0,E=0,_=0,A=2,L=1,M=b.slice.call(arguments,1),N=Object.create(this.lexer),k={yy:{}};for(var I in this.yy)Object.prototype.hasOwnProperty.call(this.yy,I)&&(k.yy[I]=this.yy[I]);N.setInput(m,k.yy),k.yy.lexer=N,k.yy.parser=this,typeof N.yylloc>"u"&&(N.yylloc={});var C=N.yylloc;b.push(C);var O=N.options&&N.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function D(q){y.length=y.length-2*q,x.length=x.length-q,b.length=b.length-q}o(D,"popStack");function P(){var q;return q=v.pop()||N.lex()||L,typeof q!="number"&&(q instanceof Array&&(v=q,q=v.pop()),q=g.symbols_[q]||q),q}o(P,"lex");for(var F,B,G,z,W,Q,j={},at,X,J,Z;;){if(G=y[y.length-1],this.defaultActions[G]?z=this.defaultActions[G]:((F===null||typeof F>"u")&&(F=P()),z=w[G]&&w[G][F]),typeof z>"u"||!z.length||!z[0]){var H="";Z=[];for(at in w[G])this.terminals_[at]&&at>A&&Z.push("'"+this.terminals_[at]+"'");N.showPosition?H="Parse error on line "+(T+1)+`: +`+N.showPosition()+` +Expecting `+Z.join(", ")+", got '"+(this.terminals_[F]||F)+"'":H="Parse error on line "+(T+1)+": Unexpected "+(F==L?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(H,{text:N.match,token:this.terminals_[F]||F,line:N.yylineno,loc:C,expected:Z})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+F);switch(z[0]){case 1:y.push(F),x.push(N.yytext),b.push(N.yylloc),y.push(z[1]),F=null,B?(F=B,B=null):(E=N.yyleng,S=N.yytext,T=N.yylineno,C=N.yylloc,_>0&&_--);break;case 2:if(X=this.productions_[z[1]][1],j.$=x[x.length-X],j._$={first_line:b[b.length-(X||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(X||1)].first_column,last_column:b[b.length-1].last_column},O&&(j._$.range=[b[b.length-(X||1)].range[0],b[b.length-1].range[1]]),Q=this.performAction.apply(j,[S,E,T,k.yy,z[1],x,b].concat(M)),typeof Q<"u")return Q;X&&(y=y.slice(0,-1*X*2),x=x.slice(0,-1*X),b=b.slice(0,-1*X)),y.push(this.productions_[z[1]][0]),x.push(j.$),b.push(j._$),J=w[y[y.length-2]][y[y.length-1]],y.push(J);break;case 3:return!0}}return!0},"parse")},f=function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p}();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d}();kB.parser=kB;Upt=kB});var CB={};xr(CB,{addEvent:()=>Jpt,addSection:()=>jpt,addTask:()=>Zpt,addTaskOrg:()=>tmt,clear:()=>Xpt,default:()=>Hqt,getCommonDb:()=>qpt,getSections:()=>Kpt,getTasks:()=>Qpt});var o1,Ypt,EB,q6,l1,qpt,Xpt,jpt,Kpt,Qpt,Zpt,Jpt,tmt,Wpt,Hqt,emt=R(()=>{"use strict";Ci();o1="",Ypt=0,EB=[],q6=[],l1=[],qpt=o(()=>xy,"getCommonDb"),Xpt=o(function(){EB.length=0,q6.length=0,o1="",l1.length=0,Ar()},"clear"),jpt=o(function(e){o1=e,EB.push(e)},"addSection"),Kpt=o(function(){return EB},"getSections"),Qpt=o(function(){let e=Wpt(),t=100,r=0;for(;!e&&rr.id===Ypt-1).events.push(e)},"addEvent"),tmt=o(function(e){let t={section:o1,type:o1,description:e,task:e,classes:[]};q6.push(t)},"addTaskOrg"),Wpt=o(function(){let e=o(function(r){return l1[r].processed},"compileTask"),t=!0;for(let[r,n]of l1.entries())e(r),t=t&&n.processed;return t},"compileTasks"),Hqt={clear:Xpt,getCommonDb:qpt,addSection:jpt,getSections:Kpt,getTasks:Qpt,addTask:Zpt,addTaskOrg:tmt,addEvent:Jpt}});function amt(e,t){e.each(function(){var r=Gt(this),n=r.text().split(/(\s+|
        )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;ft||i==="
        ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
        "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var Wqt,X6,Yqt,qqt,nmt,Xqt,jqt,rmt,Kqt,Qqt,Zqt,SB,imt,Jqt,tXt,eXt,rXt,Ef,smt=R(()=>{"use strict";ur();Wqt=12,X6=o(function(e,t){let r=e.append("rect");return r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),r.attr("rx",t.rx),r.attr("ry",t.ry),t.class!==void 0&&r.attr("class",t.class),r},"drawRect"),Yqt=o(function(e,t){let n=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=e.append("g");i.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=Cl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(a,"smile");function s(u){let h=Cl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),t.score>3?a(i):t.score<3?s(i):l(i),n},"drawFace"),qqt=o(function(e,t){let r=e.append("circle");return r.attr("cx",t.cx),r.attr("cy",t.cy),r.attr("class","actor-"+t.pos),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("r",t.r),r.class!==void 0&&r.attr("class",r.class),t.title!==void 0&&r.append("title").text(t.title),r},"drawCircle"),nmt=o(function(e,t){let r=t.text.replace(//gi," "),n=e.append("text");n.attr("x",t.x),n.attr("y",t.y),n.attr("class","legend"),n.style("text-anchor",t.anchor),t.class!==void 0&&n.attr("class",t.class);let i=n.append("tspan");return i.attr("x",t.x+t.textMargin*2),i.text(r),n},"drawText"),Xqt=o(function(e,t){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=e.append("polygon");n.attr("points",r(t.x,t.y,50,20,7)),n.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,nmt(e,t)},"drawLabel"),jqt=o(function(e,t,r){let n=e.append("g"),i=SB();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+t.num,i.rx=3,i.ry=3,X6(n,i),imt(r)(t.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+t.num},r,t.colour)},"drawSection"),rmt=-1,Kqt=o(function(e,t,r){let n=t.x+r.width/2,i=e.append("g");rmt++;let a=300+5*30;i.append("line").attr("id","task"+rmt).attr("x1",n).attr("y1",t.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Yqt(i,{cx:n,cy:300+(5-t.score)*30,score:t.score});let s=SB();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+t.num,s.rx=3,s.ry=3,X6(i,s),imt(r)(t.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,t.colour)},"drawTask"),Qqt=o(function(e,t){X6(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),Zqt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),SB=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),imt=function(){function e(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(e,"byText");function t(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";ur();smt();ce();Ue();Jn();nXt=o(function(e,t,r,n){let i=pt(),a=i.leftMargin??50;V.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=Gt("#i"+t));let h=(s==="sandbox"?Gt(l.nodes()[0].contentDocument.body):Gt("body")).select("#"+t);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();V.debug("task",f),Ef.initGraphics(h);let p=n.db.getSections();V.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let w=0,S=!0;p.forEach(function(L){let M={number:w,descr:L,section:w,width:150,padding:20,maxHeight:m},N=Ef.getVirtualNodeHeight(h,M,i);V.debug("sectionHeight before draw",N),m=Math.max(m,N+20)});let T=0,E=0;V.debug("tasks.length",f.length);for(let[L,M]of f.entries()){let N={number:L,descr:M,section:M.section,width:150,padding:20,maxHeight:g},k=Ef.getVirtualNodeHeight(h,N,i);V.debug("taskHeight before draw",k),g=Math.max(g,k+20),T=Math.max(T,M.events.length);let I=0;for(let C of M.events){let O={descr:C,section:M.section,number:M.section,width:150,padding:20,maxHeight:50};I+=Ef.getVirtualNodeHeight(h,O,i)}E=Math.max(E,I)}V.debug("maxSectionHeight before draw",m),V.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(L=>{let M=f.filter(C=>C.section===L),N={number:w,descr:L,section:w,width:200*Math.max(M.length,1)-50,padding:20,maxHeight:m};V.debug("sectionNode",N);let k=h.append("g"),I=Ef.drawNode(k,N,w,i);V.debug("sectionNode output",I),k.attr("transform",`translate(${x}, ${v})`),b+=m+50,M.length>0&&omt(h,M,w,x,b,g,i,T,E,m,!1),x+=200*Math.max(M.length,1),b=v,w++}):(S=!1,omt(h,f,w,x,b,g,i,T,E,m,!0));let _=h.node().getBBox();V.debug("bounds",_),d&&h.append("text").text(d).attr("x",_.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=S?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",_.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),No(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),omt=o(function(e,t,r,n,i,a,s,l,u,h,f){for(let d of t){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};V.debug("taskNode",p);let m=e.append("g").attr("class","taskWrapper"),y=Ef.drawNode(m,p,r,s).height;if(V.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=e.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+iXt(e,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+(f?a:h)+u+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),iXt=o(function(e,t,r,n,i,a){let s=0,l=i;i=i+100;for(let u of t){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};V.debug("eventNode",h);let f=e.append("g").attr("class","eventWrapper"),p=Ef.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),lmt={setConf:o(()=>{},"setConf"),draw:nXt}});var aXt,sXt,umt,hmt=R(()=>{"use strict";ul();aXt=o(e=>{let t="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${aXt(e)} + .section-root rect, .section-root path, .section-root circle { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),umt=sXt});var fmt={};xr(fmt,{diagram:()=>oXt});var oXt,dmt=R(()=>{"use strict";Hpt();emt();cmt();hmt();oXt={db:CB,renderer:lmt,parser:Upt,styles:umt}});var AB,gmt,ymt=R(()=>{"use strict";AB=function(){var e=o(function(S,T,E,_){for(E=E||{},_=S.length;_--;E[S[_]]=T);return E},"o"),t=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(T,E,_,A,L,M,N){var k=M.length-1;switch(L){case 6:case 7:return A;case 8:A.getLogger().trace("Stop NL ");break;case 9:A.getLogger().trace("Stop EOF ");break;case 11:A.getLogger().trace("Stop NL2 ");break;case 12:A.getLogger().trace("Stop EOF2 ");break;case 15:A.getLogger().info("Node: ",M[k].id),A.addNode(M[k-1].length,M[k].id,M[k].descr,M[k].type);break;case 16:A.getLogger().trace("Icon: ",M[k]),A.decorateNode({icon:M[k]});break;case 17:case 21:A.decorateNode({class:M[k]});break;case 18:A.getLogger().trace("SPACELIST");break;case 19:A.getLogger().trace("Node: ",M[k].id),A.addNode(0,M[k].id,M[k].descr,M[k].type);break;case 20:A.decorateNode({icon:M[k]});break;case 25:A.getLogger().trace("node found ..",M[k-2]),this.$={id:M[k-1],descr:M[k-1],type:A.getType(M[k-2],M[k])};break;case 26:this.$={id:M[k],descr:M[k],type:A.nodeType.DEFAULT};break;case 27:A.getLogger().trace("node found ..",M[k-3]),this.$={id:M[k-3],descr:M[k-1],type:A.getType(M[k-2],M[k])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},e(u,[2,3]),{1:[2,2]},e(u,[2,4]),e(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},e(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),e(p,[2,18]),e(p,[2,19]),e(p,[2,20]),e(p,[2,21]),e(p,[2,23]),e(p,[2,24]),e(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},e(m,[2,14],{7:g,11:y}),e(v,[2,8]),e(v,[2,9]),e(v,[2,10]),e(p,[2,15]),e(p,[2,16]),e(p,[2,17]),{20:[1,35]},{21:[1,36]},e(m,[2,13],{7:g,11:y}),e(v,[2,11]),e(v,[2,12]),{21:[1,37]},e(p,[2,25]),e(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var _=new Error(T);throw _.hash=E,_}},"parseError"),parse:o(function(T){var E=this,_=[0],A=[],L=[null],M=[],N=this.table,k="",I=0,C=0,O=0,D=2,P=1,F=M.slice.call(arguments,1),B=Object.create(this.lexer),G={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(G.yy[z]=this.yy[z]);B.setInput(T,G.yy),G.yy.lexer=B,G.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var W=B.yylloc;M.push(W);var Q=B.options&&B.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(wt){_.length=_.length-2*wt,L.length=L.length-wt,M.length=M.length-wt}o(j,"popStack");function at(){var wt;return wt=A.pop()||B.lex()||P,typeof wt!="number"&&(wt instanceof Array&&(A=wt,wt=A.pop()),wt=E.symbols_[wt]||wt),wt}o(at,"lex");for(var X,J,Z,H,q,K,ot={},ct,ut,et,Mt;;){if(Z=_[_.length-1],this.defaultActions[Z]?H=this.defaultActions[Z]:((X===null||typeof X>"u")&&(X=at()),H=N[Z]&&N[Z][X]),typeof H>"u"||!H.length||!H[0]){var it="";Mt=[];for(ct in N[Z])this.terminals_[ct]&&ct>D&&Mt.push("'"+this.terminals_[ct]+"'");B.showPosition?it="Parse error on line "+(I+1)+`: +`+B.showPosition()+` +Expecting `+Mt.join(", ")+", got '"+(this.terminals_[X]||X)+"'":it="Parse error on line "+(I+1)+": Unexpected "+(X==P?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(it,{text:B.match,token:this.terminals_[X]||X,line:B.yylineno,loc:W,expected:Mt})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+X);switch(H[0]){case 1:_.push(X),L.push(B.yytext),M.push(B.yylloc),_.push(H[1]),X=null,J?(X=J,J=null):(C=B.yyleng,k=B.yytext,I=B.yylineno,W=B.yylloc,O>0&&O--);break;case 2:if(ut=this.productions_[H[1]][1],ot.$=L[L.length-ut],ot._$={first_line:M[M.length-(ut||1)].first_line,last_line:M[M.length-1].last_line,first_column:M[M.length-(ut||1)].first_column,last_column:M[M.length-1].last_column},Q&&(ot._$.range=[M[M.length-(ut||1)].range[0],M[M.length-1].range[1]]),K=this.performAction.apply(ot,[k,C,I,G.yy,H[1],L,M].concat(F)),typeof K<"u")return K;ut&&(_=_.slice(0,-1*ut*2),L=L.slice(0,-1*ut),M=M.slice(0,-1*ut)),_.push(this.productions_[H[1]][0]),L.push(ot.$),M.push(ot._$),et=N[_[_.length-2]][_[_.length-1]],_.push(et);break;case 3:return!0}}return!0},"parse")},b=function(){var S={EOF:1,parseError:o(function(E,_){if(this.yy.parser)this.yy.parser.parseError(E,_);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,_=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),_.length-1&&(this.yylineno-=_.length-1);var L=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:_?(_.length===A.length?this.yylloc.first_column:0)+A[A.length-_.length].length-_[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[L[0],L[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var _,A,L;if(this.options.backtrack_lexer&&(L={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(L.yylloc.range=this.yylloc.range.slice(0))),A=T[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],_=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),_)return _;if(this._backtrack){for(var M in L)this[M]=L[M];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,_,A;this._more||(this.yytext="",this.match="");for(var L=this._currentRules(),M=0;ME[0].length)){if(E=_,A=M,this.options.backtrack_lexer){if(T=this.test_match(_,L[M]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,L[A]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,_,A,L){var M=L;switch(A){case 0:return E.getLogger().trace("Found comment",_.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:E.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return E.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:E.getLogger().trace("end icon"),this.popState();break;case 10:return E.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return E.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return E.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return E.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:E.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return E.getLogger().trace("description:",_.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),E.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),E.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),E.getLogger().trace("node end ...",_.yytext),"NODE_DEND";break;case 30:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return E.getLogger().trace("Long description:",_.yytext),20;break;case 36:return E.getLogger().trace("Long description:",_.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return S}();x.lexer=b;function w(){this.yy={}}return o(w,"Parser"),w.prototype=x,x.Parser=w,new w}();AB.parser=AB;gmt=AB});var Yl,vmt,_B,hXt,fXt,dXt,pXt,Yi,mXt,gXt,yXt,vXt,xXt,bXt,wXt,xmt,bmt=R(()=>{"use strict";Ue();hr();ce();hl();Yl=[],vmt=0,_B={},hXt=o(()=>{Yl=[],vmt=0,_B={}},"clear"),fXt=o(function(e){for(let t=Yl.length-1;t>=0;t--)if(Yl[t].levelYl.length>0?Yl[0]:null,"getMindmap"),pXt=o((e,t,r,n)=>{V.info("addNode",e,t,r,n);let i=pt(),a=i.mindmap?.padding??Er.mindmap.padding;switch(n){case Yi.ROUNDED_RECT:case Yi.RECT:case Yi.HEXAGON:a*=2}let s={id:vmt++,nodeId:Zr(t,i),level:e,descr:Zr(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??Er.mindmap.maxNodeWidth,padding:a},l=fXt(e);if(l)l.children.push(s),Yl.push(s);else if(Yl.length===0)Yl.push(s);else throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')},"addNode"),Yi={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},mXt=o((e,t)=>{switch(V.debug("In get type",e,t),e){case"[":return Yi.RECT;case"(":return t===")"?Yi.ROUNDED_RECT:Yi.CLOUD;case"((":return Yi.CIRCLE;case")":return Yi.CLOUD;case"))":return Yi.BANG;case"{{":return Yi.HEXAGON;default:return Yi.DEFAULT}},"getType"),gXt=o((e,t)=>{_B[e]=t},"setElementForId"),yXt=o(e=>{if(!e)return;let t=pt(),r=Yl[Yl.length-1];e.icon&&(r.icon=Zr(e.icon,t)),e.class&&(r.class=Zr(e.class,t))},"decorateNode"),vXt=o(e=>{switch(e){case Yi.DEFAULT:return"no-border";case Yi.RECT:return"rect";case Yi.ROUNDED_RECT:return"rounded-rect";case Yi.CIRCLE:return"circle";case Yi.CLOUD:return"cloud";case Yi.BANG:return"bang";case Yi.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),xXt=o(()=>V,"getLogger"),bXt=o(e=>_B[e],"getElementById"),wXt={clear:hXt,addNode:pXt,getMindmap:dXt,nodeType:Yi,getType:mXt,setElementForId:gXt,decorateNode:yXt,type2Str:vXt,getLogger:xXt,getElementById:bXt},xmt=wXt});function ji(e){"@babel/helpers - typeof";return ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ji(e)}function iF(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wmt(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,s=!1,l;return{s:o(function(){r=r.call(e)},"s"),n:o(function(){var u=r.next();return a=u.done,u},"n"),e:o(function(u){s=!0,l=u},"e"),f:o(function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw l}},"f")}}function XXt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function jXt(e,t){return t={exports:{}},e(t,t.exports),t.exports}function rjt(e){for(var t=e.length;t--&&ejt.test(e.charAt(t)););return t}function ajt(e){return e&&e.slice(0,njt(e)+1).replace(ijt,"")}function ujt(e){var t=ljt.call(e,eb),r=e[eb];try{e[eb]=void 0;var n=!0}catch{}var i=cjt.call(e);return n&&(t?e[eb]=r:delete e[eb]),i}function pjt(e){return djt.call(e)}function vjt(e){return e==null?e===void 0?yjt:gjt:Cmt&&Cmt in Object(e)?hjt(e):mjt(e)}function xjt(e){return e!=null&&typeof e=="object"}function Tjt(e){return typeof e=="symbol"||bjt(e)&&Ygt(e)==wjt}function Ajt(e){if(typeof e=="number")return e;if(Sb(e))return Smt;if(j0(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=j0(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=sjt(e);var r=Ejt.test(e);return r||Cjt.test(e)?Sjt(e.slice(2),r?2:8):kjt.test(e)?Smt:+e}function Rjt(e,t,r){var n,i,a,s,l,u,h=0,f=!1,d=!1,p=!0;if(typeof e!="function")throw new TypeError(_jt);t=Amt(t)||0,j0(r)&&(f=!!r.leading,d="maxWait"in r,a=d?Ljt(Amt(r.maxWait)||0,t):a,p="trailing"in r?!!r.trailing:p);function m(E){var _=n,A=i;return n=i=void 0,h=E,s=e.apply(A,_),s}o(m,"invokeFunc");function g(E){return h=E,l=setTimeout(x,t),f?m(E):s}o(g,"leadingEdge");function y(E){var _=E-u,A=E-h,L=t-_;return d?Djt(L,a-A):L}o(y,"remainingWait");function v(E){var _=E-u,A=E-h;return u===void 0||_>=t||_<0||d&&A>=a}o(v,"shouldInvoke");function x(){var E=LB();if(v(E))return b(E);l=setTimeout(x,y(E))}o(x,"timerExpired");function b(E){return l=void 0,p&&n?m(E):(n=i=void 0,s)}o(b,"trailingEdge");function w(){l!==void 0&&clearTimeout(l),h=0,n=u=i=l=void 0}o(w,"cancel");function S(){return l===void 0?s:b(LB())}o(S,"flush");function T(){var E=LB(),_=v(E);if(n=arguments,i=this,u=E,_){if(l===void 0)return g(u);if(d)return clearTimeout(l),l=setTimeout(x,t),m(u)}return l===void 0&&(l=setTimeout(x,t)),s}return o(T,"debounced"),T.cancel=w,T.flush=S,T}function NC(e,t,r,n,i,a){var s;return ni(e)?s=e:s=k1[e]||k1.euclidean,t===0&&ni(e)?s(i,a):s(t,r,n,i,a)}function kQt(e,t){if(MC(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Sb(e)?!0:TQt.test(e)||!wQt.test(e)||t!=null&&e in Object(t)}function LQt(e){if(!j0(e))return!1;var t=Ygt(e);return t==SQt||t==AQt||t==CQt||t==_Qt}function NQt(e){return!!qmt&&qmt in e}function PQt(e){if(e!=null){try{return OQt.call(e)}catch{}try{return e+""}catch{}}return""}function WQt(e){if(!j0(e)||MQt(e))return!1;var t=DQt(e)?HQt:zQt;return t.test(BQt(e))}function qQt(e,t){return e?.[t]}function jQt(e,t){var r=XQt(e,t);return YQt(r)?r:void 0}function QQt(){this.__data__=xb?xb(null):{},this.size=0}function JQt(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function iZt(e){var t=this.__data__;if(xb){var r=t[e];return r===eZt?void 0:r}return nZt.call(t,e)?t[e]:void 0}function lZt(e){var t=this.__data__;return xb?t[e]!==void 0:oZt.call(t,e)}function hZt(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xb&&t===void 0?uZt:t,this}function A1(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1}function CZt(e,t){var r=this.__data__,n=IC(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function _1(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&e0;){var f=i.shift();t(f),a.add(f.id()),l&&n(i,a,f)}return e}function C1t(e,t,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:cte,t=arguments.length>1?arguments[1]:void 0,r=0;r0?k=C:N=C;while(Math.abs(I)>s&&++O=a?b(M,O):D===0?O:S(M,N,N+h)}o(T,"getTForX");var E=!1;function _(){E=!0,(e!==t||r!==n)&&w()}o(_,"precompute");var A=o(function(N){return E||_(),e===t&&r===n?N:N===0?0:N===1?1:v(T(N),t,n)},"f");A.getControlPoints=function(){return[{x:e,y:t},{x:r,y:n}]};var L="generateBezier("+[e,t,r,n]+")";return A.toString=function(){return L},A}function fgt(e,t,r,n,i){if(n===1||t===r)return r;var a=i(t,r,n);return e==null||((e.roundValue||e.color)&&(a=Math.round(a)),e.min!==void 0&&(a=Math.max(a,e.min)),e.max!==void 0&&(a=Math.min(a,e.max))),a}function dgt(e,t){return e.pfValue!=null||e.value!=null?e.pfValue!=null&&(t==null||t.type.units!=="%")?e.pfValue:e.value:e}function h1(e,t,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=dgt(e,i),l=dgt(t,i);if(be(s)&&be(l))return fgt(a,s,l,r,n);if(kn(s)&&kn(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=hC[m].apply(null,g)):s.easingImpl=hC[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!e.locked()){var w={};ab(x.x,b.x)&&(w.x=h1(x.x,b.x,v,y)),ab(x.y,b.y)&&(w.y=h1(x.y,b.y,v,y)),e.position(w)}var S=s.startPan,T=s.pan,E=a.pan,_=T!=null&&n;_&&(ab(S.x,T.x)&&(E.x=h1(S.x,T.x,v,y)),ab(S.y,T.y)&&(E.y=h1(S.y,T.y,v,y)),e.emit("pan"));var A=s.startZoom,L=s.zoom,M=L!=null&&n;M&&(ab(A,L)&&(a.zoom=yb(a.minZoom,h1(A,L,v,y),a.maxZoom)),e.emit("zoom")),(_||M)&&e.emit("viewport");var N=s.style;if(N&&N.length>0&&i){for(var k=0;k=0;_--){var A=E[_];A()}E.splice(0,E.length)},"callbacks"),b=m.length-1;b>=0;b--){var w=m[b],S=w._private;if(S.stopped){m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.frames);continue}!S.playing&&!S.applying||(S.playing&&S.applying&&(S.applying=!1),S.started||kte(f,w,e),Tte(f,w,e,d),S.applying&&(S.applying=!1),x(S.frames),S.step!=null&&S.step(e),w.completed()&&(m.splice(b,1),S.hooked=!1,S.playing=!1,S.started=!1,x(S.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?t.notify("draw",r):t.notify("draw")),r.unmerge(n),t.emit("step")}function V1t(e){this.options=ir({},Rte,Nte,e)}function U1t(e){this.options=ir({},Mte,e)}function H1t(e){this.options=ir({},Ite,e)}function VC(e){this.options=ir({},Ote,e),this.options.layout=this;var t=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=t.some(function(h){return h.data("id")===a}),u=t.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function Y1t(e){this.options=ir({},Zte,e)}function kF(e){this.options=ir({},Jte,e)}function q1t(e){this.options=ir({},tee,e)}function X1t(e){this.options=ir({},eee,e)}function j1t(e){this.options=e,this.notifications=0}function Z1t(e,t){t.radius===0?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function CF(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||t.radius===0?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(iee(e,t,r,n,i),{cx:KB,cy:QB,radius:Y0,startX:K1t,startY:Q1t,stopX:ZB,stopY:JB,startAngle:jc.ang+Math.PI/2*q0,endAngle:nl.ang-Math.PI/2*q0,counterClockwise:pC})}function J1t(e){var t=[];if(e!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,r),e.lineTo(t+n-a,r),e.quadraticCurveTo(t+n,r,t+n,r+a),e.lineTo(t+n,r+i-a),e.quadraticCurveTo(t+n,r+i,t+n-a,r+i),e.lineTo(t+a,r+i),e.quadraticCurveTo(t,r+i,t,r+i-a),e.lineTo(t,r+a),e.quadraticCurveTo(t,r,t+a,r),e.closePath(),s?e.stroke():e.fill()}function Yee(e,t){for(var r=atob(e),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a{"use strict";o(ji,"_typeof");o(iF,"_classCallCheck");o(wmt,"_defineProperties");o(aF,"_createClass");o(Ogt,"_defineProperty$1");o(ql,"_slicedToArray");o(TXt,"_arrayWithHoles");o(kXt,"_iterableToArrayLimit");o(Pgt,"_unsupportedIterableToArray");o(Tmt,"_arrayLikeToArray");o(EXt,"_nonIterableRest");o(Bgt,"_createForOfIteratorHelper");qi=typeof window>"u"?null:window,kmt=qi?qi.navigator:null;qi&&qi.document;CXt=ji(""),Fgt=ji({}),SXt=ji(function(){}),AXt=typeof HTMLElement>"u"?"undefined":ji(HTMLElement),Eb=o(function(t){return t&&t.instanceString&&ni(t.instanceString)?t.instanceString():null},"instanceStr"),Ke=o(function(t){return t!=null&&ji(t)==CXt},"string"),ni=o(function(t){return t!=null&&ji(t)===SXt},"fn"),kn=o(function(t){return!wo(t)&&(Array.isArray?Array.isArray(t):t!=null&&t instanceof Array)},"array"),Ur=o(function(t){return t!=null&&ji(t)===Fgt&&!kn(t)&&t.constructor===Object},"plainObject"),_Xt=o(function(t){return t!=null&&ji(t)===Fgt},"object"),be=o(function(t){return t!=null&&ji(t)===ji(1)&&!isNaN(t)},"number"),LXt=o(function(t){return be(t)&&Math.floor(t)===t},"integer"),gC=o(function(t){if(AXt!=="undefined")return t!=null&&t instanceof HTMLElement},"htmlElement"),wo=o(function(t){return Cb(t)||zgt(t)},"elementOrCollection"),Cb=o(function(t){return Eb(t)==="collection"&&t._private.single},"element"),zgt=o(function(t){return Eb(t)==="collection"&&!t._private.single},"collection"),sF=o(function(t){return Eb(t)==="core"},"core"),$gt=o(function(t){return Eb(t)==="stylesheet"},"stylesheet"),DXt=o(function(t){return Eb(t)==="event"},"event"),Rf=o(function(t){return t==null?!0:!!(t===""||t.match(/^\s+$/))},"emptyString"),RXt=o(function(t){return typeof HTMLElement>"u"?!1:t instanceof HTMLElement},"domElement"),NXt=o(function(t){return Ur(t)&&be(t.x1)&&be(t.x2)&&be(t.y1)&&be(t.y2)},"boundingBox"),MXt=o(function(t){return _Xt(t)&&ni(t.then)},"promise"),IXt=o(function(){return kmt&&kmt.userAgent.match(/msie|trident|edge/i)},"ms"),db=o(function(t,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),GXt=o(function(t,r){return-1*Vgt(t,r)},"descending"),ir=Object.assign!=null?Object.assign.bind(Object):function(e){for(var t=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+BXt+"$").exec(t);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),HXt=o(function(t){var r,n=new RegExp("^"+OXt+"$").exec(t);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),WXt=o(function(t){return qXt[t.toLowerCase()]},"colorname2tuple"),YXt=o(function(t){return(kn(t)?t:null)||WXt(t)||VXt(t)||HXt(t)||UXt(t)},"color2tuple"),qXt={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Ugt=o(function(t){for(var r=t.map,n=t.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:p1,n=r,i;i=t.next(),!i.done;)n=n*Xgt+i.value|0;return n},"hashIterableInts"),pb=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p1;return r*Xgt+t|0},"hashInt"),mb=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ob;return(r<<5)+r+t|0},"hashIntAlt"),Mjt=o(function(t,r){return t*2097152+r},"combineHashes"),Cf=o(function(t){return t[0]*2097152+t[1]},"combineHashesArray"),j6=o(function(t,r){return[pb(t[0],r[0]),mb(t[1],r[1])]},"hashArrays"),Ijt=o(function(t,r){var n={value:0,done:!1},i=0,a=t.length,s={next:o(function(){return i=0&&!(t[i]===r&&(t.splice(i,1),n));i--);},"removeFromArray"),uF=o(function(t){t.splice(0,t.length)},"clearArray"),Gjt=o(function(t,r){for(var n=0;n"u"?"undefined":ji(Set))!==Ujt?Set:Hjt,DC=o(function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(t===void 0||r===void 0||!sF(t)){fi("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){fi("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:t,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new C1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=t.pan(),u=t.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];kn(r.classes)?h=r.classes:Ke(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;fb?1:0},"defaultCmp"),f=o(function(x,b,w,S,T){var E;if(w==null&&(w=0),T==null&&(T=n),w<0)throw new Error("lo must be non-negative");for(S==null&&(S=x.length);wM;0<=M?L++:L--)A.push(L);return A}.apply(this).reverse(),_=[],S=0,T=E.length;SN;0<=N?++A:--A)k.push(s(x,w));return k},"nsmallest"),y=o(function(x,b,w,S){var T,E,_;for(S==null&&(S=n),T=x[w];w>b;){if(_=w-1>>1,E=x[_],S(T,E)<0){x[w]=E,w=_;continue}break}return x[w]=T},"_siftdown"),v=o(function(x,b,w){var S,T,E,_,A;for(w==null&&(w=n),T=x.length,A=b,E=x[b],S=2*b+1;S0;){var E=b.pop(),_=v(E),A=E.id();if(p[A]=_,_!==1/0)for(var L=E.neighborhood().intersect(g),M=0;M0)for(F.unshift(P);d[G];){var z=d[G];F.unshift(z.edge),F.unshift(z.node),B=z.node,G=B.id()}return l.spawn(F)},"pathTo")}},"dijkstra")},Xjt={kruskal:o(function(t){t=t||function(w){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(S){for(var T=0;T0;){if(T(),_++,S===f){for(var A=[],L=a,M=f,N=x[M];A.unshift(L),N!=null&&A.unshift(N),L=v[M],L!=null;)M=L.id(),N=x[M];return{found:!0,distance:d[S],path:this.spawn(A),steps:_}}m[S]=!0;for(var k=w._private.edges,I=0;IN&&(g[M]=N,b[M]=L,w[M]=T),!a){var k=L*f+A;!a&&g[k]>N&&(g[k]=N,b[k]=A,w[k]=T)}}}for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:s,St=w(wt),Vt=[],Pt=St;;){if(Pt==null)return r.spawn();var _t=b(Pt),dt=_t.edge,Y=_t.pred;if(Vt.unshift(Pt[0]),Pt.same(Ot)&&Vt.length>0)break;dt!=null&&Vt.unshift(dt),Pt=Y}return u.spawn(Vt)},"pathTo"),E=0;E=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=rKt(a,t,r),n--}return r},"contractUntil"),nKt={kargerStein:o(function(){var t=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(F){return F.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/eKt);if(a<2){fi("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?t=t.slice(r,n):(n0&&t.splice(0,r));for(var l=0,u=t.length-1;u>=0;u--){var h=t[u];s?isFinite(h)||(t[u]=-1/0,l++):t.splice(u,1)}a&&t.sort(function(p,m){return p-m});var f=t.length,d=Math.floor(f/2);return f%2!==0?t[d+1+l]:(t[d-1+l]+t[d+l])/2},"median"),cKt=o(function(t){return Math.PI*t/180},"deg2rad"),K6=o(function(t,r){return Math.atan2(r,t)-Math.PI/2},"getAngleFromDisp"),hF=Math.log2||function(e){return Math.log(e)/Math.log(2)},r1t=o(function(t){return t>0?1:t<0?-1:0},"signum"),Q0=o(function(t,r){return Math.sqrt(H0(t,r))},"dist"),H0=o(function(t,r){var n=r.x-t.x,i=r.y-t.y;return n*n+i*i},"sqdist"),uKt=o(function(t){for(var r=t.length,n=0,i=0;i=t.x1&&t.y2>=t.y1)return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1};if(t.w!=null&&t.h!=null&&t.w>=0&&t.h>=0)return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}},"makeBoundingBox"),fKt=o(function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}},"copyBoundingBox"),dKt=o(function(t){t.x1=1/0,t.y1=1/0,t.x2=-1/0,t.y2=-1/0,t.w=0,t.h=0},"clearBoundingBox"),pKt=o(function(t,r,n){return{x1:t.x1+r,x2:t.x2+r,y1:t.y1+n,y2:t.y2+n,w:t.w,h:t.h}},"shiftBoundingBox"),n1t=o(function(t,r){t.x1=Math.min(t.x1,r.x1),t.x2=Math.max(t.x2,r.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,r.y1),t.y2=Math.max(t.y2,r.y2),t.h=t.y2-t.y1},"updateBoundingBox"),mKt=o(function(t,r,n){t.x1=Math.min(t.x1,r),t.x2=Math.max(t.x2,r),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,n),t.y2=Math.max(t.y2,n),t.h=t.y2-t.y1},"expandBoundingBoxByPoint"),oC=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t.x1-=r,t.x2+=r,t.y1-=r,t.y2+=r,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},"expandBoundingBox"),lC=o(function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=ql(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return t.x1-=s,t.x2+=i,t.y1-=n,t.y2+=a,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},"expandBoundingBoxSides"),Rmt=o(function(t,r){t.x1=r.x1,t.y1=r.y1,t.x2=r.x2,t.y2=r.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1},"assignBoundingBox"),fF=o(function(t,r){return!(t.x1>r.x2||r.x1>t.x2||t.x2r.y2||r.y1>t.y2)},"boundingBoxesIntersect"),T1=o(function(t,r,n){return t.x1<=r&&r<=t.x2&&t.y1<=n&&n<=t.y2},"inBoundingBox"),gKt=o(function(t,r){return T1(t,r.x,r.y)},"pointInBoundingBox"),i1t=o(function(t,r){return T1(t,r.x1,r.y1)&&T1(t,r.x2,r.y2)},"boundingBoxInBoundingBox"),a1t=o(function(t,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Z0(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=_f(t,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var w=n+f+l,S=i-d+h-l,T=w,E=i+d-h+l;if(g=_f(t,r,n,i,w,S,T,E,!1),g.length>0)return g}if(p){var _=n-f+h-l,A=i+d+l,L=n+f-h+l,M=A;if(g=_f(t,r,n,i,_,A,L,M,!1),g.length>0)return g}if(m){var N=n-f-l,k=i-d+h-l,I=N,C=i+d-h+l;if(g=_f(t,r,n,i,N,k,I,C,!1),g.length>0)return g}var O;{var D=n-f+h,P=i-d+h;if(O=lb(t,r,n,i,D,P,h+l),O.length>0&&O[0]<=D&&O[1]<=P)return[O[0],O[1]]}{var F=n+f-h,B=i-d+h;if(O=lb(t,r,n,i,F,B,h+l),O.length>0&&O[0]>=F&&O[1]<=B)return[O[0],O[1]]}{var G=n+f-h,z=i+d-h;if(O=lb(t,r,n,i,G,z,h+l),O.length>0&&O[0]>=G&&O[1]>=z)return[O[0],O[1]]}{var W=n-f+h,Q=i+d-h;if(O=lb(t,r,n,i,W,Q,h+l),O.length>0&&O[0]<=W&&O[1]>=Q)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),yKt=o(function(t,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=t&&t<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),vKt=o(function(t,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(tf.x2||rf.y2)},"inBezierVicinity"),xKt=o(function(t,r,n,i){n-=i;var a=r*r-4*t*n;if(a<0)return[];var s=Math.sqrt(a),l=2*t,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),bKt=o(function(t,r,n,i,a){var s=1e-5;t===0&&(t=s),r/=t,n/=t,i/=t;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),wKt=o(function(t,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=1*9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=1*3*n*n-6*n*a+n*l-n*t+2*a*a+2*a*t-l*t+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*t-a*t+i*s-i*i+i*r-s*r,m=[];bKt(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,w,S,T=0;T=0?Sh?(t-a)*(t-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),Ws=o(function(t,r,n){for(var i,a,s,l,u,h=0,f=0;f=t&&t>=s||i<=t&&t<=s)u=(t-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),rh=o(function(t,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=bC(f,-h);y=xC(v)}else y=f;return Ws(t,r,y)},"pointInsidePolygon"),kKt=o(function(t,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var w=b[0]*u[0]+t,S=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[w,S];var T=b[1]*u[0]+t,E=b[1]*u[1]+r;return[w,S,T,E]}else return[w,S]},"intersectLineCircle"),NB=o(function(t,r,n){return r<=t&&t<=n||n<=t&&t<=r?t:t<=r&&r<=n||n<=r&&r<=t?r:n},"midOfThree"),_f=o(function(t,r,n,i,a,s,l,u,h){var f=t-a,d=n-t,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var w=v/b,S=x/b,T=.001,E=0-T,_=1+T;return E<=w&&w<=_&&E<=S&&S<=_?[t+w*d,r+w*g]:h?[t+w*d,r+w*g]:[]}else return v===0||x===0?NB(t,n,l)===l?[l,u]:NB(t,n,a)===a?[a,s]:NB(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),vb=o(function(t,r,n,i,a,s,l,u){var h=[],f,d=new Array(n.length),p=!0;s==null&&(p=!1);var m;if(p){for(var g=0;g0){var y=bC(d,-u);m=xC(y)}else m=d}else m=n;for(var v,x,b,w,S=0;S2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-t,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=S)},"set"),get:o(function(w){return h[w]},"get")},p=0;p0?D=O.edgesTo(C)[0]:D=C.edgesTo(O)[0];var P=i(D);C=C.id(),A[C]>A[k]+P&&(A[C]=A[k]+P,L.nodes.indexOf(C)<0?L.push(C):L.updateItem(C),_[C]=0,E[C]=[]),A[C]==A[k]+P&&(_[C]=_[C]+_[k],E[C].push(k))}else for(var F=0;F0;){for(var W=T.pop(),Q=0;Q0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),zKt=o(function(t,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:VKt,l=i,u,h,f=0;f=2?rb(t,r,n,0,Pmt,UKt):rb(t,r,n,0,Omt)},"euclidean"),squaredEuclidean:o(function(t,r,n){return rb(t,r,n,0,Pmt)},"squaredEuclidean"),manhattan:o(function(t,r,n){return rb(t,r,n,0,Omt)},"manhattan"),max:o(function(t,r,n){return rb(t,r,n,-1/0,HKt)},"max")};k1["squared-euclidean"]=k1.squaredEuclidean;k1.squaredeuclidean=k1.squaredEuclidean;o(NC,"clusteringDistance");WKt=Da({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),pF=o(function(t){return WKt(t)},"setOptions"),wC=o(function(t,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return NC(t,i.length,l,u,h,f)},"getDist"),MB=o(function(t,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),XKt=o(function(t,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(t[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&t.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},t[g.index]=v,t.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),Vmt=o(function(t,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*t+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=Vmt(t,r,n),i},"assign"),Umt=o(function(t){for(var r=this.cy(),n=this.nodes(),i=lQt(t),a={},s=0;s=N?(k=N,N=C,I=O):C>k&&(k=C);for(var D=0;D0?1:0;_[L%i.minIterations*l+W]=Q,z+=Q}if(z>0&&(L>=i.minIterations-1||L==i.maxIterations-1)){for(var j=0,at=0;at1||E>1)&&(l=!0),d[w]=[],b.outgoers().forEach(function(A){A.isEdge()&&d[w].push(A.id())})}else p[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var S=b.degree(!0);S%2&&(u?h?l=!0:h=w:u=w),d[w]=[],b.connectedEdges().forEach(function(T){return d[w].push(T.id())})}else p[w]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(w){for(var S=w,T=[w],E,_,A;d[S].length;)E=d[S].shift(),_=p[E][0],A=p[E][1],S!=A?(d[A]=d[A].filter(function(L){return L!=E}),S=A):!a&&S!=_&&(d[_]=d[_].filter(function(L){return L!=E}),S=_),T.unshift(E),T.unshift(S);return T},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},J6=o(function(){var t=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=t.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(t);v.merge(x),b.forEach(function(w){var S=w.id(),T=w.connectedEdges().intersection(t);v.merge(w),r[S].cutVertex?v.merge(T.filter(function(E){return E.isLoop()})):v.merge(T)})}),a.push(v)},"buildComponent"),h=o(function d(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=t.getElementById(m).connectedEdges().intersection(t);if(y.size()===0)a.push(t.spawn(t.getElementById(m)));else{var v,x,b,w;y.forEach(function(S){v=S.source().id(),x=S.target().id(),b=v===m?x:v,b!==g&&(w=S.id(),l[w]||(l[w]=!0,s.push({x:m,y:b,edge:S})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(d(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");t.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return t.getElementById(d)});return{cut:t.spawn(f),components:a}},"hopcroftTarjanBiconnected"),gQt={hopcroftTarjanBiconnected:J6,htbc:J6,htb:J6,hopcroftTarjanBiconnectedComponents:J6},tC=o(function(){var t=this,r={},n=0,i=[],a=[],s=t.spawn(t),l=o(function u(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=t.getElementById(h).connectedEdges().intersection(t);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||u(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=t.spawn();;){var p=a.pop();if(d.merge(t.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return t.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),yQt={tarjanStronglyConnected:tC,tsc:tC,tscc:tC,tarjanStronglyConnectedComponents:tC},f1t={};[gb,qjt,Xjt,Kjt,Zjt,tKt,nKt,_Kt,v1,x1,HB,GKt,tQt,sQt,dQt,mQt,gQt,yQt].forEach(function(e){ir(f1t,e)});d1t=0,p1t=1,m1t=2,nh=o(function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=d1t,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof t=="function"&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");nh.prototype={fulfill:o(function(t){return Hmt(this,p1t,"fulfillValue",t)},"fulfill"),reject:o(function(t){return Hmt(this,m1t,"rejectReason",t)},"reject"),then:o(function(t,r){var n=this,i=new nh;return n.onFulfilled.push(Ymt(t,i,"fulfill")),n.onRejected.push(Ymt(r,i,"reject")),g1t(n),i.proxy},"then")};Hmt=o(function(t,r,n,i){return t.state===d1t&&(t.state=r,t[n]=i,g1t(t)),t},"deliver"),g1t=o(function(t){t.state===p1t?Wmt(t,"onFulfilled",t.fulfillValue):t.state===m1t&&Wmt(t,"onRejected",t.rejectReason)},"execute"),Wmt=o(function(t,r,n){if(t[r].length!==0){var i=t[r];t[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(t){return this.toggleClass(t,!0)},"addClass"),hasClass:o(function(t){var r=this[0];return r!=null&&r._private.classes.has(t)},"hasClass"),toggleClass:o(function(t,r){kn(t)||(t=t.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(t){return this.toggleClass(t,!1)},"removeClass"),flashClass:o(function(t,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(t),setTimeout(function(){n.removeClass(t)},r),n},"flashClass")};cC.className=cC.classNames=cC.classes;Vr={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Xi,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Vr.variable="(?:[\\w-.]|(?:\\\\"+Vr.metaChar+"))+";Vr.className="(?:[\\w-]|(?:\\\\"+Vr.metaChar+"))+";Vr.value=Vr.string+"|"+Vr.number;Vr.id=Vr.variable;(function(){var e,t,r;for(e=Vr.comparatorOp.split("|"),r=0;r=0)&&t!=="="&&(Vr.comparatorOp+="|\\!"+t)})();pn=o(function(){return{checks:[]}},"newQuery"),Ne={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},YB=[{selector:":selected",matches:o(function(t){return t.selected()},"matches")},{selector:":unselected",matches:o(function(t){return!t.selected()},"matches")},{selector:":selectable",matches:o(function(t){return t.selectable()},"matches")},{selector:":unselectable",matches:o(function(t){return!t.selectable()},"matches")},{selector:":locked",matches:o(function(t){return t.locked()},"matches")},{selector:":unlocked",matches:o(function(t){return!t.locked()},"matches")},{selector:":visible",matches:o(function(t){return t.visible()},"matches")},{selector:":hidden",matches:o(function(t){return!t.visible()},"matches")},{selector:":transparent",matches:o(function(t){return t.transparent()},"matches")},{selector:":grabbed",matches:o(function(t){return t.grabbed()},"matches")},{selector:":free",matches:o(function(t){return!t.grabbed()},"matches")},{selector:":removed",matches:o(function(t){return t.removed()},"matches")},{selector:":inside",matches:o(function(t){return!t.removed()},"matches")},{selector:":grabbable",matches:o(function(t){return t.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(t){return!t.grabbable()},"matches")},{selector:":animated",matches:o(function(t){return t.animated()},"matches")},{selector:":unanimated",matches:o(function(t){return!t.animated()},"matches")},{selector:":parent",matches:o(function(t){return t.isParent()},"matches")},{selector:":childless",matches:o(function(t){return t.isChildless()},"matches")},{selector:":child",matches:o(function(t){return t.isChild()},"matches")},{selector:":orphan",matches:o(function(t){return t.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(t){return t.isChild()},"matches")},{selector:":compound",matches:o(function(t){return t.isNode()?t.isParent():t.source().isParent()||t.target().isParent()},"matches")},{selector:":loop",matches:o(function(t){return t.isLoop()},"matches")},{selector:":simple",matches:o(function(t){return t.isSimple()},"matches")},{selector:":active",matches:o(function(t){return t.active()},"matches")},{selector:":inactive",matches:o(function(t){return!t.active()},"matches")},{selector:":backgrounding",matches:o(function(t){return t.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(t){return!t.backgrounding()},"matches")}].sort(function(e,t){return GXt(e.selector,t.selector)}),DJt=function(){for(var e={},t,r=0;r0&&f.edgeCount>0)return on("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return on("The selector `"+t+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&on("The selector `"+t+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),PJt=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var t=o(function(f){return f??""},"clean"),r=o(function(f){return Ke(f)?'"'+f+'"':t(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case Ne.GROUP:{var g=t(m);return g.substring(0,g.length-1)}case Ne.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(t(v))+r(m)+"]"}case Ne.DATA_BOOL:{var x=f.operator,b=f.field;return"["+t(x)+b+"]"}case Ne.DATA_EXIST:{var w=f.field;return"["+w+"]"}case Ne.META_COMPARE:{var S=f.operator,T=f.field;return"[["+T+n(t(S))+r(m)+"]]"}case Ne.STATE:return m;case Ne.ID:return"#"+m;case Ne.CLASS:return"."+m;case Ne.PARENT:case Ne.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case Ne.ANCESTOR:case Ne.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case Ne.COMPOUND_SPLIT:{var E=a(f.left,d),_=a(f.subject,d),A=a(f.right,d);return E+(E.length>0?" ":"")+_+A}case Ne.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+t,h=""+n),f&&(t=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=t===n;break;case">":p=!0,i=t>n;break;case">=":p=!0,i=t>=n;break;case"<":p=!0,i=t1&&arguments[1]!==void 0?arguments[1]:!0;return xF(this,e,t,C1t)};o(S1t,"addParent");E1.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return xF(this,e,t,S1t)};o(HJt,"addParentAndChildren");E1.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return xF(this,e,t,HJt)};E1.ancestors=E1.parents;bb=A1t={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:sn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:sn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var t=this[0];if(t)return t._private.data.id},"id")};bb.attr=bb.data;bb.removeAttr=bb.removeData;WJt=A1t,PC={};o(OB,"defineDegreeFunction");ir(PC,{degree:OB(function(e,t){return t.source().same(t.target())?2:1}),indegree:OB(function(e,t){return t.target().same(e)?1:0}),outdegree:OB(function(e,t){return t.source().same(e)?1:0})});o(u1,"defineDegreeBoundsFunction");ir(PC,{minDegree:u1("degree",function(e,t){return et}),minIndegree:u1("indegree",function(e,t){return et}),minOutdegree:u1("outdegree",function(e,t){return et})});ir(PC,{totalDegree:o(function(t){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(t,r+m[t]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},t===void 0?a:a[t]}else if(!s)return;return this},"relativePosition")};Kl.modelPosition=Kl.point=Kl.position;Kl.modelPositions=Kl.points=Kl.positions;Kl.renderedPoint=Kl.renderedPosition;Kl.relativePoint=Kl.relativePosition;YJt=_1t;b1=Pf={};Pf.renderedBoundingBox=function(e){var t=this.boundingBox(e),r=this.cy(),n=r.zoom(),i=r.pan(),a=t.x1*n+i.x,s=t.x2*n+i.x,l=t.y1*n+i.y,u=t.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Pf.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();return!t.styleEnabled()||!t.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,e||r.emitAndNotify("bounds")}}),this)};Pf.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(L,M,N){var k=0,I=0,C=M+N;return L>0&&C>0&&(k=M/C*L,I=N/C*L),{biasDiff:k,biasComplementDiff:I}}o(m,"computeBiasValues");function g(L,M,N,k){if(N.units==="%")switch(k){case"width":return L>0?N.pfValue*L:0;case"height":return M>0?N.pfValue*M:0;case"average":return L>0&&M>0?N.pfValue*(L+M)/2:0;case"min":return L>0&&M>0?L>M?N.pfValue*M:N.pfValue*L:0;case"max":return L>0&&M>0?L>M?N.pfValue*L:N.pfValue*M:0;default:return 0}else return N.units==="px"?N.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=m(f.width.val-d.w,y,v),S=w.biasDiff,T=w.biasComplementDiff,E=m(f.height.val-d.h,x,b),_=E.biasDiff,A=E.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-S+d.x1+d.x2+T)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-_+d.y1+d.y2+A)/2}o(r,"update");for(var n=0;nt.x2?i:t.x2,t.y1=nt.y2?a:t.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1)},"updateBounds"),W0=o(function(t,r){return r==null?t:Xl(t,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),nb=o(function(t,r,n){return jl(t,r,n)},"prefixedProperty"),eC=o(function(t,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,oC(d,1),Xl(t,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),PB=o(function(t,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=nb(s,"labelWidth",n),d=nb(s,"labelHeight",n),p=nb(s,"labelX",n),m=nb(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,w=r.pstyle("text-border-width").pfValue,S=w/2,T=r.pstyle("text-background-padding").pfValue,E=2,_=d,A=f,L=A/2,M=_/2,N,k,I,C;if(v)N=p-L,k=p+L,I=m-M,C=m+M;else{switch(u.value){case"left":N=p-A,k=p;break;case"center":N=p-L,k=p+L;break;case"right":N=p,k=p+A;break}switch(h.value){case"top":I=m-_,C=m;break;case"center":I=m-M,C=m+M;break;case"bottom":I=m,C=m+_;break}}N+=g-Math.max(b,S)-T-E,k+=g+Math.max(b,S)+T+E,I+=y-Math.max(b,S)-T-E,C+=y+Math.max(b,S)+T+E;var O=n||"main",D=a.labelBounds,P=D[O]=D[O]||{};P.x1=N,P.y1=I,P.x2=k,P.y2=C,P.w=k-N,P.h=C-I;var F=v&&x.strValue==="autorotate",B=x.pfValue!=null&&x.pfValue!==0;if(F||B){var G=F?nb(a.rstyle,"labelAngle",n):x.pfValue,z=Math.cos(G),W=Math.sin(G),Q=(N+k)/2,j=(I+C)/2;if(!v){switch(u.value){case"left":Q=k;break;case"right":Q=N;break}switch(h.value){case"top":j=C;break;case"bottom":j=I;break}}var at=o(function(ct,ut){return ct=ct-Q,ut=ut-j,{x:ct*z-ut*W+Q,y:ct*W+ut*z+j}},"rotate"),X=at(N,I),J=at(N,C),Z=at(k,I),H=at(k,C);N=Math.min(X.x,J.x,Z.x,H.x),k=Math.max(X.x,J.x,Z.x,H.x),I=Math.min(X.y,J.y,Z.y,H.y),C=Math.max(X.y,J.y,Z.y,H.y)}var q=O+"Rot",K=D[q]=D[q]||{};K.x1=N,K.y1=I,K.x2=k,K.y2=C,K.w=k-N,K.h=C-I,Xl(t,N,I,k,C),Xl(a.labelBounds.all,N,I,k,C)}return t}},"updateBoundsFromLabel"),qJt=o(function(t,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value;if(n>0&&i>0){var a=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,l=i+a,u=(t.w+l*2)/t.w,h=(t.h+l*2)/t.h,f=0,d=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(t.w+l*2.4)/t.w,d=-l/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(t.w+l*2.4)/t.w:s==="star"?(u=(t.w+l*2.8)/t.w,h=(t.h+l*2.6)/t.h,d=-l/3.8):s==="triangle"?(u=(t.w+l*2.8)/t.w,h=(t.h+l*2.4)/t.h,d=-l/1.4):s==="vee"&&(u=(t.w+l*4.4)/t.w,h=(t.h+l*3.8)/t.h,d=-l*.5);var p=t.h*h-t.h,m=t.w*u-t.w;if(lC(t,[Math.ceil(p/2),Math.ceil(m/2)]),f!=0||d!==0){var g=pKt(t,f,d);n1t(t,g)}}}},"updateBoundsFromOutline"),XJt=o(function(t,r){var n=t._private.cy,i=n.styleEnabled(),a=n.headless(),s=Ys(),l=t._private,u=t.isNode(),h=t.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?t.pstyle("bounds-expansion").pfValue:[0],b=o(function(Mt){return Mt.pstyle("display").value!=="none"},"isDisplayed"),w=!i||b(t)&&(!h||b(t.source())&&b(t.target()));if(w){var S=0,T=0;i&&r.includeOverlays&&(S=t.pstyle("overlay-opacity").value,S!==0&&(T=t.pstyle("overlay-padding").value));var E=0,_=0;i&&r.includeUnderlays&&(E=t.pstyle("underlay-opacity").value,E!==0&&(_=t.pstyle("underlay-padding").value));var A=Math.max(T,_),L=0,M=0;if(i&&(L=t.pstyle("width").pfValue,M=L/2),u&&r.includeNodes){var N=t.position();g=N.x,y=N.y;var k=t.outerWidth(),I=k/2,C=t.outerHeight(),O=C/2;f=g-I,d=g+I,p=y-O,m=y+O,Xl(s,f,p,d,m),i&&r.includeOutlines&&qJt(s,t)}else if(h&&r.includeEdges)if(i&&!a){var D=t.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=M,d+=M,p-=M,m+=M,Xl(s,f,p,d,m),D==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var F=f;f=d,d=F}if(p>m){var B=p;p=m,m=B}Xl(s,f-M,p-M,d+M,m+M)}}else if(D==="bezier"||D==="unbundled-bezier"||D.endsWith("segments")||D.endsWith("taxi")){var G;switch(D){case"bezier":case"unbundled-bezier":G=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=v.linePts;break}if(G!=null)for(var z=0;zd){var J=f;f=d,d=J}if(p>m){var Z=p;p=m,m=Z}f-=M,d+=M,p-=M,m+=M,Xl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(eC(s,t,"mid-source"),eC(s,t,"mid-target"),eC(s,t,"source"),eC(s,t,"target")),i){var H=t.pstyle("ghost").value==="yes";if(H){var q=t.pstyle("ghost-offset-x").pfValue,K=t.pstyle("ghost-offset-y").pfValue;Xl(s,s.x1+q,s.y1+K,s.x2+q,s.y2+K)}}var ot=l.bodyBounds=l.bodyBounds||{};Rmt(ot,s),lC(ot,x),oC(ot,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,Xl(s,f-A,p-A,d+A,m+A));var ct=l.overlayBounds=l.overlayBounds||{};Rmt(ct,s),lC(ct,x),oC(ct,1);var ut=l.labelBounds=l.labelBounds||{};ut.all!=null?dKt(ut.all):ut.all=Ys(),i&&r.includeLabels&&(r.includeMainLabels&&PB(s,t,null),h&&(r.includeSourceLabels&&PB(s,t,"source"),r.includeTargetLabels&&PB(s,t,"target")))}return s.x1=il(s.x1),s.y1=il(s.y1),s.x2=il(s.x2),s.y2=il(s.y2),s.w=il(s.x2-s.x1),s.h=il(s.y2-s.y1),s.w>0&&s.h>0&&w&&(lC(s,x),oC(s,1)),s},"boundingBoxImpl"),D1t=o(function(t){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Of.removeAllListeners=function(){return this.removeListener("*")};Of.emit=Of.trigger=function(e,t,r){var n=this.listeners,i=n.length;return this.emitting++,kn(t)||(t=[t]),ute(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(f){var d=n[f];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===lte)&&a.eventMatches(a.context,d,s)){var p=[s];t!=null&&Gjt(p,t),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(y){return y!==d}));var m=a.callbackContext(a.context,d,s),g=d.callback.apply(m,p);a.afterEmit(a.context,d,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[t]=u,a.set(h,{ele:u,index:t})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(t){t=t[0];var r=this._private,n=t._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(t){var r=this._private.cy;if(!t)return this;if(t&&Ke(t)){var n=t;t=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];t(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(t,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(t,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":ji(Symbol))!=t&&ji(Symbol.iterator)!=t;r&&(TC[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return Ogt({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){this.cleanStyle();var a=n._private.style[t];return a??(r?i.style().getDefaultProperty(t):null)}},"parsedStyle"),numericStyle:o(function(t){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(t);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(t){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(t).units},"numericStyleUnits"),renderedStyle:o(function(t){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,t)},"renderedStyle"),style:o(function(t,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Ur(t)){var s=t;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(Ke(t))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,t):void 0}else a.applyBypass(this,t,r,i),this.emitAndNotify("style");else if(t===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(t){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(t===void 0)for(var s=0;s0&&t.push(f[0]),t.push(l[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:o(function(t){return this.neighborhood().add(this).filter(t)},"closedNeighborhood"),openNeighborhood:o(function(t){return this.neighborhood(t)},"openNeighborhood")});Ua.neighbourhood=Ua.neighborhood;Ua.closedNeighbourhood=Ua.closedNeighborhood;Ua.openNeighbourhood=Ua.openNeighborhood;ir(Ua,{source:al(o(function(t){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&t?n.filter(t):n},"sourceImpl"),"source"),target:al(o(function(t){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&t?n.filter(t):n},"targetImpl"),"target"),sources:cgt({attr:"source"}),targets:cgt({attr:"target"})});o(cgt,"defineSourceFunction");ir(Ua,{edgesWith:al(ugt(),"edgesWith"),edgesTo:al(ugt({thisIsSrc:!0}),"edgesTo")});o(ugt,"defineEdgesWithFunction");ir(Ua,{connectedEdges:al(function(e){for(var t=[],r=this,n=0;n0);return s},"components"),component:o(function(){var t=this[0];return t.cy().mutableElements().components(t)[0]},"component")});Ua.componentsOf=Ua.components;La=o(function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(t===void 0){fi("A collection must have a reference to the core");return}var a=new Qc,s=!1;if(!r)r=[];else if(r.length>0&&Ur(r[0])&&!Cb(r[0])){s=!0;for(var l=[],u=new C1,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var B=l.length===r.length?r:new La(n,l),G=0;G0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(C){for(var O=C._private.edges,D=0;D0&&(e?N.emitAndNotify("remove"):t&&N.emit("remove"));for(var k=0;kf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")}(),In=o(function(t,r,n,i){var a=bte(t,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),hC={linear:o(function(t,r,n){return t+(r-t)*n},"linear"),ease:In(.25,.1,.25,1),"ease-in":In(.42,0,1,1),"ease-out":In(0,0,.58,1),"ease-in-out":In(.42,0,.58,1),"ease-in-sine":In(.47,0,.745,.715),"ease-out-sine":In(.39,.575,.565,1),"ease-in-out-sine":In(.445,.05,.55,.95),"ease-in-quad":In(.55,.085,.68,.53),"ease-out-quad":In(.25,.46,.45,.94),"ease-in-out-quad":In(.455,.03,.515,.955),"ease-in-cubic":In(.55,.055,.675,.19),"ease-out-cubic":In(.215,.61,.355,1),"ease-in-out-cubic":In(.645,.045,.355,1),"ease-in-quart":In(.895,.03,.685,.22),"ease-out-quart":In(.165,.84,.44,1),"ease-in-out-quart":In(.77,0,.175,1),"ease-in-quint":In(.755,.05,.855,.06),"ease-out-quint":In(.23,1,.32,1),"ease-in-out-quint":In(.86,0,.07,1),"ease-in-expo":In(.95,.05,.795,.035),"ease-out-expo":In(.19,1,.22,1),"ease-in-out-expo":In(1,0,0,1),"ease-in-circ":In(.6,.04,.98,.335),"ease-out-circ":In(.075,.82,.165,1),"ease-in-out-circ":In(.785,.135,.15,.86),spring:o(function(t,r,n){if(n===0)return hC.linear;var i=wte(t,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":In};o(fgt,"getEasedValue");o(dgt,"getValue");o(h1,"ease");o(Tte,"step$1");o(ab,"valid");o(kte,"startAnimation");o(pgt,"stepAll");Ete={animate:sn.animate(),animation:sn.animation(),animated:sn.animated(),clearQueue:sn.clearQueue(),delay:sn.delay(),delayAnimation:sn.delayAnimation(),stop:sn.stop(),addToAnimationPool:o(function(t){var r=this;r.styleEnabled()&&r._private.aniEles.merge(t)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var t=this;if(t._private.animationsRunning=!0,!t.styleEnabled())return;function r(){t._private.animationsRunning&&yC(o(function(a){pgt(a,t),r()},"animationStep"))}o(r,"headlessStep");var n=t.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){pgt(s,t)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},Cte={qualifierCompare:o(function(t,r){return t==null||r==null?t==null&&r==null:t.sameText(r)},"qualifierCompare"),eventMatches:o(function(t,r,n){var i=r.qualifier;return i!=null?t!==n.target&&Cb(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(t,r){r.cy=t,r.target=t},"addEventFields"),callbackContext:o(function(t,r,n){return r.qualifier!=null?n.target:t},"callbackContext")},iC=o(function(t){return Ke(t)?new Mf(t):t},"argSelector"),G1t={createEmitter:o(function(){var t=this._private;return t.emitter||(t.emitter=new BC(Cte,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(t,r,n){return this.emitter().on(t,iC(r),n),this},"on"),removeListener:o(function(t,r,n){return this.emitter().removeListener(t,iC(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(t,r,n){return this.emitter().one(t,iC(r),n),this},"one"),once:o(function(t,r,n){return this.emitter().one(t,iC(r),n),this},"once"),emit:o(function(t,r){return this.emitter().emit(t,r),this},"emit"),emitAndNotify:o(function(t,r){return this.emit(t),this.notify(t,r),this},"emitAndNotify")};sn.eventAliasesOn(G1t);XB={png:o(function(t){var r=this._private.renderer;return t=t||{},r.png(t)},"png"),jpg:o(function(t){var r=this._private.renderer;return t=t||{},t.bg=t.bg||"#fff",r.jpg(t)},"jpg")};XB.jpeg=XB.jpg;fC={layout:o(function(t){var r=this;if(t==null){fi("Layout options must be specified to make a layout");return}if(t.name==null){fi("A `name` must be specified to make a layout");return}var n=t.name,i=r.extension("layout",n);if(i==null){fi("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;Ke(t.eles)?a=r.$(t.eles):a=t.eles!=null?t.eles:r.$();var s=new i(ir({},t,{cy:r,eles:a}));return s},"layout")};fC.createLayout=fC.makeLayout=fC.layout;Ste={notify:o(function(t,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[t]=n.batchNotifications[t]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(t,r)}},"notify"),notifications:o(function(t){var r=this._private;return t===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!t,this)},"notifications"),noNotifications:o(function(t){this.notifications(!1),t(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var t=this._private;return t.batchCount==null&&(t.batchCount=0),t.batchCount===0&&(t.batchStyleEles=this.collection(),t.batchNotifications={}),t.batchCount++,this},"startBatch"),endBatch:o(function(){var t=this._private;if(t.batchCount===0)return this;if(t.batchCount--,t.batchCount===0){t.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(t.batchNotifications).forEach(function(n){var i=t.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(t){return this.startBatch(),t(),this.endBatch(),this},"batch"),batchData:o(function(t){var r=this;return this.batch(function(){for(var n=Object.keys(t),i=0;i0;)r.removeChild(r.childNodes[0]);t._private.renderer=null,t.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(t){return this.on("render",t)},"onRender"),offRender:o(function(t){return this.off("render",t)},"offRender")};jB.invalidateDimensions=jB.resize;dC={collection:o(function(t,r){return Ke(t)?this.$(t):wo(t)?t.collection():kn(t)?(r||(r={}),new La(this,t,r.unique,r.removed)):new La(this)},"collection"),nodes:o(function(t){var r=this.$(function(n){return n.isNode()});return t?r.filter(t):r},"nodes"),edges:o(function(t){var r=this.$(function(n){return n.isEdge()});return t?r.filter(t):r},"edges"),$:o(function(t){var r=this._private.elements;return t?r.filter(t):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};dC.elements=dC.filter=dC.$;Wa={},hb="t",_te="f";Wa.apply=function(e){for(var t=this,r=t._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(S=1),l.color){var E=n.valueMin[0],_=n.valueMax[0],A=n.valueMin[1],L=n.valueMax[1],M=n.valueMin[2],N=n.valueMax[2],k=n.valueMin[3]==null?1:n.valueMin[3],I=n.valueMax[3]==null?1:n.valueMax[3],C=[Math.round(E+(_-E)*S),Math.round(A+(L-A)*S),Math.round(M+(N-M)*S),Math.round(k+(I-k)*S)];a={bypass:n.bypass,name:n.name,value:C,strValue:"rgb("+C[0]+", "+C[1]+", "+C[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*S;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var D=n.field.split("."),P=d.data,F=0;F0&&a>0){for(var l={},u=!1,h=0;h0?e.delayAnimation(s).play().promise().then(w):w()}).then(function(){return e.animation({style:l,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(e,i),e.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),n.transitioning=!1)};Wa.checkTrigger=function(e,t,r,n,i,a){var s=this.properties[t],l=i(s);l!=null&&l(r,n)&&a(s)};Wa.checkZOrderTrigger=function(e,t,r,n){var i=this;this.checkTrigger(e,t,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",e)})};Wa.checkBoundsTrigger=function(e,t,r,n){this.checkTrigger(e,t,r,n,function(i){return i.triggersBounds},function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&t==="curve-style"&&(r==="bezier"||n==="bezier")&&e.parallelEdges().forEach(function(a){a.isBundledBezier()&&a.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&t==="display"&&(r==="none"||n==="none")&&e.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Wa.checkTriggers=function(e,t,r,n){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,r,n),this.checkBoundsTrigger(e,t,r,n)};Lb={};Lb.applyBypass=function(e,t,r,n){var i=this,a=[],s=!0;if(t==="*"||t==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){on("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new Mf(d);if(p.invalid){on("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){on("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],w=x[2],S=t.properties[b];if(!S){on("Skipping property: Invalid property name in: "+s),u();continue}var T=r.parse(b,w);if(!T){on("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:w}),u()}if(g){l();break}r.selector(d);for(var E=0;E=7&&t[0]==="d"&&(f=new RegExp(l.data.regex).exec(t))){if(r)return!1;var p=l.data;return{name:e,value:f,strValue:""+t,mapped:p,field:f[1],bypass:r}}else if(t.length>=10&&t[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(t))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(e,d[4]);if(!g||g.mapped)return!1;var y=this.parse(e,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return on("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+g.strValue+"`"),this.parse(e,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:e,value:d,strValue:""+t,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var w;if(u?w=t.split(/\s+/):kn(t)?w=t:w=[t],h.evenMultiple&&w.length%2!==0)return null;for(var S=[],T=[],E=[],_="",A=!1,L=0;L0?" ":"")+M.strValue}return h.validate&&!h.validate(S,T)?null:h.singleEnum&&A?S.length===1&&Ke(S[0])?{name:e,value:S[0],strValue:S[0],bypass:r}:null:{name:e,value:S,pfValue:E,strValue:_,bypass:r,units:T}}var N=o(function(){for(var H=0;Hh.max||h.strictMax&&t===h.max))return null;var D={name:e,value:t,strValue:""+t+(k||""),units:k,bypass:r};return h.unitless||k!=="px"&&k!=="em"?D.pfValue=t:D.pfValue=k==="px"||!k?t:this.getEmSizeInPixels()*t,(k==="ms"||k==="s")&&(D.pfValue=k==="ms"?t:1e3*t),(k==="deg"||k==="rad")&&(D.pfValue=k==="rad"?t:cKt(t)),k==="%"&&(D.pfValue=t/100),D}else if(h.propList){var P=[],F=""+t;if(F!=="none"){for(var B=F.split(/\s*,\s*|\s+/),G=0;G0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(t){return t===void 0?this._private.minZoom:this.zoomRange({min:t})},"minZoom"),maxZoom:o(function(t){return t===void 0?this._private.maxZoom:this.zoomRange({max:t})},"maxZoom"),getZoomedViewport:o(function(t){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),be(t)?s=t:Ur(t)&&(s=t.level,t.position!=null?a=RC(t.position,i,n):t.renderedPosition!=null&&(a=t.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!t.cancelOnFailedZoom)&&r.panningEnabled){var h=t.pan;be(h.x)&&(r.pan.x=h.x,l=!1),be(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(t){var r=this.getCenterPan(t);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(t,r){if(this._private.panningEnabled){if(Ke(t)){var n=t;t=this.mutableElements().filter(n)}else wo(t)||(t=this.mutableElements());if(t.length!==0){var i=t.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var t=this._private,r=t.container,n=this;return t.sizeCache=t.sizeCache||(r?function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var t=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-t.x)/r,x2:(n.x2-t.x)/r,y1:(n.y1-t.y)/r,y2:(n.y2-t.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var t=this.width(),r=this.height();return{x1:0,y1:0,x2:t,y2:r,w:t,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(t){if(t)this._private.multiClickDebounceTime=t;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};tp.centre=tp.center;tp.autolockNodes=tp.autolock;tp.autoungrabifyNodes=tp.autoungrabify;Tb={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Tb.attr=Tb.data;Tb.removeAttr=Tb.removeData;kb=o(function(t){var r=this;t=ir({},t);var n=t.container;n&&!gC(n)&&gC(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=qi!==void 0&&n!==void 0&&!t.headless,l=t;l.layout=ir({name:s?"grid":"null"},l.layout),l.renderer=ir({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new La(this),listeners:[],aniEles:new La(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:be(l.zoom)?l.zoom:1,pan:{x:Ur(l.pan)&&be(l.pan.x)?l.pan.x:0,y:Ur(l.pan)&&be(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(MXt);if(v)return S1.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=ir({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Ur(g)||kn(g))&&r.add(g),r.one("layoutready",function(w){r.notifications(!0),r.emit(w),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=ir({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,ni(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,u=Ys(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),h;if(wo(t.roots))h=t.roots;else if(kn(t.roots)){for(var f=[],d=0;d0;){var O=C(),D=M(O,k);if(D)O.outgoers().filter(function(ut){return ut.isNode()&&n.has(ut)}).forEach(I);else if(D===null){on("Detected double maximal shift for node `"+O.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}L();var P=0;if(t.avoidOverlap)for(var F=0;F0&&x[0].length<=3?Pt/2:0),Y=2*Math.PI/x[it].length*wt;return it===0&&x[0].length===1&&(dt=1),{x:K.x+dt*Math.cos(Y),y:K.y+dt*Math.sin(Y)}}else{var _t={x:K.x+(wt+1-(Ot+1)/2)*St,y:(it+1)*Vt};return _t}},"getPosition");return n.nodes().layoutPositions(this,t,ct),this};Mte={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(U1t,"CircleLayout");U1t.prototype.run=function(){var e=this.options,t=e,r=e.cy,n=t.eles,i=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,a=n.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var s=Ys(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=t.sweep===void 0?2*Math.PI-2*Math.PI/a.length:t.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&t.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),w=Math.sqrt(d*d/(x*x+b*b));f=Math.max(w,f)}var S=o(function(E,_){var A=t.startAngle+_*h*(i?1:-1),L=f*Math.cos(A),M=f*Math.sin(A),N={x:l.x+L,y:l.y+M};return N},"getPos");return n.nodes().layoutPositions(this,t,S),this};Ite={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(t){return t.degree()},"concentric"),levelWidth:o(function(t){return t.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(H1t,"ConcentricLayout");H1t.prototype.run=function(){for(var e=this.options,t=e,r=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,n=e.cy,i=t.eles,a=i.nodes().not(":parent"),s=Ys(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var T=Math.abs(b[0].value-S.value);T>=v&&(b=[],x.push(b))}b.push(S)}var E=h+t.minNodeSpacing;if(!t.avoidOverlap){var _=x.length>0&&x[0].length>1,A=Math.min(s.w,s.h)/2-E,L=A/(x.length+_?1:0);E=Math.min(E,L)}for(var M=0,N=0;N1&&t.avoidOverlap){var O=Math.cos(C)-Math.cos(0),D=Math.sin(C)-Math.sin(0),P=Math.sqrt(E*E/(O*O+D*D));M=Math.max(P,M)}k.r=M,M+=E}if(t.equidistant){for(var F=0,B=0,G=0;G=e.numIter||(Vte(n,e),n.temperature=n.temperature*e.coolingFactor,n.temperature=e.animationThreshold&&a(),yC(d)}},"frame");f()}else{for(;h;)h=s(u),u++;ygt(n,e),l()}return this};VC.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};VC.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};Pte=o(function(t,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=Ys(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),l={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(A);for(var f=0;fi.count?0:i.graph},"findLCA"),Fte=o(function e(t,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=EC(t,l,u),v=EC(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,w=x*x+b*b,p=Math.sqrt(w),d=(t.nodeRepulsion+r.nodeRepulsion)/w,m=d*x/p,g=d*b/p;t.isLocked||(t.offsetX-=m,t.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),Wte=o(function(t,r,n,i){if(n>0)var a=t.maxX-r.minX;else var a=r.maxX-t.minX;if(i>0)var s=t.maxY-r.minY;else var s=r.maxY-t.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),EC=o(function(t,r,n){var i=t.positionX,a=t.positionY,s=t.height||1,l=t.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),Yte=o(function(t,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),Xte=o(function(t,r){var n=[],i=0,a=-1;for(n.push.apply(n,t.graphSet[0]),a+=t.graphSet[0].length;i<=a;){var s=n[i++],l=t.idToIndex[s],u=t.layoutNodes[l],h=u.children;if(0n)var a={x:n*t/i,y:n*r/i};else var a={x:t,y:r};return a},"limitForce"),Qte=o(function e(t,r){var n=t.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(i.minX==null||t.minX-i.padLefti.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(i.minY==null||t.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),Zte={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(t){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(t,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(t,r){return r},"transform")};o(Y1t,"GridLayout");Y1t.prototype.run=function(){var e=this.options,t=e,r=e.cy,n=t.eles,i=n.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=Ys(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,t,function(Q){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(j){if(j==null)return Math.min(u,h);var at=Math.min(u,h);at==u?u=j:h=j},"small"),d=o(function(j){if(j==null)return Math.max(u,h);var at=Math.max(u,h);at==u?u=j:h=j},"large"),p=t.rows,m=t.cols!=null?t.cols:t.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,w=a.h/u;if(t.condense&&(b=0,w=0),t.avoidOverlap)for(var S=0;S=h&&(O=0,C++)},"moveToNextCell"),P={},F=0;F(O=TKt(e,t,D[P],D[P+1],D[P+2],D[P+3])))return v(_,O),!0}else if(L.edgeType==="bezier"||L.edgeType==="multibezier"||L.edgeType==="self"||L.edgeType==="compound"){for(var D=L.allpts,P=0;P+5(O=wKt(e,t,D[P],D[P+1],D[P+2],D[P+3],D[P+4],D[P+5])))return v(_,O),!0}for(var F=F||A.source,B=B||A.target,G=i.getArrowWidth(M,N),z=[{name:"source",x:L.arrowStartX,y:L.arrowStartY,angle:L.srcArrowAngle},{name:"target",x:L.arrowEndX,y:L.arrowEndY,angle:L.tgtArrowAngle},{name:"mid-source",x:L.midX,y:L.midY,angle:L.midsrcArrowAngle},{name:"mid-target",x:L.midX,y:L.midY,angle:L.midtgtArrowAngle}],P=0;P0&&(x(F),x(B))}o(b,"checkEdge");function w(_,A,L){return jl(_,A,L)}o(w,"preprop");function S(_,A){var L=_._private,M=p,N;A?N=A+"-":N="",_.boundingBox();var k=L.labelBounds[A||"main"],I=_.pstyle(N+"label").value,C=_.pstyle("text-events").strValue==="yes";if(!(!C||!I)){var O=w(L.rscratch,"labelX",A),D=w(L.rscratch,"labelY",A),P=w(L.rscratch,"labelAngle",A),F=_.pstyle(N+"text-margin-x").pfValue,B=_.pstyle(N+"text-margin-y").pfValue,G=k.x1-M-F,z=k.x2+M-F,W=k.y1-M-B,Q=k.y2+M-B;if(P){var j=Math.cos(P),at=Math.sin(P),X=o(function(ct,ut){return ct=ct-O,ut=ut-D,{x:ct*j-ut*at+O,y:ct*at+ut*j+D}},"rotate"),J=X(G,W),Z=X(G,Q),H=X(z,W),q=X(z,Q),K=[J.x+F,J.y+B,H.x+F,H.y+B,q.x+F,q.y+B,Z.x+F,Z.y+B];if(Ws(e,t,K))return v(_),!0}else if(T1(k,e,t))return v(_),!0}}o(S,"checkLabel");for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?x(E)||S(E):b(E)||S(E)||S(E,"source")||S(E,"target")}return l};rp.getAllInBox=function(e,t,r,n){var i=this.getCachedZSortedEles().interactive,a=[],s=Math.min(e,r),l=Math.max(e,r),u=Math.min(t,n),h=Math.max(t,n);e=s,r=l,t=u,n=h;for(var f=Ys({x1:e,y1:t,x2:r,y2:n}),d=0;d0?-(Math.PI-t.ang):Math.PI+t.ang},"invertVec"),iee=o(function(t,r,n,i,a){if(t!==Tgt?kgt(r,t,jc):nee(nl,jc),kgt(r,n,nl),bgt=jc.nx*nl.ny-jc.ny*nl.nx,wgt=jc.nx*nl.nx-jc.ny*-nl.ny,th=Math.asin(Math.max(-1,Math.min(1,bgt))),Math.abs(th)<1e-6){KB=r.x,QB=r.y,Y0=d1=0;return}q0=1,pC=!1,wgt<0?th<0?th=Math.PI+th:(th=Math.PI-th,q0=-1,pC=!0):th>0&&(q0=-1,pC=!0),r.radius!==void 0?d1=r.radius:d1=i,V0=th/2,aC=Math.min(jc.len/2,nl.len/2),a?(Xc=Math.abs(Math.cos(V0)*d1/Math.sin(V0)),Xc>aC?(Xc=aC,Y0=Math.abs(Xc*Math.sin(V0)/Math.cos(V0))):Y0=d1):(Xc=Math.min(aC,d1),Y0=Math.abs(Xc*Math.sin(V0)/Math.cos(V0))),ZB=r.x+nl.nx*Xc,JB=r.y+nl.ny*Xc,KB=ZB-nl.ny*Y0*q0,QB=JB+nl.nx*Y0*q0,K1t=r.x+jc.nx*Xc,Q1t=r.y+jc.ny*Xc,Tgt=r},"calcCornerArc");o(Z1t,"drawPreparedRoundCorner");o(CF,"getRoundCorner");Ya={};Ya.findMidptPtsEtc=function(e,t){var r=t.posPts,n=t.intersectionPts,i=t.vectorNormInverse,a,s=e.pstyle("source-endpoint"),l=e.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(T,E,_,A){var L=A-E,M=_-T,N=Math.sqrt(M*M+L*L);return{x:-L/N,y:M/N}},"recalcVectorNormInverse"),f=e.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(e.source()[0],s),p=ql(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(e.target()[0],l),v=ql(y,2),x=v[0],b=v[1],w={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=w}else on("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};Ya.findHaystackPoints=function(e){for(var t=0;t0?Math.max(kt-Ct,0):Math.min(kt+Ct,0)},"subDWH"),I=k(M,A),C=k(N,L),O=!1;b===h?x=Math.abs(I)>Math.abs(C)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var D=x===n,P=D?C:I,F=D?N:M,B=r1t(F),G=!1;!(O&&(S||E))&&(b===l&&F<0||b===u&&F>0||b===a&&F>0||b===s&&F<0)&&(B*=-1,P=B*Math.abs(P),G=!0);var z;if(S){var W=T<0?1+T:T;z=W*P}else{var Q=T<0?P:0;z=Q+T*B}var j=o(function(kt){return Math.abs(kt)<_||Math.abs(kt)>=Math.abs(P)},"getIsTooClose"),at=j(z),X=j(Math.abs(P)-Math.abs(z)),J=at||X;if(J&&!G)if(D){var Z=Math.abs(F)<=p/2,H=Math.abs(M)<=m/2;if(Z){var q=(f.x1+f.x2)/2,K=f.y1,ot=f.y2;r.segpts=[q,K,q,ot]}else if(H){var ct=(f.y1+f.y2)/2,ut=f.x1,et=f.x2;r.segpts=[ut,ct,et,ct]}else r.segpts=[f.x1,f.y2]}else{var Mt=Math.abs(F)<=d/2,it=Math.abs(N)<=g/2;if(Mt){var wt=(f.y1+f.y2)/2,Ot=f.x1,St=f.x2;r.segpts=[Ot,wt,St,wt]}else if(it){var Vt=(f.x1+f.x2)/2,Pt=f.y1,_t=f.y2;r.segpts=[Vt,Pt,Vt,_t]}else r.segpts=[f.x2,f.y1]}else if(D){var dt=f.y1+z+(v?p/2*B:0),Y=f.x1,ft=f.x2;r.segpts=[Y,dt,ft,dt]}else{var mt=f.x1+z+(v?d/2*B:0),rt=f.y1,ht=f.y2;r.segpts=[mt,rt,mt,ht]}if(r.isRound){var nt=e.pstyle("taxi-radius").value,st=e.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(nt),r.isArcRadius=new Array(r.segpts.length/2).fill(st)}};Ya.tryToCorrectInvalidPoints=function(e,t){var r=e._private.rscratch;if(r.edgeType==="bezier"){var n=t.srcPos,i=t.tgtPos,a=t.srcW,s=t.srcH,l=t.tgtW,u=t.tgtH,h=t.srcShape,f=t.tgtShape,d=t.srcCornerRadius,p=t.tgtCornerRadius,m=t.srcRs,g=t.tgtRs,y=!be(r.startX)||!be(r.startY),v=!be(r.arrowStartX)||!be(r.arrowStartY),x=!be(r.endX)||!be(r.endY),b=!be(r.arrowEndX)||!be(r.arrowEndY),w=3,S=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=w*S,E=Q0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),_=EC.poolIndex()){var O=I;I=C,C=O}var D=L.srcPos=I.position(),P=L.tgtPos=C.position(),F=L.srcW=I.outerWidth(),B=L.srcH=I.outerHeight(),G=L.tgtW=C.outerWidth(),z=L.tgtH=C.outerHeight(),W=L.srcShape=r.nodeShapes[t.getNodeShape(I)],Q=L.tgtShape=r.nodeShapes[t.getNodeShape(C)],j=L.srcCornerRadius=I.pstyle("corner-radius").value==="auto"?"auto":I.pstyle("corner-radius").pfValue,at=L.tgtCornerRadius=C.pstyle("corner-radius").value==="auto"?"auto":C.pstyle("corner-radius").pfValue,X=L.tgtRs=C._private.rscratch,J=L.srcRs=I._private.rscratch;L.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var Z=0;Z0){var ot=a,ct=H0(ot,m1(r)),ut=H0(ot,m1(K)),et=ct;if(ut2){var Mt=H0(ot,{x:K[2],y:K[3]});Mt0){var ht=s,nt=H0(ht,m1(r)),st=H0(ht,m1(rt)),Tt=nt;if(st2){var kt=H0(ht,{x:rt[2],y:rt[3]});kt=g||_){v={cp:S,segment:E};break}}if(v)break}var A=v.cp,L=v.segment,M=(g-x)/L.length,N=L.t1-L.t0,k=m?L.t0+N*M:L.t1-N*M;k=yb(0,k,1),t=y1(A.p0,A.p1,A.p2,k),p=see(A.p0,A.p1,A.p2,k);break}case"straight":case"segments":case"haystack":{for(var I=0,C,O,D,P,F=n.allpts.length,B=0;B+3=g));B+=2);var G=g-O,z=G/C;z=yb(0,z,1),t=hKt(D,P,z),p=eyt(D,P);break}}s("labelX",d,t.x),s("labelY",d,t.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(e)}};Jc.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))};Jc.applyPrefixedLabelDimensions=function(e,t){var r=e._private,n=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,n),a=e.pstyle("line-height").pfValue,s=e.pstyle("text-wrap").strValue,l=jl(r.rscratch,"labelWrapCachedLines",t)||[],u=s!=="wrap"?1:Math.max(l.length,1),h=i.height/u,f=h*a,d=i.width,p=i.height+(u-1)*(a-1)*h;Af(r.rstyle,"labelWidth",t,d),Af(r.rscratch,"labelWidth",t,d),Af(r.rstyle,"labelHeight",t,p),Af(r.rscratch,"labelHeight",t,p),Af(r.rscratch,"labelLineHeight",t,f)};Jc.getLabelText=function(e,t){var r=e._private,n=t?t+"-":"",i=e.pstyle(n+"label").strValue,a=e.pstyle("text-transform").value,s=o(function(Q,j){return j?(Af(r.rscratch,Q,t,j),j):jl(r.rscratch,Q,t)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=e.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=e.pstyle("text-max-width").pfValue,p=e.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var T=x.matchAll(y),E="",_=0,A=Bgt(T),L;try{for(A.s();!(L=A.n()).done;){var M=L.value,N=M[0],k=x.substring(_,M.index);_=M.index+N.length;var I=E.length===0?k:E+k+N,C=this.calculateLabelDimensions(e,I),O=C.width;O<=d?E+=k+N:(E&&g.push(E),E=k+N)}}catch(W){A.e(W)}finally{A.f()}E.match(/^[\s\u200b]+$/)||g.push(E)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var D=e.pstyle("text-max-width").pfValue,P="",F="\u2026",B=!1;if(this.calculateLabelDimensions(e,i).widthD)break;P+=i[G],G===i.length-1&&(B=!0)}return B||(P+=F),P}return i};Jc.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,r=e.pstyle("text-halign").strValue;if(t==="auto")if(e.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return t};Jc.calculateLabelDimensions=function(e,t){var r=this,n=r.cy.window(),i=n.document,a=K0(t,e._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),l=s[a];if(l!=null)return l;var u=0,h=e.pstyle("font-style").strValue,f=e.pstyle("font-size").pfValue,d=e.pstyle("font-family").strValue,p=e.pstyle("font-weight").strValue,m=this.labelCalcCanvas,g=this.labelCalcCanvasContext;if(!m){m=this.labelCalcCanvas=i.createElement("canvas"),g=this.labelCalcCanvasContext=m.getContext("2d");var y=m.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}g.font="".concat(h," ").concat(p," ").concat(f,"px ").concat(d);for(var v=0,x=0,b=t.split(` +`),w=0;w1&&arguments[1]!==void 0?arguments[1]:!0;if(t.merge(s),l)for(var u=0;u=e.desktopTapThreshold2}var me=i(Y);zt&&(e.hoverData.tapholdCancelled=!0);var Ht=o(function(){var qe=e.hoverData.dragDelta=e.hoverData.dragDelta||[];qe.length===0?(qe.push(yt[0]),qe.push(yt[1])):(qe[0]+=yt[0],qe[1]+=yt[1])},"updateDragDelta");mt=!0,n(At,["mousemove","vmousemove","tapdrag"],Y,{x:st[0],y:st[1]});var ne=o(function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||rt.emit({originalEvent:Y,type:"boxstart",position:{x:st[0],y:st[1]}}),Ct[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()},"goIntoBoxMode");if(e.hoverData.which===3){if(zt){var xe={originalEvent:Y,type:"cxtdrag",position:{x:st[0],y:st[1]}};Nt?Nt.emit(xe):rt.emit(xe),e.hoverData.cxtDragged=!0,(!e.hoverData.cxtOver||At!==e.hoverData.cxtOver)&&(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:Y,type:"cxtdragout",position:{x:st[0],y:st[1]}}),e.hoverData.cxtOver=At,At&&At.emit({originalEvent:Y,type:"cxtdragover",position:{x:st[0],y:st[1]}}))}}else if(e.hoverData.dragging){if(mt=!0,rt.panningEnabled()&&rt.userPanningEnabled()){var Se;if(e.hoverData.justStartedPan){var Ye=e.hoverData.mdownPos;Se={x:(st[0]-Ye[0])*ht,y:(st[1]-Ye[1])*ht},e.hoverData.justStartedPan=!1}else Se={x:yt[0]*ht,y:yt[1]*ht};rt.panBy(Se),rt.emit("dragpan"),e.hoverData.dragged=!0}st=e.projectIntoViewport(Y.clientX,Y.clientY)}else if(Ct[4]==1&&(Nt==null||Nt.pannable())){if(zt){if(!e.hoverData.dragging&&rt.boxSelectionEnabled()&&(me||!rt.panningEnabled()||!rt.userPanningEnabled()))ne();else if(!e.hoverData.selecting&&rt.panningEnabled()&&rt.userPanningEnabled()){var fe=a(Nt,e.hoverData.downs);fe&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,Ct[4]=0,e.data.bgActivePosistion=m1(Tt),e.redrawHint("select",!0),e.redraw())}Nt&&Nt.pannable()&&Nt.active()&&Nt.unactivate()}}else{if(Nt&&Nt.pannable()&&Nt.active()&&Nt.unactivate(),(!Nt||!Nt.grabbed())&&At!=$t&&($t&&n($t,["mouseout","tapdragout"],Y,{x:st[0],y:st[1]}),At&&n(At,["mouseover","tapdragover"],Y,{x:st[0],y:st[1]}),e.hoverData.last=At),Nt)if(zt){if(rt.boxSelectionEnabled()&&me)Nt&&Nt.grabbed()&&(v(Ut),Nt.emit("freeon"),Ut.emit("free"),e.dragData.didDrag&&(Nt.emit("dragfreeon"),Ut.emit("dragfree"))),ne();else if(Nt&&Nt.grabbed()&&e.nodeIsDraggable(Nt)){var ee=!e.dragData.didDrag;ee&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||g(Ut,{inDragLayer:!0});var pe={x:0,y:0};if(be(yt[0])&&be(yt[1])&&(pe.x+=yt[0],pe.y+=yt[1],ee)){var Me=e.hoverData.dragDelta;Me&&be(Me[0])&&be(Me[1])&&(pe.x+=Me[0],pe.y+=Me[1])}e.hoverData.draggingEles=!0,Ut.silentShift(pe).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else Ht();mt=!0}if(Ct[2]=st[0],Ct[3]=st[1],mt)return Y.stopPropagation&&Y.stopPropagation(),Y.preventDefault&&Y.preventDefault(),!1}},"mousemoveHandler"),!1);var M,N,k;e.registerBinding(t,"mouseup",o(function(Y){if(!(e.hoverData.which===1&&Y.which!==1&&e.hoverData.capture)){var ft=e.hoverData.capture;if(ft){e.hoverData.capture=!1;var mt=e.cy,rt=e.projectIntoViewport(Y.clientX,Y.clientY),ht=e.selection,nt=e.findNearestElement(rt[0],rt[1],!0,!1),st=e.dragData.possibleDragElements,Tt=e.hoverData.down,kt=i(Y);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,Tt&&Tt.unactivate(),e.hoverData.which===3){var Ct={originalEvent:Y,type:"cxttapend",position:{x:rt[0],y:rt[1]}};if(Tt?Tt.emit(Ct):mt.emit(Ct),!e.hoverData.cxtDragged){var At={originalEvent:Y,type:"cxttap",position:{x:rt[0],y:rt[1]}};Tt?Tt.emit(At):mt.emit(At)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(e.hoverData.which===1){if(n(nt,["mouseup","tapend","vmouseup"],Y,{x:rt[0],y:rt[1]}),!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag&&(n(Tt,["click","tap","vclick"],Y,{x:rt[0],y:rt[1]}),N=!1,Y.timeStamp-k<=mt.multiClickDebounceTime()?(M&&clearTimeout(M),N=!0,k=null,n(Tt,["dblclick","dbltap","vdblclick"],Y,{x:rt[0],y:rt[1]})):(M=setTimeout(function(){N||n(Tt,["oneclick","onetap","voneclick"],Y,{x:rt[0],y:rt[1]})},mt.multiClickDebounceTime()),k=Y.timeStamp)),Tt==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!i(Y)&&(mt.$(r).unselect(["tapunselect"]),st.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=st=mt.collection()),nt==Tt&&!e.dragData.didDrag&&!e.hoverData.selecting&&nt!=null&&nt._private.selectable&&(e.hoverData.dragging||(mt.selectionType()==="additive"||kt?nt.selected()?nt.unselect(["tapunselect"]):nt.select(["tapselect"]):kt||(mt.$(r).unmerge(nt).unselect(["tapunselect"]),nt.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var $t=mt.collection(e.getAllInBox(ht[0],ht[1],ht[2],ht[3]));e.redrawHint("select",!0),$t.length>0&&e.redrawHint("eles",!0),mt.emit({type:"boxend",originalEvent:Y,position:{x:rt[0],y:rt[1]}});var Nt=o(function(zt){return zt.selectable()&&!zt.selected()},"eleWouldBeSelected");mt.selectionType()==="additive"||kt||mt.$(r).unmerge($t).unselect(),$t.emit("box").stdFilter(Nt).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!ht[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var yt=Tt&&Tt.grabbed();v(st),yt&&(Tt.emit("freeon"),st.emit("free"),e.dragData.didDrag&&(Tt.emit("dragfreeon"),st.emit("dragfree")))}}ht[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}},"mouseupHandler"),!1);var I=o(function(Y){if(!e.scrollingPage){var ft=e.cy,mt=ft.zoom(),rt=ft.pan(),ht=e.projectIntoViewport(Y.clientX,Y.clientY),nt=[ht[0]*mt+rt.x,ht[1]*mt+rt.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||A()){Y.preventDefault();return}if(ft.panningEnabled()&&ft.userPanningEnabled()&&ft.zoomingEnabled()&&ft.userZoomingEnabled()){Y.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout(function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()},150);var st;Y.deltaY!=null?st=Y.deltaY/-250:Y.wheelDeltaY!=null?st=Y.wheelDeltaY/1e3:st=Y.wheelDelta/1e3,st=st*e.wheelSensitivity;var Tt=Y.deltaMode===1;Tt&&(st*=33);var kt=ft.zoom()*Math.pow(10,st);Y.type==="gesturechange"&&(kt=e.gestureStartZoom*Y.scale),ft.zoom({level:kt,renderedPosition:{x:nt[0],y:nt[1]}}),ft.emit(Y.type==="gesturechange"?"pinchzoom":"scrollzoom")}}},"wheelHandler");e.registerBinding(e.container,"wheel",I,!0),e.registerBinding(t,"scroll",o(function(Y){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout(function(){e.scrollingPage=!1},250)},"scrollHandler"),!0),e.registerBinding(e.container,"gesturestart",o(function(Y){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||Y.preventDefault()},"gestureStartHandler"),!0),e.registerBinding(e.container,"gesturechange",function(dt){e.hasTouchStarted||I(dt)},!0),e.registerBinding(e.container,"mouseout",o(function(Y){var ft=e.projectIntoViewport(Y.clientX,Y.clientY);e.cy.emit({originalEvent:Y,type:"mouseout",position:{x:ft[0],y:ft[1]}})},"mouseOutHandler"),!1),e.registerBinding(e.container,"mouseover",o(function(Y){var ft=e.projectIntoViewport(Y.clientX,Y.clientY);e.cy.emit({originalEvent:Y,type:"mouseover",position:{x:ft[0],y:ft[1]}})},"mouseOverHandler"),!1);var C,O,D,P,F,B,G,z,W,Q,j,at,X,J=o(function(Y,ft,mt,rt){return Math.sqrt((mt-Y)*(mt-Y)+(rt-ft)*(rt-ft))},"distance"),Z=o(function(Y,ft,mt,rt){return(mt-Y)*(mt-Y)+(rt-ft)*(rt-ft)},"distanceSq"),H;e.registerBinding(e.container,"touchstart",H=o(function(Y){if(e.hasTouchStarted=!0,!!L(Y)){b(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var ft=e.cy,mt=e.touchData.now,rt=e.touchData.earlier;if(Y.touches[0]){var ht=e.projectIntoViewport(Y.touches[0].clientX,Y.touches[0].clientY);mt[0]=ht[0],mt[1]=ht[1]}if(Y.touches[1]){var ht=e.projectIntoViewport(Y.touches[1].clientX,Y.touches[1].clientY);mt[2]=ht[0],mt[3]=ht[1]}if(Y.touches[2]){var ht=e.projectIntoViewport(Y.touches[2].clientX,Y.touches[2].clientY);mt[4]=ht[0],mt[5]=ht[1]}if(Y.touches[1]){e.touchData.singleTouchMoved=!0,v(e.dragData.touchDragEles);var nt=e.findContainerClientCoords();W=nt[0],Q=nt[1],j=nt[2],at=nt[3],C=Y.touches[0].clientX-W,O=Y.touches[0].clientY-Q,D=Y.touches[1].clientX-W,P=Y.touches[1].clientY-Q,X=0<=C&&C<=j&&0<=D&&D<=j&&0<=O&&O<=at&&0<=P&&P<=at;var st=ft.pan(),Tt=ft.zoom();F=J(C,O,D,P),B=Z(C,O,D,P),G=[(C+D)/2,(O+P)/2],z=[(G[0]-st.x)/Tt,(G[1]-st.y)/Tt];var kt=200,Ct=kt*kt;if(B=1){for(var ke=e.touchData.startPosition=[null,null,null,null,null,null],Ee=0;Ee=e.touchTapThreshold2}if(ft&&e.touchData.cxt){Y.preventDefault();var ke=Y.touches[0].clientX-W,Ee=Y.touches[0].clientY-Q,le=Y.touches[1].clientX-W,Zt=Y.touches[1].clientY-Q,me=Z(ke,Ee,le,Zt),Ht=me/B,ne=150,xe=ne*ne,Se=1.5,Ye=Se*Se;if(Ht>=Ye||me>=xe){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var fe={originalEvent:Y,type:"cxttapend",position:{x:ht[0],y:ht[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(fe),e.touchData.start=null):rt.emit(fe)}}if(ft&&e.touchData.cxt){var fe={originalEvent:Y,type:"cxtdrag",position:{x:ht[0],y:ht[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(fe):rt.emit(fe),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var ee=e.findNearestElement(ht[0],ht[1],!0,!0);(!e.touchData.cxtOver||ee!==e.touchData.cxtOver)&&(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:Y,type:"cxtdragout",position:{x:ht[0],y:ht[1]}}),e.touchData.cxtOver=ee,ee&&ee.emit({originalEvent:Y,type:"cxtdragover",position:{x:ht[0],y:ht[1]}}))}else if(ft&&Y.touches[2]&&rt.boxSelectionEnabled())Y.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||rt.emit({originalEvent:Y,type:"boxstart",position:{x:ht[0],y:ht[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,mt[4]=1,!mt||mt.length===0||mt[0]===void 0?(mt[0]=(ht[0]+ht[2]+ht[4])/3,mt[1]=(ht[1]+ht[3]+ht[5])/3,mt[2]=(ht[0]+ht[2]+ht[4])/3+1,mt[3]=(ht[1]+ht[3]+ht[5])/3+1):(mt[2]=(ht[0]+ht[2]+ht[4])/3,mt[3]=(ht[1]+ht[3]+ht[5])/3),e.redrawHint("select",!0),e.redraw();else if(ft&&Y.touches[1]&&!e.touchData.didSelect&&rt.zoomingEnabled()&&rt.panningEnabled()&&rt.userZoomingEnabled()&&rt.userPanningEnabled()){Y.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var pe=e.dragData.touchDragEles;if(pe){e.redrawHint("drag",!0);for(var Me=0;Me0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},"touchmoveHandler"),!1);var K;e.registerBinding(t,"touchcancel",K=o(function(Y){var ft=e.touchData.start;e.touchData.capture=!1,ft&&ft.unactivate()},"touchcancelHandler"));var ot,ct,ut,et;if(e.registerBinding(t,"touchend",ot=o(function(Y){var ft=e.touchData.start,mt=e.touchData.capture;if(mt)Y.touches.length===0&&(e.touchData.capture=!1),Y.preventDefault();else return;var rt=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var ht=e.cy,nt=ht.zoom(),st=e.touchData.now,Tt=e.touchData.earlier;if(Y.touches[0]){var kt=e.projectIntoViewport(Y.touches[0].clientX,Y.touches[0].clientY);st[0]=kt[0],st[1]=kt[1]}if(Y.touches[1]){var kt=e.projectIntoViewport(Y.touches[1].clientX,Y.touches[1].clientY);st[2]=kt[0],st[3]=kt[1]}if(Y.touches[2]){var kt=e.projectIntoViewport(Y.touches[2].clientX,Y.touches[2].clientY);st[4]=kt[0],st[5]=kt[1]}ft&&ft.unactivate();var Ct;if(e.touchData.cxt){if(Ct={originalEvent:Y,type:"cxttapend",position:{x:st[0],y:st[1]}},ft?ft.emit(Ct):ht.emit(Ct),!e.touchData.cxtDragged){var At={originalEvent:Y,type:"cxttap",position:{x:st[0],y:st[1]}};ft?ft.emit(At):ht.emit(At)}e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,e.redraw();return}if(!Y.touches[2]&&ht.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var $t=ht.collection(e.getAllInBox(rt[0],rt[1],rt[2],rt[3]));rt[0]=void 0,rt[1]=void 0,rt[2]=void 0,rt[3]=void 0,rt[4]=0,e.redrawHint("select",!0),ht.emit({type:"boxend",originalEvent:Y,position:{x:st[0],y:st[1]}});var Nt=o(function(xe){return xe.selectable()&&!xe.selected()},"eleWouldBeSelected");$t.emit("box").stdFilter(Nt).select().emit("boxselect"),$t.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(ft?.unactivate(),Y.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(!Y.touches[1]){if(!Y.touches[0]){if(!Y.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var yt=e.dragData.touchDragEles;if(ft!=null){var Ut=ft._private.grabbed;v(yt),e.redrawHint("drag",!0),e.redrawHint("eles",!0),Ut&&(ft.emit("freeon"),yt.emit("free"),e.dragData.didDrag&&(ft.emit("dragfreeon"),yt.emit("dragfree"))),n(ft,["touchend","tapend","vmouseup","tapdragout"],Y,{x:st[0],y:st[1]}),ft.unactivate(),e.touchData.start=null}else{var zt=e.findNearestElement(st[0],st[1],!0,!0);n(zt,["touchend","tapend","vmouseup","tapdragout"],Y,{x:st[0],y:st[1]})}var ae=e.touchData.startPosition[0]-st[0],ke=ae*ae,Ee=e.touchData.startPosition[1]-st[1],le=Ee*Ee,Zt=ke+le,me=Zt*nt*nt;e.touchData.singleTouchMoved||(ft||ht.$(":selected").unselect(["tapunselect"]),n(ft,["tap","vclick"],Y,{x:st[0],y:st[1]}),ct=!1,Y.timeStamp-et<=ht.multiClickDebounceTime()?(ut&&clearTimeout(ut),ct=!0,et=null,n(ft,["dbltap","vdblclick"],Y,{x:st[0],y:st[1]})):(ut=setTimeout(function(){ct||n(ft,["onetap","voneclick"],Y,{x:st[0],y:st[1]})},ht.multiClickDebounceTime()),et=Y.timeStamp)),ft!=null&&!e.dragData.didDrag&&ft._private.selectable&&me"u"){var Mt=[],it=o(function(Y){return{clientX:Y.clientX,clientY:Y.clientY,force:1,identifier:Y.pointerId,pageX:Y.pageX,pageY:Y.pageY,radiusX:Y.width/2,radiusY:Y.height/2,screenX:Y.screenX,screenY:Y.screenY,target:Y.target}},"makeTouch"),wt=o(function(Y){return{event:Y,touch:it(Y)}},"makePointer"),Ot=o(function(Y){Mt.push(wt(Y))},"addPointer"),St=o(function(Y){for(var ft=0;ft0)return W[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:a1t(a,s,t,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(t,r,n,i,a,s,l,u){u=u==="auto"?Z0(i,a):u;var h=2*u;if(rh(t,r,this.points,s,l,i,a-h,[0,-1],n)||rh(t,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(Ws(t,r,p)||X0(t,r,h,h,s+i/2-u,l+a/2-u,n)||X0(t,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};ih.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",fs(3,0)),this.generateRoundPolygon("round-triangle",fs(3,0)),this.generatePolygon("rectangle",fs(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",fs(5,0)),this.generateRoundPolygon("round-pentagon",fs(5,0)),this.generatePolygon("hexagon",fs(6,0)),this.generateRoundPolygon("round-hexagon",fs(6,0)),this.generatePolygon("heptagon",fs(7,0)),this.generateRoundPolygon("round-heptagon",fs(7,0)),this.generatePolygon("octagon",fs(8,0)),this.generateRoundPolygon("round-octagon",fs(8,0));var n=new Array(20);{var i=VB(5,0),a=VB(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=t.deqFastCost*S)break}else if(h){if(b>=t.deqCost*m||b>=t.deqAvgCost*p)break}else if(w>=t.deqNoDrawCost*zB)break;var T=t.deq(n,v,y);if(T.length>0)for(var E=0;E0&&(t.onDeqd(n,g),!h&&t.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=t.priority||cF;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},lee=function(){function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:vC;iF(this,e),this.idsByKey=new Qc,this.keyForId=new Qc,this.cachesByLvl=new Qc,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=r}return o(e,"ElementTextureCacheLookup"),aF(e,[{key:"getIdsFor",value:o(function(r){r==null&&fi("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new C1,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Qc,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}]),e}(),Agt=25,sC=50,mC=-4,tF=3,cee=7.99,uee=8,hee=1024,fee=1024,dee=1024,pee=.2,mee=.8,gee=10,yee=.15,vee=.1,xee=.9,bee=.9,wee=100,Tee=1,g1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},kee=Da({getKey:null,doesEleInvalidateKey:vC,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Qgt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),ub=o(function(t,r){var n=this;n.renderer=t,n.onDequeues=[];var i=kee(r);ir(n,i),n.lookup=new lee(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),Ki=ub.prototype;Ki.reasons=g1;Ki.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]};Ki.getRetiredTextureQueue=function(e){var t=this,r=t.eleImgCaches.retired=t.eleImgCaches.retired||{},n=r[e]=r[e]||[];return n};Ki.getElementQueue=function(){var e=this,t=e.eleCacheQueue=e.eleCacheQueue||new Ab(function(r,n){return n.reqs-r.reqs});return t};Ki.getElementKeyToQueue=function(){var e=this,t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t};Ki.getElement=function(e,t,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(n==null&&(n=Math.ceil(hF(l*r))),n=cee||n>tF)return null;var h=Math.pow(2,n),f=t.h*h,d=t.w*h,p=s.eleTextBiggerThanMin(e,h);if(!this.isVisible(e,p))return null;var m=u.get(e,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=Agt?g=Agt:f<=sC?g=sC:g=Math.ceil(f/sC)*sC,f>dee||d>fee)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;N--)L=a.getElement(e,t,r,N,g1.downscale);M()}else return a.queueElement(e,E.level-1),E;else{var k;if(!w&&!S&&!T)for(var I=n-1;I>=mC;I--){var C=u.get(e,I);if(C){k=C;break}}if(b(k))return a.queueElement(e,n),k;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,e,t,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+uee),v.eleCaches.push(m),u.set(e,n,m),a.checkTextureFullness(v),m};Ki.invalidateElements=function(e){for(var t=0;t=pee*e.width&&this.retireTexture(e)};Ki.checkTextureFullness=function(e){var t=this,r=t.getTextureQueue(e.height);e.usedWidth/e.width>mee&&e.fullnessChecks>=gee?Nf(r,e):e.fullnessChecks++};Ki.retireTexture=function(e){var t=this,r=e.height,n=t.getTextureQueue(r),i=this.lookup;Nf(n,e),e.retired=!0;for(var a=e.eleCaches,s=0;s=t)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,uF(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Nf(i,s),n.push(s),s}};Ki.queueElement=function(e,t){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(e),s=i[a];if(s)s.level=Math.max(s.level,t),s.eles.merge(e),s.reqs++,n.updateItem(s);else{var l={eles:e.spawn().merge(e),level:t,reqs:1,key:a};n.push(l),i[a]=l}};Ki.dequeue=function(e){for(var t=this,r=t.getElementQueue(),n=t.getElementKeyToQueue(),i=[],a=t.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=t.getBoundingBox(h);t.getElement(h,d,e,l.level,g1.dequeue)}return i};Ki.removeFromQueue=function(e){var t=this,r=t.getElementQueue(),n=t.getElementKeyToQueue(),i=this.getKey(e),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=lF,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(e))};Ki.onDequeue=function(e){this.onDequeues.push(e)};Ki.offDequeue=function(e){Nf(this.onDequeues,e)};Ki.setupDequeueing=syt.setupDequeueing({deqRedrawThreshold:wee,deqCost:yee,deqAvgCost:vee,deqNoDrawCost:xee,deqFastCost:bee,deq:o(function(t,r,n){return t.dequeue(r,n)},"deq"),onDeqd:o(function(t,r){for(var n=0;n=Cee||r>SC)return null}n.validateLayersElesOrdering(r,e);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,e),m,g=o(function(){var M=o(function(O){if(n.validateLayersElesOrdering(O,e),n.levelIsComplete(O,e))return m=u[O],!0},"canUseAsTmpLvl"),N=o(function(O){if(!m)for(var D=r+O;fb<=D&&D<=SC&&!M(D);D+=O);},"checkLvls");N(1),N(-1);for(var k=f.length-1;k>=0;k--){var I=f[k];I.invalid&&Nf(f,I)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=Ys();for(var M=0;MMee)return null;var I=n.makeLayer(d,r);if(N!=null){var C=f.indexOf(N)+1;f.splice(C,0,I)}else(M.insert===void 0||M.insert)&&f.unshift(I);return I},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=e.length/Eee,w=!l,S=0;S=b||!i1t(x.bb,T.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||w?n.queueLayer(x,T):n.drawEleInLayer(x,T,r,t),x.eles.push(T),_[r]=x}return m||(w?null:f)};Ra.getEleLevelForLayerLevel=function(e,t){return e};Ra.drawEleInLayer=function(e,t,r,n){var i=this,a=this.renderer,s=e.context,l=t.boundingBox();l.w===0||l.h===0||!t.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,t,null,null,r,Iee),a.setImgSmoothing(s,!0))};Ra.levelIsComplete=function(e,t){var r=this,n=r.layersByLevel[e];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===t.length};Ra.validateLayersElesOrdering=function(e,t){var r=this.layersByLevel[e];if(r)for(var n=0;n0){t=!0;break}}return t};Ra.invalidateElements=function(e){var t=this;e.length!==0&&(t.lastInvalidationTime=eh(),!(e.length===0||!t.haveLayers())&&t.updateElementsInLayers(e,o(function(n,i,a){t.invalidateLayer(n)},"invalAssocLayers")))};Ra.invalidateLayer=function(e){if(this.lastInvalidationTime=eh(),!e.invalid){var t=e.level,r=e.eles,n=this.layersByLevel[t];Nf(n,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=t._private.rscratch;if(!(a&&!t.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,e.translate(-u.x1,-u.y1));var h=a?t.pstyle("opacity").value:1,f=a?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,p=t.pstyle("line-style").value,m=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,y=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,x=h*f,b=h*f,w=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(e,t,O),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=m,e.lineCap=g,s.eleStrokeStyle(e,t,O),s.drawEdgePath(t,e,l.allpts,p),e.lineCap="butt")},"drawLine"),S=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(e.lineWidth=m+y,e.lineCap=g,y>0)s.colorStrokeStyle(e,v[0],v[1],v[2],O);else{e.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(t,e,l.allpts):(s.drawEdgePath(t,e,l.allpts,p),e.lineCap="butt")},"drawLineOutline"),T=o(function(){i&&s.drawEdgeOverlay(e,t)},"drawOverlay"),E=o(function(){i&&s.drawEdgeUnderlay(e,t)},"drawUnderlay"),_=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(e,t,O)},"drawArrows"),A=o(function(){s.drawElementText(e,t,null,n)},"drawText");e.lineJoin="round";var L=t.pstyle("ghost").value==="yes";if(L){var M=t.pstyle("ghost-offset-x").pfValue,N=t.pstyle("ghost-offset-y").pfValue,k=t.pstyle("ghost-opacity").value,I=x*k;e.translate(M,N),w(I),_(I),e.translate(-M,-N)}else S();E(),w(),_(),T(),A(),r&&e.translate(u.x1,u.y1)}};cyt=o(function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(t,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(t,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(t,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");ah.drawEdgeOverlay=cyt("overlay");ah.drawEdgeUnderlay=cyt("underlay");ah.drawEdgePath=function(e,t,r,n){var i=e._private.rscratch,a=t,s,l=!1,u=this.usePaths(),h=e.pstyle("line-dash-pattern").pfValue,f=e.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=t=i.pathCache,l=!0):(s=t=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(t))return}else if(n===!1)return;if(t.isNode()){var l=t.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(t);e.textAlign=u,e.textBaseline="bottom"}else{var h=t.element()._private.rscratch.badLine,f=t.pstyle("label"),d=t.pstyle("source-label"),p=t.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;e.textAlign="center",e.textBaseline="bottom"}var m=!r,g;r&&(g=r,e.translate(-g.x1,-g.y1)),i==null?(s.drawText(e,t,null,m,a),t.isEdge()&&(s.drawText(e,t,"source",m,a),s.drawText(e,t,"target",m,a))):s.drawText(e,t,i,m,a),r&&e.translate(g.x1,g.y1)};np.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,s=t.pstyle("font-weight").strValue,l=r?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,u=t.pstyle("text-outline-opacity").value*l,h=t.pstyle("color").value,f=t.pstyle("text-outline-color").value;e.font=n+" "+s+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,h[0],h[1],h[2],l),this.colorStrokeStyle(e,f[0],f[1],f[2],u)};o(GB,"roundRect");np.getTextAngle=function(e,t){var r,n=e._private,i=n.rscratch,a=t?t+"-":"",s=e.pstyle(a+"text-rotation"),l=jl(i,"labelAngle",t);return s.strValue==="autorotate"?r=e.isEdge()?l:0:s.strValue==="none"?r=0:r=s.pfValue,r};np.drawText=function(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=t._private,s=a.rscratch,l=i?t.effectiveOpacity():1;if(!(i&&(l===0||t.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=jl(s,"labelX",r),h=jl(s,"labelY",r),f,d,p=this.getLabelText(t,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(e,t,i);var m=r?r+"-":"",g=jl(s,"labelWidth",r),y=jl(s,"labelHeight",r),v=t.pstyle(m+"text-margin-x").pfValue,x=t.pstyle(m+"text-margin-y").pfValue,b=t.isEdge(),w=t.pstyle("text-halign").value,S=t.pstyle("text-valign").value;b&&(w="center",S="center"),u+=v,h+=x;var T;switch(n?T=this.getTextAngle(t,r):T=0,T!==0&&(f=u,d=h,e.translate(f,d),e.rotate(T),u=0,h=0),S){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var E=t.pstyle("text-background-opacity").value,_=t.pstyle("text-border-opacity").value,A=t.pstyle("text-border-width").pfValue,L=t.pstyle("text-background-padding").pfValue,M=t.pstyle("text-background-shape").strValue,N=M.indexOf("round")===0,k=2;if(E>0||A>0&&_>0){var I=u-L;switch(w){case"left":I-=g;break;case"center":I-=g/2;break}var C=h-y-L,O=g+2*L,D=y+2*L;if(E>0){var P=e.fillStyle,F=t.pstyle("text-background-color").value;e.fillStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*l+")",N?GB(e,I,C,O,D,k):e.fillRect(I,C,O,D),e.fillStyle=P}if(A>0&&_>0){var B=e.strokeStyle,G=e.lineWidth,z=t.pstyle("text-border-color").value,W=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+z[0]+","+z[1]+","+z[2]+","+_*l+")",e.lineWidth=A,e.setLineDash)switch(W){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=A/4,e.setLineDash([]);break;case"solid":e.setLineDash([]);break}if(N?GB(e,I,C,O,D,k,"stroke"):e.strokeRect(I,C,O,D),W==="double"){var Q=A/2;N?GB(e,I+Q,C+Q,O-Q*2,D-Q*2,k,"stroke"):e.strokeRect(I+Q,C+Q,O-Q*2,D-Q*2)}e.setLineDash&&e.setLineDash([]),e.lineWidth=G,e.strokeStyle=B}}var j=2*t.pstyle("text-outline-width").pfValue;if(j>0&&(e.lineWidth=j),t.pstyle("text-wrap").value==="wrap"){var at=jl(s,"labelWrapCachedLines",r),X=jl(s,"labelLineHeight",r),J=g/2,Z=this.getLabelJustification(t);switch(Z==="auto"||(w==="left"?Z==="left"?u+=-g:Z==="center"&&(u+=-J):w==="center"?Z==="left"?u+=-J:Z==="right"&&(u+=J):w==="right"&&(Z==="center"?u+=J:Z==="right"&&(u+=g))),S){case"top":h-=(at.length-1)*X;break;case"center":case"bottom":h-=(at.length-1)*X;break}for(var H=0;H0&&e.strokeText(at[H],u,h),e.fillText(at[H],u,h),h+=X}else j>0&&e.strokeText(p,u,h),e.fillText(p,u,h);T!==0&&(e.rotate(-T),e.translate(-f,-d))}}};I1={};I1.drawNode=function(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=t._private,f=h.rscratch,d=t.position();if(!(!be(d.x)||!be(d.y))&&!(a&&!t.visible())){var p=a?t.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=t.padding();l=t.width()+2*v,u=t.height()+2*v;var x;r&&(x=r,e.translate(-x.x1,-x.y1));for(var b=t.pstyle("background-image"),w=b.value,S=new Array(w.length),T=new Array(w.length),E=0,_=0;_0&&arguments[0]!==void 0?arguments[0]:I;s.eleFillStyle(e,t,nt)},"setupShapeColor"),H=o(function(){var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;s.colorStrokeStyle(e,C[0],C[1],C[2],nt)},"setupBorderColor"),q=o(function(){var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:at;s.colorStrokeStyle(e,Q[0],Q[1],Q[2],nt)},"setupOutlineColor"),K=o(function(nt,st,Tt,kt){var Ct=s.nodePathCache=s.nodePathCache||[],At=Kgt(Tt==="polygon"?Tt+","+kt.join(","):Tt,""+st,""+nt,""+J),$t=Ct[At],Nt,yt=!1;return $t!=null?(Nt=$t,yt=!0,f.pathCache=Nt):(Nt=new Path2D,Ct[At]=f.pathCache=Nt),{path:Nt,cacheHit:yt}},"getPath"),ot=t.pstyle("shape").strValue,ct=t.pstyle("shape-polygon-points").pfValue;if(m){e.translate(d.x,d.y);var ut=K(l,u,ot,ct);g=ut.path,y=ut.cacheHit}var et=o(function(){if(!y){var nt=d;m&&(nt={x:0,y:0}),s.nodeShapes[s.getNodeShape(t)].draw(g||e,nt.x,nt.y,l,u,J,f)}m?e.fill(g):e.fill()},"drawShape"),Mt=o(function(){for(var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,st=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Tt=h.backgrounding,kt=0,Ct=0;Ct0&&arguments[0]!==void 0?arguments[0]:!1,st=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(t)&&(s.drawPie(e,t,st),nt&&(m||s.nodeShapes[s.getNodeShape(t)].draw(e,d.x,d.y,l,u,J,f)))},"drawPie"),wt=o(function(){var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,st=(N>0?N:-N)*nt,Tt=N>0?0:255;N!==0&&(s.colorFillStyle(e,Tt,Tt,Tt,st),m?e.fill(g):e.fill())},"darken"),Ot=o(function(){if(k>0){if(e.lineWidth=k,e.lineCap=P,e.lineJoin=D,e.setLineDash)switch(O){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(B),e.lineDashOffset=G;break;case"solid":case"double":e.setLineDash([]);break}if(F!=="center"){if(e.save(),e.lineWidth*=2,F==="inside")m?e.clip(g):e.clip();else{var nt=new Path2D;nt.rect(-l/2-k,-u/2-k,l+2*k,u+2*k),nt.addPath(g),e.clip(nt,"evenodd")}m?e.stroke(g):e.stroke(),e.restore()}else m?e.stroke(g):e.stroke();if(O==="double"){e.lineWidth=k/3;var st=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",m?e.stroke(g):e.stroke(),e.globalCompositeOperation=st}e.setLineDash&&e.setLineDash([])}},"drawBorder"),St=o(function(){if(W>0){if(e.lineWidth=W,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}var nt=d;m&&(nt={x:0,y:0});var st=s.getNodeShape(t),Tt=k;F==="inside"&&(Tt=0),F==="outside"&&(Tt*=2);var kt=(l+Tt+(W+X))/l,Ct=(u+Tt+(W+X))/u,At=l*kt,$t=u*Ct,Nt=s.nodeShapes[st].points,yt;if(m){var Ut=K(At,$t,st,Nt);yt=Ut.path}if(st==="ellipse")s.drawEllipsePath(yt||e,nt.x,nt.y,At,$t);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(st)){var zt=0,ae=0,ke=0;st==="round-diamond"?zt=(Tt+X+W)*1.4:st==="round-heptagon"?(zt=(Tt+X+W)*1.075,ke=-(Tt/2+X+W)/35):st==="round-hexagon"?zt=(Tt+X+W)*1.12:st==="round-pentagon"?(zt=(Tt+X+W)*1.13,ke=-(Tt/2+X+W)/15):st==="round-tag"?(zt=(Tt+X+W)*1.12,ae=(Tt/2+W+X)*.07):st==="round-triangle"&&(zt=(Tt+X+W)*(Math.PI/2),ke=-(Tt+X/2+W)/Math.PI),zt!==0&&(kt=(l+zt)/l,At=l*kt,["round-hexagon","round-tag"].includes(st)||(Ct=(u+zt)/u,$t=u*Ct)),J=J==="auto"?o1t(At,$t):J;for(var Ee=At/2,le=$t/2,Zt=J+(Tt+W+X)/2,me=new Array(Nt.length/2),Ht=new Array(Nt.length/2),ne=0;ne0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");I1.drawNodeOverlay=uyt("overlay");I1.drawNodeUnderlay=uyt("underlay");I1.hasPie=function(e){return e=e[0],e._private.hasPie};I1.drawPie=function(e,t,r,n){t=t[0],n=n||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),s=n.x,l=n.y,u=t.width(),h=t.height(),f=Math.min(u,h)/2,d=0,p=this.usePaths();p&&(s=0,l=0),a.units==="%"?f=f*a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2);for(var m=1;m<=i.pieBackgroundN;m++){var g=t.pstyle("pie-"+m+"-background-size").value,y=t.pstyle("pie-"+m+"-background-color").value,v=t.pstyle("pie-"+m+"-background-opacity").value*r,x=g/100;x+d>1&&(x=1-d);var b=1.5*Math.PI+2*Math.PI*d,w=2*Math.PI*x,S=b+w;g===0||d>=1||d+x>1||(e.beginPath(),e.moveTo(s,l),e.arc(s,l,f,b,S),e.closePath(),this.colorFillStyle(e,y[0],y[1],y[2],v),e.fill(),d+=x)}};To={},Wee=100;To.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var t=this.cy.window(),r=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/r};To.paintCache=function(e){for(var t=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;is.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!d&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var b=u.style(),w=u.zoom(),S=i!==void 0?i:w,T=u.pan(),E={x:T.x,y:T.y},_={zoom:w,pan:{x:T.x,y:T.y}},A=s.prevViewport,L=A===void 0||_.zoom!==A.zoom||_.pan.x!==A.pan.x||_.pan.y!==A.pan.y;!L&&!(y&&!g)&&(s.motionBlurPxRatio=1),a&&(E=a),S*=l,E.x*=l,E.y*=l;var M=s.getCachedZSortedEles();function N(ut,et,Mt,it,wt){var Ot=ut.globalCompositeOperation;ut.globalCompositeOperation="destination-out",s.colorFillStyle(ut,255,255,255,s.motionBlurTransparency),ut.fillRect(et,Mt,it,wt),ut.globalCompositeOperation=Ot}o(N,"mbclear");function k(ut,et){var Mt,it,wt,Ot;!s.clearingMotionBlur&&(ut===h.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||ut===h.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(Mt={x:T.x*m,y:T.y*m},it=w*m,wt=s.canvasWidth*m,Ot=s.canvasHeight*m):(Mt=E,it=S,wt=s.canvasWidth,Ot=s.canvasHeight),ut.setTransform(1,0,0,1,0,0),et==="motionBlur"?N(ut,0,0,wt,Ot):!t&&(et===void 0||et)&&ut.clearRect(0,0,wt,Ot),r||(ut.translate(Mt.x,Mt.y),ut.scale(it,it)),a&&ut.translate(a.x,a.y),i&&ut.scale(i,i)}if(o(k,"setContextTransform"),d||(s.textureDrawLastFrame=!1),d){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=u.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var I=s.data.bufferContexts[s.TEXTURE_BUFFER];I.setTransform(1,0,0,1,0,0),I.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:I,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var _=s.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:s.canvasWidth,height:s.canvasHeight};_.mpan={x:(0-_.pan.x)/_.zoom,y:(0-_.pan.y)/_.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var C=h.contexts[s.NODE],O=s.textureCache.texture,_=s.textureCache.viewport;C.setTransform(1,0,0,1,0,0),p?N(C,0,0,_.width,_.height):C.clearRect(0,0,_.width,_.height);var D=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(C,D[0],D[1],D[2],P),C.fillRect(0,0,_.width,_.height);var w=u.zoom();k(C,!1),C.clearRect(_.mpan.x,_.mpan.y,_.width/_.zoom/l,_.height/_.zoom/l),C.drawImage(O,_.mpan.x,_.mpan.y,_.width/_.zoom/l,_.height/_.zoom/l)}else s.textureOnViewport&&!t&&(s.textureCache=null);var F=u.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),G=s.hideEdgesOnViewport&&B,z=[];if(z[s.NODE]=!f[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,z[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),z[s.DRAG]=!f[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,z[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||n||z[s.NODE]){var W=p&&!z[s.NODE]&&m!==1,C=t||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:h.contexts[s.NODE]),Q=p&&!W?"motionBlur":void 0;k(C,Q),G?s.drawCachedNodes(C,M.nondrag,l,F):s.drawLayeredElements(C,M.nondrag,l,F),s.debug&&s.drawDebugPoints(C,M.nondrag),!r&&!p&&(f[s.NODE]=!1)}if(!n&&(f[s.DRAG]||r||z[s.DRAG])){var W=p&&!z[s.DRAG]&&m!==1,C=t||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:h.contexts[s.DRAG]);k(C,p&&!W?"motionBlur":void 0),G?s.drawCachedNodes(C,M.drag,l,F):s.drawCachedElements(C,M.drag,l,F),s.debug&&s.drawDebugPoints(C,M.drag),!r&&!p&&(f[s.DRAG]=!1)}if(s.showFps||!n&&f[s.SELECT_BOX]&&!r){var C=t||h.contexts[s.SELECT_BOX];if(k(C),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),j=b.core("selection-box-border-width").value/w;C.lineWidth=j,C.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",C.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),j>0&&(C.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",C.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(h.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),at=h.bgActivePosistion;C.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",C.beginPath(),C.arc(at.x,at.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),C.fill()}var X=s.lastRedrawTime;if(s.showFps&&X){X=Math.round(X);var J=Math.round(1e3/X);C.setTransform(1,0,0,1,0,0),C.fillStyle="rgba(255, 0, 0, 0.75)",C.strokeStyle="rgba(255, 0, 0, 0.75)",C.lineWidth=1,C.fillText("1 frame = "+X+" ms = "+J+" fps",0,20);var Z=60;C.strokeRect(0,30,250,20),C.fillRect(0,30,250*Math.min(J/Z,1),20)}r||(f[s.SELECT_BOX]=!1)}if(p&&m!==1){var H=h.contexts[s.NODE],q=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],K=h.contexts[s.DRAG],ot=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ct=o(function(et,Mt,it){et.setTransform(1,0,0,1,0,0),it||!x?et.clearRect(0,0,s.canvasWidth,s.canvasHeight):N(et,0,0,s.canvasWidth,s.canvasHeight);var wt=m;et.drawImage(Mt,0,0,s.canvasWidth*wt,s.canvasHeight*wt,0,0,s.canvasWidth,s.canvasHeight)},"drawMotionBlur");(f[s.NODE]||z[s.NODE])&&(ct(H,q,z[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||z[s.DRAG])&&(ct(K,ot,z[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=_,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!d,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},Wee)),t||u.emit("render")};Bf={};Bf.drawPolygonPath=function(e,t,r,n,i,a){var s=n/2,l=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(e.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=t.pan(),v={x:y.x*h,y:y.y*h};h*=t.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}e.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=e.bg,m.rect(0,0,a,s),m.fill())}return p};o(Yee,"b64ToBlob");o(Igt,"b64UriToB64");o(fyt,"output");Nb.png=function(e){return fyt(e,this.bufferCanvasImage(e),"image/png")};Nb.jpg=function(e){return fyt(e,this.bufferCanvasImage(e),"image/jpeg")};dyt={};dyt.nodeShapeImpl=function(e,t,r,n,i,a,s,l){switch(e){case"ellipse":return this.drawEllipsePath(t,r,n,i,a);case"polygon":return this.drawPolygonPath(t,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(t,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,r,n,i,a,l);case"barrel":return this.drawBarrelPath(t,r,n,i,a)}};qee=pyt,Kr=pyt.prototype;Kr.CANVAS_LAYERS=3;Kr.SELECT_BOX=0;Kr.DRAG=1;Kr.NODE=2;Kr.BUFFER_COUNT=3;Kr.TEXTURE_BUFFER=0;Kr.MOTIONBLUR_BUFFER_NODE=1;Kr.MOTIONBLUR_BUFFER_DRAG=2;o(pyt,"CanvasRenderer");Kr.redrawHint=function(e,t){var r=this;switch(e){case"eles":r.data.canvasNeedsRedraw[Kr.NODE]=t;break;case"drag":r.data.canvasNeedsRedraw[Kr.DRAG]=t;break;case"select":r.data.canvasNeedsRedraw[Kr.SELECT_BOX]=t;break}};Xee=typeof Path2D<"u";Kr.path2dEnabled=function(e){if(e===void 0)return this.pathsEnabled;this.pathsEnabled=!!e};Kr.usePaths=function(){return Xee&&this.pathsEnabled};Kr.setImgSmoothing=function(e,t){e.imageSmoothingEnabled!=null?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)};Kr.getImgSmoothing=function(e){return e.imageSmoothingEnabled!=null?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled};Kr.makeOffscreenCanvas=function(e,t){var r;if((typeof OffscreenCanvas>"u"?"undefined":ji(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(e,t);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=e,r.height=t}return r};[lyt,tu,ah,AF,np,I1,To,Bf,Nb,dyt].forEach(function(e){ir(Kr,e)});jee=[{name:"null",impl:j1t},{name:"base",impl:ayt},{name:"canvas",impl:qee}],Kee=[{type:"layout",extensions:ree},{type:"renderer",extensions:jee}],myt={},gyt={};o(yyt,"setExtension");o(vyt,"getExtension");o(Qee,"setModule");o(Zee,"getModule");nF=o(function(){if(arguments.length===2)return vyt.apply(null,arguments);if(arguments.length===3)return yyt.apply(null,arguments);if(arguments.length===4)return Zee.apply(null,arguments);if(arguments.length===5)return Qee.apply(null,arguments);fi("Invalid extension access syntax")},"extension");kb.prototype.extension=nF;Kee.forEach(function(e){e.extensions.forEach(function(t){yyt(e.type,t.name,t.impl)})});xyt=o(function e(){if(!(this instanceof e))return new e;this.length=0},"Stylesheet"),ep=xyt.prototype;ep.instanceString=function(){return"stylesheet"};ep.selector=function(e){var t=this.length++;return this[t]={selector:e,properties:[]},this};ep.css=function(e,t){var r=this.length-1;if(Ke(e))this[r].properties.push({name:e,value:t});else if(Ur(e))for(var n=e,i=Object.keys(n),a=0;a{"use strict";o(function(t,r){typeof Mb=="object"&&typeof LF=="object"?LF.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Mb=="object"?Mb.layoutBase=r():t.layoutBase=r()},"webpackUniversalModuleDefinition")(Mb,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=e,r.c=t,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)}([function(e,t,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=s},function(e,t,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},e.exports=h},function(e,t,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),S=w.length,T=0;Tv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,S,T,E,_,A=this.nodes,L=A.length,M=0;Mw&&(y=w),vT&&(x=T),bw&&(y=w),vT&&(x=T),b=this.nodes.length){var L=0;v.forEach(function(M){M.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},e.exports=p},function(e,t,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):C===D&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===D?f>u?(l[2]=_,l[3]=A,I=!0):(l[2]=E,l[3]=T,I=!0):O===D&&(f>u?(l[2]=S,l[3]=T,I=!0):(l[2]=L,l[3]=A,I=!0)),k&&I)return!1;if(u>f?h>d?(P=this.getCardinalDirection(C,D,4),F=this.getCardinalDirection(O,D,2)):(P=this.getCardinalDirection(-C,D,3),F=this.getCardinalDirection(-O,D,1)):h>d?(P=this.getCardinalDirection(-C,D,1),F=this.getCardinalDirection(-O,D,3)):(P=this.getCardinalDirection(C,D,2),F=this.getCardinalDirection(O,D,4)),!k)switch(P){case 1:G=m,B=u+-w/D,l[0]=B,l[1]=G;break;case 2:B=x,G=h+b*D,l[0]=B,l[1]=G;break;case 3:G=v,B=u+w/D,l[0]=B,l[1]=G;break;case 4:B=y,G=h+-b*D,l[0]=B,l[1]=G;break}if(!I)switch(F){case 1:W=T,z=f+-N/D,l[2]=z,l[3]=W;break;case 2:z=L,W=d+M*D,l[2]=z,l[3]=W;break;case 3:W=A,z=f+N/D,l[2]=z,l[3]=W;break;case 4:z=_,W=d+-M*D,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,S=void 0,T=void 0,E=void 0,_=void 0,A=void 0,L=void 0;return w=p-f,T=h-d,_=d*f-h*p,S=v-g,E=m-y,A=y*g-m*v,L=w*E-S*T,L===0?null:(x=(T*A-E*_)/L,b=(S*_-w*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},e.exports=n},function(e,t,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,e.exports=n},function(e,t,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},e.exports=i},function(e,t,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var _=E.getEdges(),x=0;x<_.length;x++){var A=_[x].getOtherEnd(E);if(S.get(E)!=A)if(!b.has(A))w.push(A),S.set(A,E);else{g=!1;break}}}if(!g)m=[];else{var L=[].concat(n(b));m.push(L);for(var x=0;x-1&&T.splice(N,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(k){if(y.indexOf(k)<0){var I=v.get(k),C=I-1;C==1&&E.push(k),v.set(k,C)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},e.exports=p},function(e,t,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},e.exports=n},function(e,t,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},e.exports=i},function(e,t,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l}();e.exports=s},function(e,t,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(t,r){typeof Ib=="object"&&typeof RF=="object"?RF.exports=r(DF()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof Ib=="object"?Ib.coseBase=r(DF()):t.coseBase=r(t.layoutBase)},"webpackUniversalModuleDefinition")(Ib,function(e){return function(t){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=t,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)}([function(t,r){t.exports=e},function(t,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=a},function(t,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];t.exports=a},function(t,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];t.exports=a},function(t,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];t.exports=a},function(t,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(T);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),_=this.nodesWithGravity.filter(function(A){return E.has(A)});this.graphManager.setAllNodesToApplyGravitation(_),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},w.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var T=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(L){return T.has(L)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var _=!this.isTreeGrowing&&!this.isGrowthFinished,A=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(_,A),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},w.prototype.getPositionsData=function(){for(var T=this.graphManager.getAllNodes(),E={},_=0;_1){var k;for(k=0;kA&&(A=Math.floor(N.y)),M=Math.floor(N.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-N.x/2,d.WORLD_CENTER_Y-N.y/2))},w.radialLayout=function(T,E,_){var A=Math.max(this.maxDiagonalInTree(T),h.DEFAULT_RADIAL_SEPARATION);w.branchRadialLayout(E,null,0,359,0,A);var L=x.calculateBounds(T),M=new b;M.setDeviceOrgX(L.getMinX()),M.setDeviceOrgY(L.getMinY()),M.setWorldOrgX(_.x),M.setWorldOrgY(_.y);for(var N=0;N1;){var Q=W[0];W.splice(0,1);var j=P.indexOf(Q);j>=0&&P.splice(j,1),G--,F--}E!=null?z=(P.indexOf(W[0])+1)%G:z=0;for(var at=Math.abs(A-_)/F,X=z;B!=F;X=++X%G){var J=P[X].getOtherEnd(T);if(J!=E){var Z=(_+B*at)%360,H=(Z+at)%360;w.branchRadialLayout(J,T,Z,H,L+M,M),B++}}},w.maxDiagonalInTree=function(T){for(var E=y.MIN_VALUE,_=0;_E&&(E=L)}return E},w.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},w.prototype.groupZeroDegreeMembers=function(){var T=this,E={};this.memberGroups={},this.idToDummyNode={};for(var _=[],A=this.graphManager.getAllNodes(),L=0;L"u"&&(E[k]=[]),E[k]=E[k].concat(M)}Object.keys(E).forEach(function(I){if(E[I].length>1){var C="DummyCompound_"+I;T.memberGroups[C]=E[I];var O=E[I][0].getParent(),D=new l(T.graphManager);D.id=C,D.paddingLeft=O.paddingLeft||0,D.paddingRight=O.paddingRight||0,D.paddingBottom=O.paddingBottom||0,D.paddingTop=O.paddingTop||0,T.idToDummyNode[C]=D;var P=T.getGraphManager().add(T.newGraph(),D),F=O.getChild();F.add(D);for(var B=0;B=0;T--){var E=this.compoundOrder[T],_=E.id,A=E.paddingLeft,L=E.paddingTop;this.adjustLocations(this.tiledMemberPack[_],E.rect.x,E.rect.y,A,L)}},w.prototype.repopulateZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(_){var A=T.idToDummyNode[_],L=A.paddingLeft,M=A.paddingTop;T.adjustLocations(E[_],A.rect.x,A.rect.y,L,M)})},w.prototype.getToBeTiled=function(T){var E=T.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var _=T.getChild();if(_==null)return this.toBeTiled[E]=!1,!1;for(var A=_.getNodes(),L=0;L0)return this.toBeTiled[E]=!1,!1;if(M.getChild()==null){this.toBeTiled[M.id]=!1;continue}if(!this.getToBeTiled(M))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},w.prototype.getNodeDegree=function(T){for(var E=T.id,_=T.getEdges(),A=0,L=0;L<_.length;L++){var M=_[L];M.getSource().id!==M.getTarget().id&&(A=A+1)}return A},w.prototype.getNodeDegreeWithChildren=function(T){var E=this.getNodeDegree(T);if(T.getChild()==null)return E;for(var _=T.getChild().getNodes(),A=0;A<_.length;A++){var L=_[A];E+=this.getNodeDegreeWithChildren(L)}return E},w.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},w.prototype.fillCompexOrderByDFS=function(T){for(var E=0;EI&&(I=O.rect.height)}_+=I+T.verticalPadding}},w.prototype.tileCompoundMembers=function(T,E){var _=this;this.tiledMemberPack=[],Object.keys(T).forEach(function(A){var L=E[A];_.tiledMemberPack[A]=_.tileNodes(T[A],L.paddingLeft+L.paddingRight),L.rect.width=_.tiledMemberPack[A].width,L.rect.height=_.tiledMemberPack[A].height})},w.prototype.tileNodes=function(T,E){var _=h.TILING_PADDING_VERTICAL,A=h.TILING_PADDING_HORIZONTAL,L={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:_,horizontalPadding:A};T.sort(function(k,I){return k.rect.width*k.rect.height>I.rect.width*I.rect.height?-1:k.rect.width*k.rect.height0&&(N+=T.horizontalPadding),T.rowWidth[_]=N,T.width0&&(k+=T.verticalPadding);var I=0;k>T.rowHeight[_]&&(I=T.rowHeight[_],T.rowHeight[_]=k,I=T.rowHeight[_]-I),T.height+=I,T.rows[_].push(E)},w.prototype.getShortestRowIndex=function(T){for(var E=-1,_=Number.MAX_VALUE,A=0;A_&&(E=A,_=T.rowWidth[A]);return E},w.prototype.canAddHorizontal=function(T,E,_){var A=this.getShortestRowIndex(T);if(A<0)return!0;var L=T.rowWidth[A];if(L+T.horizontalPadding+E<=T.width)return!0;var M=0;T.rowHeight[A]<_&&A>0&&(M=_+T.verticalPadding-T.rowHeight[A]);var N;T.width-L>=E+T.horizontalPadding?N=(T.height+M)/(L+E+T.horizontalPadding):N=(T.height+M)/T.width,M=_+T.verticalPadding;var k;return T.widthM&&E!=_){A.splice(-1,1),T.rows[_].push(L),T.rowWidth[E]=T.rowWidth[E]-M,T.rowWidth[_]=T.rowWidth[_]+M,T.width=T.rowWidth[instance.getLongestRowIndex(T)];for(var N=Number.MIN_VALUE,k=0;kN&&(N=A[k].height);E>0&&(N+=T.verticalPadding);var I=T.rowHeight[E]+T.rowHeight[_];T.rowHeight[E]=N,T.rowHeight[_]0)for(var F=L;F<=M;F++)P[0]+=this.grid[F][N-1].length+this.grid[F][N].length-1;if(M0)for(var F=N;F<=k;F++)P[3]+=this.grid[L-1][F].length+this.grid[L][F].length-1;for(var B=y.MAX_VALUE,G,z,W=0;W{"use strict";o(function(t,r){typeof Ob=="object"&&typeof MF=="object"?MF.exports=r(NF()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof Ob=="object"?Ob.cytoscapeCoseBilkent=r(NF()):t.cytoscapeCoseBilkent=r(t.coseBase)},"webpackUniversalModuleDefinition")(Ob,function(e){return function(t){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=t,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)}([function(t,r){t.exports=e},function(t,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var w in v)b[w]=v[w];for(var w in x)b[w]=x[w];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,w=this.idToLNode={},S=this.layout=new l,T=this;T.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var E=S.newGraphManager();this.gm=E;var _=this.options.eles.nodes(),A=this.options.eles.edges();this.root=E.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(_),S);for(var L=0;L0){var k;k=b.getGraphManager().add(b.newGraph(),_),this.processChildrenList(k,E,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),t.exports=y}])})});function sre(e,t,r,n,i){return e.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+(i.width-t)/2+", "+r+")")}var tre,ere,rre,nre,ire,are,ore,lre,wyt,Tyt,kyt=R(()=>{"use strict";Nl();_r();tre=12,ere=o(function(e,t,r,n){t.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),rre=o(function(e,t,r){t.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),nre=o(function(e,t,r){let n=r.width,i=r.height,a=.15*n,s=.25*n,l=.35*n,u=.2*n;t.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${n*.25},${-1*n*.1} + a${l},${l} 1 0,1 ${n*.4},${-1*n*.1} + a${s},${s} 1 0,1 ${n*.35},${1*n*.2} + + a${a},${a} 1 0,1 ${n*.15},${1*i*.35} + a${u},${u} 1 0,1 ${-1*n*.15},${1*i*.65} + + a${s},${a} 1 0,1 ${-1*n*.25},${n*.15} + a${l},${l} 1 0,1 ${-1*n*.5},0 + a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15} + + a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35} + a${u},${u} 1 0,1 ${n*.1},${-1*i*.65} + + H0 V0 Z`)},"cloudBkg"),ire=o(function(e,t,r){let n=r.width,i=r.height,a=.15*n;t.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${n*.25},${-1*i*.1} + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},${1*i*.1} + + a${a},${a} 1 0,0 ${n*.15},${1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${1*i*.34} + a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33} + + a${a},${a} 1 0,0 ${-1*n*.25},${i*.15} + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15} + + a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${-1*i*.34} + a${a},${a} 1 0,0 ${n*.1},${-1*i*.33} + + H0 V0 Z`)},"bangBkg"),are=o(function(e,t,r){t.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("r",r.width/2)},"circleBkg");o(sre,"insertPolygonShape");ore=o(function(e,t,r){let n=r.height,a=n/4,s=r.width-r.padding+2*a,l=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-n/2},{x:s-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}];sre(t,s,n,l,r)},"hexagonBkg"),lre=o(function(e,t,r){t.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+e.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),wyt=o(async function(e,t,r,n,i){let a=i.htmlLabels,s=n%(tre-1),l=t.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);let h=l.append("g"),f=l.append("g"),d=r.descr.replace(/()/g,` +`);await ia(f,d,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=f.node().getBBox(),[m]=Tc(i.fontSize);if(r.height=p.height+m*1.1*.5+r.padding,r.width=p.width+2*r.padding,r.icon)if(r.type===e.nodeType.CIRCLE)r.height+=50,r.width+=50,l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;let g=r.height;r.height=Math.max(g,60);let y=Math.abs(r.height-g);l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(y/2+r.padding/2)+")")}else if(a){let g=(r.width-p.width)/2,y=(r.height-p.height)/2;f.attr("transform","translate("+g+", "+y+")")}else{let g=r.width/2,y=r.padding/2;f.attr("transform","translate("+g+", "+y+")")}switch(r.type){case e.nodeType.DEFAULT:ere(e,h,r,s);break;case e.nodeType.ROUNDED_RECT:lre(e,h,r,s);break;case e.nodeType.RECT:rre(e,h,r,s);break;case e.nodeType.CIRCLE:h.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),are(e,h,r,s);break;case e.nodeType.CLOUD:nre(e,h,r,s);break;case e.nodeType.BANG:ire(e,h,r,s);break;case e.nodeType.HEXAGON:ore(e,h,r,s);break}return e.setElementForId(r.id,l),r.height},"drawNode"),Tyt=o(function(e,t){let r=e.getElementById(t.id),n=t.x||0,i=t.y||0;r.attr("transform","translate("+n+","+i+")")},"positionNode")});async function Cyt(e,t,r,n,i){await wyt(e,t,r,n,i),r.children&&await Promise.all(r.children.map((a,s)=>Cyt(e,t,a,n<0?s:n,i)))}function cre(e,t){t.edges().map((r,n)=>{let i=r.data();if(r[0]._private.bodyBounds){let a=r[0]._private.rscratch;V.trace("Edge: ",n,i),e.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}})}function Syt(e,t,r,n){t.add({group:"nodes",data:{id:e.id.toString(),labelText:e.descr,height:e.height,width:e.width,level:n,nodeId:e.id,padding:e.padding,type:e.type},position:{x:e.x,y:e.y}}),e.children&&e.children.forEach(i=>{Syt(i,t,r,n+1),t.add({group:"edges",data:{id:`${e.id}_${i.id}`,source:e.id,target:i.id,depth:n,section:i.section}})})}function ure(e,t){return new Promise(r=>{let n=Gt("body").append("div").attr("id","cy").attr("style","display:none"),i=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),Syt(e,i,t,0),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}}),i.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),i.ready(a=>{V.info("Ready",a),r(i)})})}function hre(e,t){t.nodes().map((r,n)=>{let i=r.data();i.x=r.position().x,i.y=r.position().y,Tyt(e,i);let a=e.getElementById(i.nodeId);V.info("Id:",n,"Position: (",r.position().x,", ",r.position().y,")",i),a.attr("transform",`translate(${r.position().x-i.width/2}, ${r.position().y-i.height/2})`),a.attr("attr",`apa-${n})`)})}var Eyt,fre,Ayt,_yt=R(()=>{"use strict";_F();Eyt=Qi(byt(),1);ur();Ue();ce();xf();Jn();kyt();hl();sl.use(Eyt.default);o(Cyt,"drawNodes");o(cre,"drawEdges");o(Syt,"addNodes");o(ure,"layoutMindmap");o(hre,"positionNodes");fre=o(async(e,t,r,n)=>{V.debug(`Rendering mindmap diagram +`+e);let i=n.db,a=i.getMindmap();if(!a)return;let s=pt();s.htmlLabels=!1;let l=Vs(t),u=l.append("g");u.attr("class","mindmap-edges");let h=l.append("g");h.attr("class","mindmap-nodes"),await Cyt(i,h,a,-1,s);let f=await ure(a,s);cre(u,f),hre(i,f),No(void 0,l,s.mindmap?.padding??Er.mindmap.padding,s.mindmap?.useMaxWidth??Er.mindmap.useMaxWidth)},"draw"),Ayt={draw:fre}});var dre,pre,Lyt,Dyt=R(()=>{"use strict";ul();dre=o(e=>{let t="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${dre(e)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),Lyt=pre});var Ryt={};xr(Ryt,{diagram:()=>mre});var mre,Nyt=R(()=>{"use strict";ymt();bmt();_yt();Dyt();mre={db:xmt,renderer:Ayt,parser:gmt,styles:Lyt}});var IF,Pb,Oyt=R(()=>{"use strict";IF=function(){var e=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),t=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:t,20:r},{1:[2,6],7:11,10:[1,12]},e(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},e(n,[2,8]),e(n,[2,9]),{19:[1,16]},e(n,[2,11]),{1:[2,1]},{1:[2,5]},e(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:t,20:r},{15:18,16:7,17:8,18:t,20:r},{18:[1,19]},e(r,[2,3]),{12:[1,20]},e(n,[2,10]),{15:21,16:7,17:8,18:t,20:r},e([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,w=2,S=1,T=m.slice.call(arguments,1),E=Object.create(this.lexer),_={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(_.yy[A]=this.yy[A]);E.setInput(u,_.yy),_.yy.lexer=E,_.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var L=E.yylloc;m.push(L);var M=E.options&&E.options.ranges;typeof _.yy.parseError=="function"?this.parseError=_.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(at){f.length=f.length-2*at,p.length=p.length-at,m.length=m.length-at}o(N,"popStack");function k(){var at;return at=d.pop()||E.lex()||S,typeof at!="number"&&(at instanceof Array&&(d=at,at=d.pop()),at=h.symbols_[at]||at),at}o(k,"lex");for(var I,C,O,D,P,F,B={},G,z,W,Q;;){if(O=f[f.length-1],this.defaultActions[O]?D=this.defaultActions[O]:((I===null||typeof I>"u")&&(I=k()),D=g[O]&&g[O][I]),typeof D>"u"||!D.length||!D[0]){var j="";Q=[];for(G in g[O])this.terminals_[G]&&G>w&&Q.push("'"+this.terminals_[G]+"'");E.showPosition?j="Parse error on line "+(v+1)+`: +`+E.showPosition()+` +Expecting `+Q.join(", ")+", got '"+(this.terminals_[I]||I)+"'":j="Parse error on line "+(v+1)+": Unexpected "+(I==S?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(j,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:L,expected:Q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+I);switch(D[0]){case 1:f.push(I),p.push(E.yytext),m.push(E.yylloc),f.push(D[1]),I=null,C?(I=C,C=null):(x=E.yyleng,y=E.yytext,v=E.yylineno,L=E.yylloc,b>0&&b--);break;case 2:if(z=this.productions_[D[1]][1],B.$=p[p.length-z],B._$={first_line:m[m.length-(z||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(z||1)].first_column,last_column:m[m.length-1].last_column},M&&(B._$.range=[m[m.length-(z||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(B,[y,x,v,_.yy,D[1],p,m].concat(T)),typeof F<"u")return F;z&&(f=f.slice(0,-1*z*2),p=p.slice(0,-1*z),m=m.slice(0,-1*z)),f.push(this.productions_[D[1]][0]),p.push(B.$),m.push(B._$),W=g[f[f.length-2]][f[f.length-1]],f.push(W);break;case 3:return!0}}return!0},"parse")},a=function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;break;case 5:return 20;case 6:return this.popState("escaped_text"),18;break;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return l}();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s}();IF.parser=IF;Pb=IF});var YC,qC,WC,xre,OF,bre,PF,wre,Tre,kre,Ere,Pyt,Byt=R(()=>{"use strict";Ue();hr();Ci();YC=[],qC=[],WC=new Map,xre=o(()=>{YC=[],qC=[],WC=new Map,Ar()},"clear"),OF=class{constructor(t,r,n=0){this.source=t;this.target=r;this.value=n}static{o(this,"SankeyLink")}},bre=o((e,t,r)=>{YC.push(new OF(e,t,r))},"addLink"),PF=class{constructor(t){this.ID=t}static{o(this,"SankeyNode")}},wre=o(e=>{e=Yt.sanitizeText(e,pt());let t=WC.get(e);return t===void 0&&(t=new PF(e),WC.set(e,t),qC.push(t)),t},"findOrCreateNode"),Tre=o(()=>qC,"getNodes"),kre=o(()=>YC,"getLinks"),Ere=o(()=>({nodes:qC.map(e=>({id:e.ID})),links:YC.map(e=>({source:e.source.ID,target:e.target.ID,value:e.value}))}),"getGraph"),Pyt={nodesMap:WC,getConfig:o(()=>pt().sankey,"getConfig"),getNodes:Tre,getLinks:kre,getGraph:Ere,addLink:bre,findOrCreateNode:wre,getAccTitle:Br,setAccTitle:Mr,getAccDescription:zr,setAccDescription:Fr,getDiagramTitle:Jr,setDiagramTitle:cn,clear:xre}});function Bb(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r=i)&&(r=i)}return r}var Fyt=R(()=>{"use strict";o(Bb,"max")});function O1(e,t){let r;if(t===void 0)for(let n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var zyt=R(()=>{"use strict";o(O1,"min")});function P1(e,t){let r=0;if(t===void 0)for(let n of e)(n=+n)&&(r+=n);else{let n=-1;for(let i of e)(i=+t(i,++n,e))&&(r+=i)}return r}var $yt=R(()=>{"use strict";o(P1,"sum")});var BF=R(()=>{"use strict";Fyt();zyt();$yt()});function Cre(e){return e.target.depth}function FF(e){return e.depth}function zF(e,t){return t-1-e.height}function Fb(e,t){return e.sourceLinks.length?e.depth:t-1}function $F(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?O1(e.sourceLinks,Cre)-1:0}var GF=R(()=>{"use strict";BF();o(Cre,"targetDepth");o(FF,"left");o(zF,"right");o(Fb,"justify");o($F,"center")});function B1(e){return function(){return e}}var Gyt=R(()=>{"use strict";o(B1,"constant")});function Vyt(e,t){return XC(e.source,t.source)||e.index-t.index}function Uyt(e,t){return XC(e.target,t.target)||e.index-t.index}function XC(e,t){return e.y0-t.y0}function VF(e){return e.value}function Sre(e){return e.index}function Are(e){return e.nodes}function _re(e){return e.links}function Hyt(e,t){let r=e.get(t);if(!r)throw new Error("missing: "+t);return r}function Wyt({nodes:e}){for(let t of e){let r=t.y0,n=r;for(let i of t.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of t.targetLinks)i.y1=n+i.width/2,n+=i.width}}function jC(){let e=0,t=0,r=1,n=1,i=24,a=8,s,l=Sre,u=Fb,h,f,d=Are,p=_re,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),T(O),Wyt(O),O}o(g,"sankey"),g.update=function(O){return Wyt(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:B1(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:B1(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:B1(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:B1(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(e=t=0,r=+O[0],n=+O[1],g):[r-e,n-t]},g.extent=function(O){return arguments.length?(e=+O[0][0],r=+O[1][0],t=+O[0][1],n=+O[1][1],g):[[e,t],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:D}){for(let[F,B]of O.entries())B.index=F,B.sourceLinks=[],B.targetLinks=[];let P=new Map(O.map((F,B)=>[l(F,B,O),F]));for(let[F,B]of D.entries()){B.index=F;let{source:G,target:z}=B;typeof G!="object"&&(G=B.source=Hyt(P,G)),typeof z!="object"&&(z=B.target=Hyt(P,z)),G.sourceLinks.push(B),z.targetLinks.push(B)}if(f!=null)for(let{sourceLinks:F,targetLinks:B}of O)F.sort(f),B.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let D of O)D.value=D.fixedValue===void 0?Math.max(P1(D.sourceLinks,VF),P1(D.targetLinks,VF)):D.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let D=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let G of P){G.depth=B;for(let{target:z}of G.sourceLinks)F.add(z)}if(++B>D)throw new Error("circular link");P=F,F=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let D=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let G of P){G.height=B;for(let{source:z}of G.targetLinks)F.add(z)}if(++B>D)throw new Error("circular link");P=F,F=new Set}}o(b,"computeNodeHeights");function w({nodes:O}){let D=Bb(O,B=>B.depth)+1,P=(r-e-i)/(D-1),F=new Array(D);for(let B of O){let G=Math.max(0,Math.min(D-1,Math.floor(u.call(null,B,D))));B.layer=G,B.x0=e+G*P,B.x1=B.x0+i,F[G]?F[G].push(B):F[G]=[B]}if(h)for(let B of F)B.sort(h);return F}o(w,"computeNodeLayers");function S(O){let D=O1(O,P=>(n-t-(P.length-1)*s)/P1(P,VF));for(let P of O){let F=t;for(let B of P){B.y0=F,B.y1=F+B.value*D,F=B.y1+s;for(let G of B.sourceLinks)G.width=G.value*D}F=(n-F+s)/(P.length+1);for(let B=0;BP.length)-1)),S(D);for(let P=0;P0))continue;let j=(W/Q-z.y0)*D;z.y0+=j,z.y1+=j,N(z)}h===void 0&&G.sort(XC),A(G,P)}}o(E,"relaxLeftToRight");function _(O,D,P){for(let F=O.length,B=F-2;B>=0;--B){let G=O[B];for(let z of G){let W=0,Q=0;for(let{target:at,value:X}of z.sourceLinks){let J=X*(at.layer-z.layer);W+=C(z,at)*J,Q+=J}if(!(Q>0))continue;let j=(W/Q-z.y0)*D;z.y0+=j,z.y1+=j,N(z)}h===void 0&&G.sort(XC),A(G,P)}}o(_,"relaxRightToLeft");function A(O,D){let P=O.length>>1,F=O[P];M(O,F.y0-s,P-1,D),L(O,F.y1+s,P+1,D),M(O,n,O.length-1,D),L(O,t,0,D)}o(A,"resolveCollisions");function L(O,D,P,F){for(;P1e-6&&(B.y0+=G,B.y1+=G),D=B.y1+s}}o(L,"resolveCollisionsTopToBottom");function M(O,D,P,F){for(;P>=0;--P){let B=O[P],G=(B.y1-D)*F;G>1e-6&&(B.y0-=G,B.y1-=G),D=B.y0-s}}o(M,"resolveCollisionsBottomToTop");function N({sourceLinks:O,targetLinks:D}){if(f===void 0){for(let{source:{sourceLinks:P}}of D)P.sort(Uyt);for(let{target:{targetLinks:P}}of O)P.sort(Vyt)}}o(N,"reorderNodeLinks");function k(O){if(f===void 0)for(let{sourceLinks:D,targetLinks:P}of O)D.sort(Uyt),P.sort(Vyt)}o(k,"reorderLinks");function I(O,D){let P=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:F,width:B}of O.sourceLinks){if(F===D)break;P+=B+s}for(let{source:F,width:B}of D.targetLinks){if(F===O)break;P-=B}return P}o(I,"targetTop");function C(O,D){let P=D.y0-(D.targetLinks.length-1)*s/2;for(let{source:F,width:B}of D.targetLinks){if(F===O)break;P+=B+s}for(let{target:F,width:B}of O.sourceLinks){if(F===D)break;P-=B}return P}return o(C,"sourceTop"),g}var Yyt=R(()=>{"use strict";BF();GF();Gyt();o(Vyt,"ascendingSourceBreadth");o(Uyt,"ascendingTargetBreadth");o(XC,"ascendingBreadth");o(VF,"value");o(Sre,"defaultId");o(Are,"defaultNodes");o(_re,"defaultLinks");o(Hyt,"find");o(Wyt,"computeLinkBreadths");o(jC,"Sankey")});function WF(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function qyt(){return new WF}var UF,HF,ip,Lre,YF,Xyt=R(()=>{"use strict";UF=Math.PI,HF=2*UF,ip=1e-6,Lre=HF-ip;o(WF,"Path");o(qyt,"path");WF.prototype=qyt.prototype={constructor:WF,moveTo:o(function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},"lineTo"),quadraticCurveTo:o(function(e,t,r,n){this._+="Q"+ +e+","+ +t+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(e,t,r,n,i,a){this._+="C"+ +e+","+ +t+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(e,t,r,n,i){e=+e,t=+t,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-e,u=n-t,h=a-e,f=s-t,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(d>ip)if(!(Math.abs(f*l-u*h)>ip)||!i)this._+="L"+(this._x1=e)+","+(this._y1=t);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((UF-Math.acos((g+d-y)/(2*v*x)))/2),w=b/x,S=b/v;Math.abs(w-1)>ip&&(this._+="L"+(e+w*h)+","+(t+w*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=e+S*l)+","+(this._y1=t+S*u)}},"arcTo"),arc:o(function(e,t,r,n,i,a){e=+e,t=+t,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=e+s,h=t+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>ip||Math.abs(this._y1-h)>ip)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%HF+HF),d>Lre?this._+="A"+r+","+r+",0,1,"+f+","+(e-s)+","+(t-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>ip&&(this._+="A"+r+","+r+",0,"+ +(d>=UF)+","+f+","+(this._x1=e+r*Math.cos(i))+","+(this._y1=t+r*Math.sin(i))))},"arc"),rect:o(function(e,t,r,n){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};YF=qyt});var jyt=R(()=>{"use strict";Xyt()});function KC(e){return o(function(){return e},"constant")}var Kyt=R(()=>{"use strict";o(KC,"default")});function Qyt(e){return e[0]}function Zyt(e){return e[1]}var Jyt=R(()=>{"use strict";o(Qyt,"x");o(Zyt,"y")});var tvt,evt=R(()=>{"use strict";tvt=Array.prototype.slice});function Dre(e){return e.source}function Rre(e){return e.target}function Nre(e){var t=Dre,r=Rre,n=Qyt,i=Zyt,a=null;function s(){var l,u=tvt.call(arguments),h=t.apply(this,u),f=r.apply(this,u);if(a||(a=l=YF()),e(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(t=l,s):t},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:KC(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:KC(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function Mre(e,t,r,n,i){e.moveTo(t,r),e.bezierCurveTo(t=(t+n)/2,r,t,i,n,i)}function qF(){return Nre(Mre)}var rvt=R(()=>{"use strict";jyt();evt();Kyt();Jyt();o(Dre,"linkSource");o(Rre,"linkTarget");o(Nre,"link");o(Mre,"curveHorizontal");o(qF,"linkHorizontal")});var nvt=R(()=>{"use strict";rvt()});function Ire(e){return[e.source.x1,e.y0]}function Ore(e){return[e.target.x0,e.y1]}function QC(){return qF().source(Ire).target(Ore)}var ivt=R(()=>{"use strict";nvt();o(Ire,"horizontalSource");o(Ore,"horizontalTarget");o(QC,"default")});var avt=R(()=>{"use strict";Yyt();GF();ivt()});var zb,svt=R(()=>{"use strict";zb=class e{static{o(this,"Uid")}static{this.count=0}static next(t){return new e(t+ ++e.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}}});var Pre,Bre,ovt,lvt=R(()=>{"use strict";Ue();ur();avt();Jn();svt();Pre={left:FF,right:zF,center:$F,justify:Fb},Bre=o(function(e,t,r,n){let{securityLevel:i,sankey:a}=pt(),s=X4.sankey,l;i==="sandbox"&&(l=Gt("#i"+t));let u=i==="sandbox"?Gt(l.nodes()[0].contentDocument.body):Gt("body"),h=i==="sandbox"?u.select(`[id="${t}"]`):Gt(`[id="${t}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=Pre[m];jC().nodeId(M=>M.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let T=bu(z_);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",M=>(M.uid=zb.next("node-")).id).attr("transform",function(M){return"translate("+M.x0+","+M.y0+")"}).attr("x",M=>M.x0).attr("y",M=>M.y0).append("rect").attr("height",M=>M.y1-M.y0).attr("width",M=>M.x1-M.x0).attr("fill",M=>T(M.id));let E=o(({id:M,value:N})=>v?`${M} +${g}${Math.round(N*100)/100}${y}`:M,"getText");h.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",M=>M.x0(M.y1+M.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",M=>M.x0(N.uid=zb.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",N=>N.source.x1).attr("x2",N=>N.target.x0);M.append("stop").attr("offset","0%").attr("stop-color",N=>T(N.source.id)),M.append("stop").attr("offset","100%").attr("stop-color",N=>T(N.target.id))}let L;switch(A){case"gradient":L=o(M=>M.uid,"coloring");break;case"source":L=o(M=>T(M.source.id),"coloring");break;case"target":L=o(M=>T(M.target.id),"coloring");break;default:L=A}_.append("path").attr("d",QC()).attr("stroke",L).attr("stroke-width",M=>Math.max(1,M.width)),No(void 0,h,0,p)},"draw"),ovt={draw:Bre}});var cvt,uvt=R(()=>{"use strict";cvt=o(e=>e.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var hvt={};xr(hvt,{diagram:()=>zre});var Fre,zre,fvt=R(()=>{"use strict";Oyt();Byt();lvt();uvt();Fre=Pb.parse.bind(Pb);Pb.parse=e=>Fre(cvt(e));zre={parser:Pb,db:Pyt,renderer:ovt}});var mvt,XF,Ure,Hre,Wre,Yre,qre,Ff,jF=R(()=>{"use strict";js();hl();_r();Ci();mvt={packet:[]},XF=structuredClone(mvt),Ure=Er.packet,Hre=o(()=>{let e=Ss({...Ure,...Nr().packet});return e.showBits&&(e.paddingY+=10),e},"getConfig"),Wre=o(()=>XF.packet,"getPacket"),Yre=o(e=>{e.length>0&&XF.packet.push(e)},"pushWord"),qre=o(()=>{Ar(),XF=structuredClone(mvt)},"clear"),Ff={pushWord:Yre,getPacket:Wre,getConfig:Hre,clear:qre,setAccTitle:Mr,getAccTitle:Br,setDiagramTitle:cn,getDiagramTitle:Jr,getAccDescription:zr,setAccDescription:Fr}});var Xre,jre,Kre,gvt,yvt=R(()=>{"use strict";Hg();ce();Dx();jF();Xre=1e4,jre=o(e=>{pf(e,Ff);let t=-1,r=[],n=1,{bitsPerRow:i}=Ff.getConfig();for(let{start:a,end:s,label:l}of e.blocks){if(s&&s{if(e.end===void 0&&(e.end=e.start),e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);return e.end+1<=t*r?[e,void 0]:[{start:e.start,end:t*r-1,label:e.label},{start:t*r,end:e.end,label:e.label}]},"getNextFittingBlock"),gvt={parse:o(async e=>{let t=await Ul("packet",e);V.debug(t),jre(t)},"parse")}});var Qre,Zre,vvt,xvt=R(()=>{"use strict";xf();Jn();Qre=o((e,t,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Vs(t);y.attr("viewbox",`0 0 ${g} ${m}`),Pr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())Zre(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),Zre=o((e,t,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=e.append("g"),f=r*(n+a)+a;for(let d of t){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),vvt={draw:Qre}});var Jre,bvt,wvt=R(()=>{"use strict";_r();Jre={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},bvt=o(({packet:e}={})=>{let t=Ss(Jre,e);return` + .packetByte { + font-size: ${t.byteFontSize}; + } + .packetByte.start { + fill: ${t.startByteColor}; + } + .packetByte.end { + fill: ${t.endByteColor}; + } + .packetLabel { + fill: ${t.labelColor}; + font-size: ${t.labelFontSize}; + } + .packetTitle { + fill: ${t.titleColor}; + font-size: ${t.titleFontSize}; + } + .packetBlock { + stroke: ${t.blockStrokeColor}; + stroke-width: ${t.blockStrokeWidth}; + fill: ${t.blockFillColor}; + } + `},"styles")});var Tvt={};xr(Tvt,{diagram:()=>tne});var tne,kvt=R(()=>{"use strict";jF();yvt();xvt();wvt();tne={parser:gvt,db:Ff,renderer:vvt,styles:bvt}});var KF,Svt,Avt=R(()=>{"use strict";KF=function(){var e=o(function(w,S,T,E){for(T=T||{},E=w.length;E--;T[w[E]]=S);return T},"o"),t=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],g=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(S,T,E,_,A,L,M){var N=L.length-1;switch(A){case 4:_.getLogger().debug("Rule: separator (NL) ");break;case 5:_.getLogger().debug("Rule: separator (Space) ");break;case 6:_.getLogger().debug("Rule: separator (EOF) ");break;case 7:_.getLogger().debug("Rule: hierarchy: ",L[N-1]),_.setHierarchy(L[N-1]);break;case 8:_.getLogger().debug("Stop NL ");break;case 9:_.getLogger().debug("Stop EOF ");break;case 10:_.getLogger().debug("Stop NL2 ");break;case 11:_.getLogger().debug("Stop EOF2 ");break;case 12:_.getLogger().debug("Rule: statement: ",L[N]),typeof L[N].length=="number"?this.$=L[N]:this.$=[L[N]];break;case 13:_.getLogger().debug("Rule: statement #2: ",L[N-1]),this.$=[L[N-1]].concat(L[N]);break;case 14:_.getLogger().debug("Rule: link: ",L[N],S),this.$={edgeTypeStr:L[N],label:""};break;case 15:_.getLogger().debug("Rule: LABEL link: ",L[N-3],L[N-1],L[N]),this.$={edgeTypeStr:L[N],label:L[N-1]};break;case 18:let k=parseInt(L[N]),I=_.generateId();this.$={id:I,type:"space",label:"",width:k,children:[]};break;case 23:_.getLogger().debug("Rule: (nodeStatement link node) ",L[N-2],L[N-1],L[N]," typestr: ",L[N-1].edgeTypeStr);let C=_.edgeStrToEdgeData(L[N-1].edgeTypeStr);this.$=[{id:L[N-2].id,label:L[N-2].label,type:L[N-2].type,directions:L[N-2].directions},{id:L[N-2].id+"-"+L[N].id,start:L[N-2].id,end:L[N].id,label:L[N-1].label,type:"edge",directions:L[N].directions,arrowTypeEnd:C,arrowTypeStart:"arrow_open"},{id:L[N].id,label:L[N].label,type:_.typeStr2Type(L[N].typeStr),directions:L[N].directions}];break;case 24:_.getLogger().debug("Rule: nodeStatement (abc88 node size) ",L[N-1],L[N]),this.$={id:L[N-1].id,label:L[N-1].label,type:_.typeStr2Type(L[N-1].typeStr),directions:L[N-1].directions,widthInColumns:parseInt(L[N],10)};break;case 25:_.getLogger().debug("Rule: nodeStatement (node) ",L[N]),this.$={id:L[N].id,label:L[N].label,type:_.typeStr2Type(L[N].typeStr),directions:L[N].directions,widthInColumns:1};break;case 26:_.getLogger().debug("APA123",this?this:"na"),_.getLogger().debug("COLUMNS: ",L[N]),this.$={type:"column-setting",columns:L[N]==="auto"?-1:parseInt(L[N])};break;case 27:_.getLogger().debug("Rule: id-block statement : ",L[N-2],L[N-1]);let O=_.generateId();this.$={...L[N-2],type:"composite",children:L[N-1]};break;case 28:_.getLogger().debug("Rule: blockStatement : ",L[N-2],L[N-1],L[N]);let D=_.generateId();this.$={id:D,type:"composite",label:"",children:L[N-1]};break;case 29:_.getLogger().debug("Rule: node (NODE_ID separator): ",L[N]),this.$={id:L[N]};break;case 30:_.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",L[N-1],L[N]),this.$={id:L[N-1],label:L[N].label,typeStr:L[N].typeStr,directions:L[N].directions};break;case 31:_.getLogger().debug("Rule: dirList: ",L[N]),this.$=[L[N]];break;case 32:_.getLogger().debug("Rule: dirList: ",L[N-1],L[N]),this.$=[L[N-1]].concat(L[N]);break;case 33:_.getLogger().debug("Rule: nodeShapeNLabel: ",L[N-2],L[N-1],L[N]),this.$={typeStr:L[N-2]+L[N],label:L[N-1]};break;case 34:_.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",L[N-3],L[N-2]," #3:",L[N-1],L[N]),this.$={typeStr:L[N-3]+L[N],label:L[N-2],directions:L[N-1]};break;case 35:case 36:this.$={type:"classDef",id:L[N-1].trim(),css:L[N].trim()};break;case 37:this.$={type:"applyClass",id:L[N-1].trim(),styleClass:L[N].trim()};break;case 38:this.$={type:"applyStyles",id:L[N-1].trim(),stylesStr:L[N].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{8:[1,20]},e(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:t,28:r,29:n,31:i,32:a,40:s,44:l,47:u}),e(f,[2,16],{14:22,15:d,16:p}),e(f,[2,17]),e(f,[2,18]),e(f,[2,19]),e(f,[2,20]),e(f,[2,21]),e(f,[2,22]),e(m,[2,25],{27:[1,25]}),e(f,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(g,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(h,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},e(m,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(g,[2,30]),{18:[1,43]},{18:[1,44]},e(m,[2,23]),{18:[1,45]},{30:[1,46]},e(f,[2,28]),e(f,[2,35]),e(f,[2,36]),e(f,[2,37]),e(f,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},e(f,[2,27]),e(g,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},e(g,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(S,T){if(T.recoverable)this.trace(S);else{var E=new Error(S);throw E.hash=T,E}},"parseError"),parse:o(function(S){var T=this,E=[0],_=[],A=[null],L=[],M=this.table,N="",k=0,I=0,C=0,O=2,D=1,P=L.slice.call(arguments,1),F=Object.create(this.lexer),B={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(B.yy[G]=this.yy[G]);F.setInput(S,B.yy),B.yy.lexer=F,B.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var z=F.yylloc;L.push(z);var W=F.options&&F.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(it){E.length=E.length-2*it,A.length=A.length-it,L.length=L.length-it}o(Q,"popStack");function j(){var it;return it=_.pop()||F.lex()||D,typeof it!="number"&&(it instanceof Array&&(_=it,it=_.pop()),it=T.symbols_[it]||it),it}o(j,"lex");for(var at,X,J,Z,H,q,K={},ot,ct,ut,et;;){if(J=E[E.length-1],this.defaultActions[J]?Z=this.defaultActions[J]:((at===null||typeof at>"u")&&(at=j()),Z=M[J]&&M[J][at]),typeof Z>"u"||!Z.length||!Z[0]){var Mt="";et=[];for(ot in M[J])this.terminals_[ot]&&ot>O&&et.push("'"+this.terminals_[ot]+"'");F.showPosition?Mt="Parse error on line "+(k+1)+`: +`+F.showPosition()+` +Expecting `+et.join(", ")+", got '"+(this.terminals_[at]||at)+"'":Mt="Parse error on line "+(k+1)+": Unexpected "+(at==D?"end of input":"'"+(this.terminals_[at]||at)+"'"),this.parseError(Mt,{text:F.match,token:this.terminals_[at]||at,line:F.yylineno,loc:z,expected:et})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+at);switch(Z[0]){case 1:E.push(at),A.push(F.yytext),L.push(F.yylloc),E.push(Z[1]),at=null,X?(at=X,X=null):(I=F.yyleng,N=F.yytext,k=F.yylineno,z=F.yylloc,C>0&&C--);break;case 2:if(ct=this.productions_[Z[1]][1],K.$=A[A.length-ct],K._$={first_line:L[L.length-(ct||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(ct||1)].first_column,last_column:L[L.length-1].last_column},W&&(K._$.range=[L[L.length-(ct||1)].range[0],L[L.length-1].range[1]]),q=this.performAction.apply(K,[N,I,k,B.yy,Z[1],A,L].concat(P)),typeof q<"u")return q;ct&&(E=E.slice(0,-1*ct*2),A=A.slice(0,-1*ct),L=L.slice(0,-1*ct)),E.push(this.productions_[Z[1]][0]),A.push(K.$),L.push(K._$),ut=M[E[E.length-2]][E[E.length-1]],E.push(ut);break;case 3:return!0}}return!0},"parse")},x=function(){var w={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(S,T){return this.yy=T||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var T=S.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var T=S.length,E=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var _=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===_.length?this.yylloc.first_column:0)+_[_.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),T=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(S,T){var E,_,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),_=S[0].match(/(?:\r\n?|\n).*/g),_&&(this.yylineno+=_.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_?_[_.length-1].length-_[_.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var L in A)this[L]=A[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,T,E,_;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),L=0;LT[0].length)){if(T=E,_=L,this.options.backtrack_lexer){if(S=this.test_match(E,A[L]),S!==!1)return S;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(S=this.test_match(T,A[_]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(T,E,_,A){var L=A;switch(_){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;break;case 2:return T.getLogger().debug("Found nl-block"),31;break;case 3:return T.getLogger().debug("Found space-block"),29;break;case 4:T.getLogger().debug(".",E.yytext);break;case 5:T.getLogger().debug("_",E.yytext);break;case 6:return 5;case 7:return E.yytext=-1,28;break;case 8:return E.yytext=E.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",E.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",E.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",E.yytext),"STR";break;case 15:return E.yytext=E.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",E.yytext),21;break;case 16:return E.yytext="1",T.getLogger().debug("COLUMNS (LEX)",E.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;break;case 75:return T.getLogger().debug("Lex: NODE_ID",E.yytext),32;break;case 76:return T.getLogger().debug("Lex: EOF",E.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",E.yytext),"NODE_DESCR";break;case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",E.yytext),"DIR";break;case 87:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",E.yytext),"DIR";break;case 88:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",E.yytext),"DIR";break;case 89:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",E.yytext),"DIR";break;case 90:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",E.yytext),"DIR";break;case 91:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",E.yytext),"DIR";break;case 92:return E.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",E.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 94:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 95:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 96:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 97:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 98:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 99:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 105:return T.getLogger().debug("Lex: COLON",E.yytext),E.yytext=E.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return w}();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b}();KF.parser=KF;Svt=KF});function une(e){switch(V.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return V.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function hne(e){switch(V.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}function fne(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var Ql,ZF,QF,_vt,Lvt,nne,Rvt,ine,ZC,ane,sne,one,lne,Nvt,JF,$b,cne,Dvt,dne,pne,mne,gne,yne,vne,xne,bne,wne,Tne,kne,Mvt,Ivt=R(()=>{"use strict";wD();js();Ue();ce();hr();Ci();Ql=new Map,ZF=[],QF=new Map,_vt="color",Lvt="fill",nne="bgFill",Rvt=",",ine=pt(),ZC=new Map,ane=o(e=>Yt.sanitizeText(e,ine),"sanitizeText"),sne=o(function(e,t=""){let r=ZC.get(e);r||(r={id:e,styles:[],textStyles:[]},ZC.set(e,r)),t?.split(Rvt).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(_vt).exec(n)){let s=i.replace(Lvt,nne).replace(_vt,Lvt);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),one=o(function(e,t=""){let r=Ql.get(e);t!=null&&(r.styles=t.split(Rvt))},"addStyle2Node"),lne=o(function(e,t){e.split(",").forEach(function(r){let n=Ql.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},Ql.set(i,n)}n.classes||(n.classes=[]),n.classes.push(t)})},"setCssClass"),Nvt=o((e,t)=>{let r=e.flat(),n=[];for(let i of r){if(i.label&&(i.label=ane(i.label)),i.type==="classDef"){sne(i.id,i.css);continue}if(i.type==="applyClass"){lne(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&one(i.id,i?.stylesStr);continue}if(i.type==="column-setting")t.columns=i.columns??-1;else if(i.type==="edge"){let a=(QF.get(i.id)??0)+1;QF.set(i.id,a),i.id=a+"-"+i.id,ZF.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let a=Ql.get(i.id);if(a===void 0?Ql.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&Nvt(i.children,i),i.type==="space"){let s=i.width??1;for(let l=0;l{V.debug("Clear called"),Ar(),$b={id:"root",type:"composite",children:[],columns:-1},Ql=new Map([["root",$b]]),JF=[],ZC=new Map,ZF=[],QF=new Map},"clear");o(une,"typeStr2Type");o(hne,"edgeTypeStr2Type");o(fne,"edgeStrToEdgeData");Dvt=0,dne=o(()=>(Dvt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Dvt),"generateId"),pne=o(e=>{$b.children=e,Nvt(e,$b),JF=$b.children},"setHierarchy"),mne=o(e=>{let t=Ql.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),gne=o(()=>[...Ql.values()],"getBlocksFlat"),yne=o(()=>JF||[],"getBlocks"),vne=o(()=>ZF,"getEdges"),xne=o(e=>Ql.get(e),"getBlock"),bne=o(e=>{Ql.set(e.id,e)},"setBlock"),wne=o(()=>console,"getLogger"),Tne=o(function(){return ZC},"getClasses"),kne={getConfig:o(()=>Nr().block,"getConfig"),typeStr2Type:une,edgeTypeStr2Type:hne,edgeStrToEdgeData:fne,getLogger:wne,getBlocksFlat:gne,getBlocks:yne,getEdges:vne,setHierarchy:pne,getBlock:xne,setBlock:bne,getColumns:mne,getClasses:Tne,clear:cne,generateId:dne},Mvt=kne});var JC,Ene,Ovt,Pvt=R(()=>{"use strict";ul();JC=o((e,t)=>{let r=ay,n=r(e,"r"),i=r(e,"g"),a=r(e,"b");return Xs(n,i,a,t)},"fade"),Ene=o(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${JC(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${JC(e.mainBkg,.5)}; + fill: ${JC(e.clusterBkg,.5)}; + stroke: ${JC(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,"getStyles"),Ovt=Ene});function Cne(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};let r=t%e,n=Math.floor(t/e);return{px:r,py:n}}function tz(e,t,r=0,n=0){V.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"sieblingWidth",r),e?.size?.width||(e.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(e.children?.length>0){for(let m of e.children)tz(m,t);let s=Sne(e);i=s.width,a=s.height,V.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",i,a);for(let m of e.children)m.size&&(V.debug(`abc95 Setting size of children of ${e.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+bi*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,V.debug(`abc95 updating size of ${e.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of e.children)tz(m,t,i,a);let l=e.columns??-1,u=0;for(let m of e.children)u+=m.widthInColumns??1;let h=e.children.length;l>0&&l0?Math.min(e.children.length,l):e.children.length;if(m>0){let g=(d-m*bi-bi)/m;V.debug("abc95 (growing to fit) width",e.id,d,e.size?.width,g);for(let y of e.children)y.size&&(y.size.width=g)}}e.size={width:d,height:p,x:0,y:0}}V.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}function Bvt(e,t){V.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let r=e.columns??-1;if(V.debug("layoutBlocks columns abc95",e.id,"=>",r,e),e.children&&e.children.length>0){let n=e?.children[0]?.size?.width??0,i=e.children.length*n+(e.children.length-1)*bi;V.debug("widthOfChildren 88",i,"posX");let a=0;V.debug("abc91 block?.size?.x",e.id,e?.size?.x);let s=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-bi,l=0;for(let u of e.children){let h=e;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=Cne(r,a);if(m!=l&&(l=m,s=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-bi,V.debug("New row in layout for block",e.id," and child ",u.id,l)),V.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${bi}`),h.size){let g=f/2;u.size.x=s+bi+g,V.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${g} padding=${bi} width=${f} halfWidth=${g} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+g,u.size.y=h.size.y-h.size.height/2+m*(d+bi)+d/2+bi,V.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${bi}${g}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&Bvt(u,t),a+=u?.widthInColumns??1,V.debug("abc88 columnsPos",u,a)}}V.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}function Fvt(e,{minX:t,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){let{x:a,y:s,width:l,height:u}=e.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(e.children)for(let a of e.children)({minX:t,minY:r,maxX:n,maxY:i}=Fvt(a,{minX:t,minY:r,maxX:n,maxY:i}));return{minX:t,minY:r,maxX:n,maxY:i}}function zvt(e){let t=e.getBlock("root");if(!t)return;tz(t,e,0,0),Bvt(t,e),V.debug("getBlocks",JSON.stringify(t,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=Fvt(t),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var bi,Sne,$vt=R(()=>{"use strict";ce();Ue();bi=pt()?.block?.padding??8;o(Cne,"calculateBlockPosition");Sne=o(e=>{let t=0,r=0;for(let n of e.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};V.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>t&&(t=i/(e.widthInColumns??1)),a>r&&(r=a))}return{width:t,height:r}},"getMaxChildSize");o(tz,"setBlockSizes");o(Bvt,"layoutBlocks");o(Fvt,"findBounds");o(zvt,"layout")});function Gvt(e,t,r=!1){let n=e,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=gm(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Nr()?.block?.padding??0}}async function Ane(e,t,r){let n=Gvt(t,r,!1);if(n.type==="group")return;let i=Nr(),a=await jx(e,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function _ne(e,t,r){let n=Gvt(t,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Nr();await jx(e,n,{config:a}),t.intersect=n?.intersect,Kx(n)}}async function ez(e,t,r,n){for(let i of t)await n(e,i,r),i.children&&await ez(e,i.children,r,n)}async function Vvt(e,t,r){await ez(e,t,r,Ane)}async function Uvt(e,t,r){await ez(e,t,r,_ne)}async function Hvt(e,t,r,n,i){let a=new yr({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of t)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];L6(e,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await A6(e,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),_6({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var Wvt=R(()=>{"use strict";wa();js();$P();zP();_r();o(Gvt,"getNodeFromBlock");o(Ane,"calculateBlockSize");o(_ne,"insertBlockPositioned");o(ez,"performOperations");o(Vvt,"calculateBlockSizes");o(Uvt,"insertBlocks");o(Hvt,"insertEdges")});var Lne,Dne,Yvt,qvt=R(()=>{"use strict";ur();js();IP();ce();Jn();$vt();Wvt();Lne=o(function(e,t){return t.db.getClasses()},"getClasses"),Dne=o(async function(e,t,r,n){let{securityLevel:i,block:a}=Nr(),s=n.db,l;i==="sandbox"&&(l=Gt("#i"+t));let u=i==="sandbox"?Gt(l.nodes()[0].contentDocument.body):Gt("body"),h=i==="sandbox"?u.select(`[id="${t}"]`):Gt(`[id="${t}"]`);b6(h,["point","circle","cross"],n.type,t);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await Vvt(g,d,s);let y=zvt(s);if(await Uvt(g,d,s),await Hvt(g,m,p,s,t),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,w=v.width+10,{useMaxWidth:S}=a;Pr(h,b,w,!!S),V.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),Yvt={draw:Dne,getClasses:Lne}});var Xvt={};xr(Xvt,{diagram:()=>Rne});var Rne,jvt=R(()=>{"use strict";Avt();Ivt();Pvt();qvt();Rne={parser:Svt,db:Mvt,renderer:Yvt,styles:Ovt}});var rz,nz,Gb,Zvt,iz,ds,eu,tS,Jvt,One,Vb,t2t,e2t,r2t,n2t,eS,zf,rS=R(()=>{"use strict";rz={L:"left",R:"right",T:"top",B:"bottom"},nz={L:o(e=>`${e},${e/2} 0,${e} 0,0`,"L"),R:o(e=>`0,${e/2} ${e},0 ${e},${e}`,"R"),T:o(e=>`0,0 ${e},0 ${e/2},${e}`,"T"),B:o(e=>`${e/2},0 ${e},${e} 0,${e}`,"B")},Gb={L:o((e,t)=>e-t+2,"L"),R:o((e,t)=>e-2,"R"),T:o((e,t)=>e-t+2,"T"),B:o((e,t)=>e-2,"B")},Zvt=o(function(e){return ds(e)?e==="L"?"R":"L":e==="T"?"B":"T"},"getOppositeArchitectureDirection"),iz=o(function(e){let t=e;return t==="L"||t==="R"||t==="T"||t==="B"},"isArchitectureDirection"),ds=o(function(e){let t=e;return t==="L"||t==="R"},"isArchitectureDirectionX"),eu=o(function(e){let t=e;return t==="T"||t==="B"},"isArchitectureDirectionY"),tS=o(function(e,t){let r=ds(e)&&eu(t),n=eu(e)&&ds(t);return r||n},"isArchitectureDirectionXY"),Jvt=o(function(e){let t=e[0],r=e[1],n=ds(t)&&eu(r),i=eu(t)&&ds(r);return n||i},"isArchitecturePairXY"),One=o(function(e){return e!=="LL"&&e!=="RR"&&e!=="TT"&&e!=="BB"},"isValidArchitectureDirectionPair"),Vb=o(function(e,t){let r=`${e}${t}`;return One(r)?r:void 0},"getArchitectureDirectionPair"),t2t=o(function([e,t],r){let n=r[0],i=r[1];return ds(n)?eu(i)?[e+(n==="L"?-1:1),t+(i==="T"?1:-1)]:[e+(n==="L"?-1:1),t]:ds(i)?[e+(i==="L"?1:-1),t+(n==="T"?1:-1)]:[e,t+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),e2t=o(function(e){return e==="LT"||e==="TL"?[1,1]:e==="BL"||e==="LB"?[1,-1]:e==="BR"||e==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),r2t=o(function(e){return e.type==="service"},"isArchitectureService"),n2t=o(function(e){return e.type==="junction"},"isArchitectureJunction"),eS=o(e=>e.data(),"edgeData"),zf=o(e=>e.data(),"nodeData")});function Di(e){let t=pt().architecture;return t?.[e]?t[e]:i2t[e]}var i2t,pr,Pne,Bne,Fne,zne,$ne,Gne,Vne,Une,Hne,Wne,Yne,qne,Xne,jne,ap,Ub=R(()=>{"use strict";hl();Ue();HE();Ci();rS();i2t=Er.architecture,pr=new mf(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:i2t,dataStructures:void 0,elements:{}})),Pne=o(()=>{pr.reset(),Ar()},"clear"),Bne=o(function({id:e,icon:t,in:r,title:n,iconText:i}){if(pr.records.registeredIds[e]!==void 0)throw new Error(`The service id [${e}] is already in use by another ${pr.records.registeredIds[e]}`);if(r!==void 0){if(e===r)throw new Error(`The service [${e}] cannot be placed within itself`);if(pr.records.registeredIds[r]===void 0)throw new Error(`The service [${e}]'s parent does not exist. Please make sure the parent is created before this service`);if(pr.records.registeredIds[r]==="node")throw new Error(`The service [${e}]'s parent is not a group`)}pr.records.registeredIds[e]="node",pr.records.nodes[e]={id:e,type:"service",icon:t,iconText:i,title:n,edges:[],in:r}},"addService"),Fne=o(()=>Object.values(pr.records.nodes).filter(r2t),"getServices"),zne=o(function({id:e,in:t}){pr.records.registeredIds[e]="node",pr.records.nodes[e]={id:e,type:"junction",edges:[],in:t}},"addJunction"),$ne=o(()=>Object.values(pr.records.nodes).filter(n2t),"getJunctions"),Gne=o(()=>Object.values(pr.records.nodes),"getNodes"),Vne=o(e=>pr.records.nodes[e],"getNode"),Une=o(function({id:e,icon:t,in:r,title:n}){if(pr.records.registeredIds[e]!==void 0)throw new Error(`The group id [${e}] is already in use by another ${pr.records.registeredIds[e]}`);if(r!==void 0){if(e===r)throw new Error(`The group [${e}] cannot be placed within itself`);if(pr.records.registeredIds[r]===void 0)throw new Error(`The group [${e}]'s parent does not exist. Please make sure the parent is created before this group`);if(pr.records.registeredIds[r]==="node")throw new Error(`The group [${e}]'s parent is not a group`)}pr.records.registeredIds[e]="group",pr.records.groups[e]={id:e,icon:t,title:n,in:r}},"addGroup"),Hne=o(()=>Object.values(pr.records.groups),"getGroups"),Wne=o(function({lhsId:e,rhsId:t,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:l,title:u}){if(!iz(r))throw new Error(`Invalid direction given for left hand side of edge ${e}--${t}. Expected (L,R,T,B) got ${r}`);if(!iz(n))throw new Error(`Invalid direction given for right hand side of edge ${e}--${t}. Expected (L,R,T,B) got ${n}`);if(pr.records.nodes[e]===void 0&&pr.records.groups[e]===void 0)throw new Error(`The left-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(pr.records.nodes[t]===void 0&&pr.records.groups[e]===void 0)throw new Error(`The right-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);let h=pr.records.nodes[e].in,f=pr.records.nodes[t].in;if(s&&h&&f&&h==f)throw new Error(`The left-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(l&&h&&f&&h==f)throw new Error(`The right-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let d={lhsId:e,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:t,rhsDir:n,rhsInto:a,rhsGroup:l,title:u};pr.records.edges.push(d),pr.records.nodes[e]&&pr.records.nodes[t]&&(pr.records.nodes[e].edges.push(pr.records.edges[pr.records.edges.length-1]),pr.records.nodes[t].edges.push(pr.records.edges[pr.records.edges.length-1]))},"addEdge"),Yne=o(()=>pr.records.edges,"getEdges"),qne=o(()=>{if(pr.records.dataStructures===void 0){let e=Object.entries(pr.records.nodes).reduce((s,[l,u])=>(s[l]=u.edges.reduce((h,f)=>{if(f.lhsId===l){let d=Vb(f.lhsDir,f.rhsDir);d&&(h[d]=f.rhsId)}else{let d=Vb(f.rhsDir,f.lhsDir);d&&(h[d]=f.lhsId)}return h},{}),s),{}),t=Object.keys(e)[0],r={[t]:1},n=Object.keys(e).reduce((s,l)=>l===t?s:{...s,[l]:1},{}),i=o(s=>{let l={[s]:[0,0]},u=[s];for(;u.length>0;){let h=u.shift();if(h){r[h]=1,delete n[h];let f=e[h],[d,p]=l[h];Object.entries(f).forEach(([m,g])=>{r[g]||(l[g]=t2t([d,p],m),u.push(g))})}}return l},"BFS"),a=[i(t)];for(;Object.keys(n).length>0;)a.push(i(Object.keys(n)[0]));pr.records.dataStructures={adjList:e,spatialMaps:a}}return pr.records.dataStructures},"getDataStructures"),Xne=o((e,t)=>{pr.records.elements[e]=t},"setElementForId"),jne=o(e=>pr.records.elements[e],"getElementById"),ap={clear:Pne,setDiagramTitle:cn,getDiagramTitle:Jr,setAccTitle:Mr,getAccTitle:Br,setAccDescription:Fr,getAccDescription:zr,addService:Bne,getServices:Fne,addJunction:zne,getJunctions:$ne,getNodes:Gne,getNode:Vne,addGroup:Une,getGroups:Hne,addEdge:Wne,getEdges:Yne,setElementForId:Xne,getElementById:jne,getDataStructures:qne};o(Di,"getConfigField")});var Kne,a2t,s2t=R(()=>{"use strict";Hg();ce();Dx();Ub();Kne=o((e,t)=>{pf(e,t),e.groups.map(t.addGroup),e.services.map(r=>t.addService({...r,type:"service"})),e.junctions.map(r=>t.addJunction({...r,type:"junction"})),e.edges.map(t.addEdge)},"populateDb"),a2t={parse:o(async e=>{let t=await Ul("architecture",e);V.debug(t),Kne(t,ap)},"parse")}});var Qne,o2t,l2t=R(()=>{"use strict";Qne=o(e=>` + .edge { + stroke-width: ${e.archEdgeWidth}; + stroke: ${e.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${e.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${e.archGroupBorderColor}; + stroke-width: ${e.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),o2t=Qne});var sz=Ti((Hb,az)=>{"use strict";o(function(t,r){typeof Hb=="object"&&typeof az=="object"?az.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Hb=="object"?Hb.layoutBase=r():t.layoutBase=r()},"webpackUniversalModuleDefinition")(Hb,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=e,r.c=t,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)}([function(e,t,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=s},function(e,t,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},e.exports=h},function(e,t,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,e.exports=i},function(e,t,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},e.exports=n},function(e,t,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var S=x.source.owner.getEdges().indexOf(x);if(S==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(S,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),S=w.length,T=0;Tv&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,S,T,E,_,A=this.nodes,L=A.length,M=0;Mw&&(y=w),vT&&(x=T),bw&&(y=w),vT&&(x=T),b=this.nodes.length){var L=0;v.forEach(function(M){M.owner==g&&L++}),L==this.nodes.length&&(this.isConnected=!0)}},e.exports=p},function(e,t,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=A,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):C===D&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===D?f>u?(l[2]=_,l[3]=A,I=!0):(l[2]=E,l[3]=T,I=!0):O===D&&(f>u?(l[2]=S,l[3]=T,I=!0):(l[2]=L,l[3]=A,I=!0)),k&&I)return!1;if(u>f?h>d?(P=this.getCardinalDirection(C,D,4),F=this.getCardinalDirection(O,D,2)):(P=this.getCardinalDirection(-C,D,3),F=this.getCardinalDirection(-O,D,1)):h>d?(P=this.getCardinalDirection(-C,D,1),F=this.getCardinalDirection(-O,D,3)):(P=this.getCardinalDirection(C,D,2),F=this.getCardinalDirection(O,D,4)),!k)switch(P){case 1:G=m,B=u+-w/D,l[0]=B,l[1]=G;break;case 2:B=x,G=h+b*D,l[0]=B,l[1]=G;break;case 3:G=v,B=u+w/D,l[0]=B,l[1]=G;break;case 4:B=y,G=h+-b*D,l[0]=B,l[1]=G;break}if(!I)switch(F){case 1:W=T,z=f+-N/D,l[2]=z,l[3]=W;break;case 2:z=L,W=d+M*D,l[2]=z,l[3]=W;break;case 3:W=A,z=f+N/D,l[2]=z,l[3]=W;break;case 4:z=_,W=d+-M*D,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,S=void 0,T=void 0,E=void 0,_=void 0,A=void 0,L=void 0;return w=p-f,T=h-d,_=d*f-h*p,S=v-g,E=m-y,A=y*g-m*v,L=w*E-S*T,L===0?null:(x=(T*A-E*_)/L,b=(S*_-w*A)/L,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,e.exports=i},function(e,t,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},e.exports=n},function(e,t,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,e.exports=n},function(e,t,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},e.exports=i},function(e,t,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var _=E.getEdges(),x=0;x<_.length;x++){var A=_[x].getOtherEnd(E);if(S.get(E)!=A)if(!b.has(A))w.push(A),S.set(A,E);else{g=!1;break}}}if(!g)m=[];else{var L=[].concat(n(b));m.push(L);for(var x=0;x-1&&T.splice(N,1)}b=new Set,S=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(A,1);var L=S.getNeighborsList();L.forEach(function(k){if(y.indexOf(k)<0){var I=v.get(k),C=I-1;C==1&&E.push(k),v.set(k,C)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},e.exports=p},function(e,t,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},e.exports=n},function(e,t,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},e.exports=i},function(e,t,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var S=0;Sh},"_defaultCompareFunction")}]),l}();e.exports=s},function(e,t,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=function(fe){for(var ee=[];fe-- >0;)ee.push(0);return ee}(Math.min(this.m+1,this.n)),this.U=function(fe){var ee=o(function pe(Me){if(Me.length==0)return 0;for(var oe=[],qe=0;qe0;)ee.push(0);return ee}(this.n),l=function(fe){for(var ee=[];fe-- >0;)ee.push(0);return ee}(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;D--)if(this.s[D]!==0){for(var P=D+1;P=0;j--){if(function(fe,ee){return fe&&ee}(j0;){var ut=void 0,et=void 0;for(ut=I-2;ut>=-1&&ut!==-1;ut--)if(Math.abs(s[ut])<=ct+ot*(Math.abs(this.s[ut])+Math.abs(this.s[ut+1]))){s[ut]=0;break}if(ut===I-2)et=4;else{var Mt=void 0;for(Mt=I-1;Mt>=ut&&Mt!==ut;Mt--){var it=(Mt!==I?Math.abs(s[Mt]):0)+(Mt!==ut+1?Math.abs(s[Mt-1]):0);if(Math.abs(this.s[Mt])<=ct+ot*it){this.s[Mt]=0;break}}Mt===ut?et=3:Mt===I-1?et=1:(et=2,ut=Mt)}switch(ut++,et){case 1:{var wt=s[I-2];s[I-2]=0;for(var Ot=I-2;Ot>=ut;Ot--){var St=n.hypot(this.s[Ot],wt),Vt=this.s[Ot]/St,Pt=wt/St;if(this.s[Ot]=St,Ot!==ut&&(wt=-Pt*s[Ot-1],s[Ot-1]=Vt*s[Ot-1]),h)for(var _t=0;_t=this.s[ut+1]);){var ne=this.s[ut];if(this.s[ut]=this.s[ut+1],this.s[ut+1]=ne,h&&utMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},e.exports=n},function(e,t,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(t,r){typeof Wb=="object"&&typeof oz=="object"?oz.exports=r(sz()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof Wb=="object"?Wb.coseBase=r(sz()):t.coseBase=r(t.layoutBase)},"webpackUniversalModuleDefinition")(Wb,function(e){return(()=>{"use strict";var t={45:(a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u},806:(a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h},767:(a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},880:(a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},578:(a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},765:(a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,w=l(551).DimensionD,S=l(551).Layout,T=l(551).Integer,E=l(551).IGeometry,_=l(551).LGraph,A=l(551).Transform,L=l(551).LinkedList;function M(){u.call(this),this.toBeTiled={},this.constraints={}}o(M,"CoSELayout"),M.prototype=Object.create(u.prototype);for(var N in u)M[N]=u[N];M.prototype.newGraphManager=function(){var k=new h(this);return this.graphManager=k,k},M.prototype.newGraph=function(k){return new f(null,this.graphManager,k)},M.prototype.newNode=function(k){return new d(this.graphManager,k)},M.prototype.newEdge=function(k){return new p(null,null,k)},M.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},M.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},M.prototype.layout=function(){var k=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return k&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},M.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var I=new Set(this.getAllNodes()),C=this.nodesWithGravity.filter(function(P){return I.has(P)});this.graphManager.setAllNodesToApplyGravitation(C)}}else{var k=this.getFlatForest();if(k.length>0)this.positionNodesRadially(k);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var I=new Set(this.getAllNodes()),C=this.nodesWithGravity.filter(function(O){return I.has(O)});this.graphManager.setAllNodesToApplyGravitation(C),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},M.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),I=this.nodesWithGravity.filter(function(D){return k.has(D)});this.graphManager.setAllNodesToApplyGravitation(I),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var C=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(C,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},M.prototype.getPositionsData=function(){for(var k=this.graphManager.getAllNodes(),I={},C=0;C0&&this.updateDisplacements();for(var C=0;C0&&(O.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var F=new Map,B=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(J){k.fixedNodesOnHorizontal.add(J),k.fixedNodesOnVertical.add(J)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var G=this.constraints.alignmentConstraint.vertical,C=0;C=2*J.length/3;q--)Z=Math.floor(Math.random()*(q+1)),H=J[q],J[q]=J[Z],J[Z]=H;return J},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(J){if(J.left){var Z=F.has(J.left)?F.get(J.left):J.left,H=F.has(J.right)?F.get(J.right):J.right;k.nodesInRelativeHorizontal.includes(Z)||(k.nodesInRelativeHorizontal.push(Z),k.nodeToRelativeConstraintMapHorizontal.set(Z,[]),k.dummyToNodeForVerticalAlignment.has(Z)?k.nodeToTempPositionMapHorizontal.set(Z,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(Z)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(Z,k.idToNodeMap.get(Z).getCenterX())),k.nodesInRelativeHorizontal.includes(H)||(k.nodesInRelativeHorizontal.push(H),k.nodeToRelativeConstraintMapHorizontal.set(H,[]),k.dummyToNodeForVerticalAlignment.has(H)?k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(H).getCenterX())),k.nodeToRelativeConstraintMapHorizontal.get(Z).push({right:H,gap:J.gap}),k.nodeToRelativeConstraintMapHorizontal.get(H).push({left:Z,gap:J.gap})}else{var q=B.has(J.top)?B.get(J.top):J.top,K=B.has(J.bottom)?B.get(J.bottom):J.bottom;k.nodesInRelativeVertical.includes(q)||(k.nodesInRelativeVertical.push(q),k.nodeToRelativeConstraintMapVertical.set(q,[]),k.dummyToNodeForHorizontalAlignment.has(q)?k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(q)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(q).getCenterY())),k.nodesInRelativeVertical.includes(K)||(k.nodesInRelativeVertical.push(K),k.nodeToRelativeConstraintMapVertical.set(K,[]),k.dummyToNodeForHorizontalAlignment.has(K)?k.nodeToTempPositionMapVertical.set(K,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(K)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(K,k.idToNodeMap.get(K).getCenterY())),k.nodeToRelativeConstraintMapVertical.get(q).push({bottom:K,gap:J.gap}),k.nodeToRelativeConstraintMapVertical.get(K).push({top:q,gap:J.gap})}});else{var W=new Map,Q=new Map;this.constraints.relativePlacementConstraint.forEach(function(J){if(J.left){var Z=F.has(J.left)?F.get(J.left):J.left,H=F.has(J.right)?F.get(J.right):J.right;W.has(Z)?W.get(Z).push(H):W.set(Z,[H]),W.has(H)?W.get(H).push(Z):W.set(H,[Z])}else{var q=B.has(J.top)?B.get(J.top):J.top,K=B.has(J.bottom)?B.get(J.bottom):J.bottom;Q.has(q)?Q.get(q).push(K):Q.set(q,[K]),Q.has(K)?Q.get(K).push(q):Q.set(K,[q])}});var j=o(function(Z,H){var q=[],K=[],ot=new L,ct=new Set,ut=0;return Z.forEach(function(et,Mt){if(!ct.has(Mt)){q[ut]=[],K[ut]=!1;var it=Mt;for(ot.push(it),ct.add(it),q[ut].push(it);ot.length!=0;){it=ot.shift(),H.has(it)&&(K[ut]=!0);var wt=Z.get(it);wt.forEach(function(Ot){ct.has(Ot)||(ot.push(Ot),ct.add(Ot),q[ut].push(Ot))})}ut++}}),{components:q,isFixed:K}},"constructComponents"),at=j(W,k.fixedNodesOnHorizontal);this.componentsOnHorizontal=at.components,this.fixedComponentsOnHorizontal=at.isFixed;var X=j(Q,k.fixedNodesOnVertical);this.componentsOnVertical=X.components,this.fixedComponentsOnVertical=X.isFixed}}},M.prototype.updateDisplacements=function(){var k=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(X){var J=k.idToNodeMap.get(X.nodeId);J.displacementX=0,J.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var I=this.constraints.alignmentConstraint.vertical,C=0;C1){var B;for(B=0;BO&&(O=Math.floor(F.y)),P=Math.floor(F.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-F.x/2,v.WORLD_CENTER_Y-F.y/2))},M.radialLayout=function(k,I,C){var O=Math.max(this.maxDiagonalInTree(k),m.DEFAULT_RADIAL_SEPARATION);M.branchRadialLayout(I,null,0,359,0,O);var D=_.calculateBounds(k),P=new A;P.setDeviceOrgX(D.getMinX()),P.setDeviceOrgY(D.getMinY()),P.setWorldOrgX(C.x),P.setWorldOrgY(C.y);for(var F=0;F1;){var q=H[0];H.splice(0,1);var K=j.indexOf(q);K>=0&&j.splice(K,1),J--,at--}I!=null?Z=(j.indexOf(H[0])+1)%J:Z=0;for(var ot=Math.abs(O-C)/at,ct=Z;X!=at;ct=++ct%J){var ut=j[ct].getOtherEnd(k);if(ut!=I){var et=(C+X*ot)%360,Mt=(et+ot)%360;M.branchRadialLayout(ut,k,et,Mt,D+P,P),X++}}},M.maxDiagonalInTree=function(k){for(var I=T.MIN_VALUE,C=0;CI&&(I=D)}return I},M.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},M.prototype.groupZeroDegreeMembers=function(){var k=this,I={};this.memberGroups={},this.idToDummyNode={};for(var C=[],O=this.graphManager.getAllNodes(),D=0;D"u"&&(I[B]=[]),I[B]=I[B].concat(P)}Object.keys(I).forEach(function(G){if(I[G].length>1){var z="DummyCompound_"+G;k.memberGroups[z]=I[G];var W=I[G][0].getParent(),Q=new d(k.graphManager);Q.id=z,Q.paddingLeft=W.paddingLeft||0,Q.paddingRight=W.paddingRight||0,Q.paddingBottom=W.paddingBottom||0,Q.paddingTop=W.paddingTop||0,k.idToDummyNode[z]=Q;var j=k.getGraphManager().add(k.newGraph(),Q),at=W.getChild();at.add(Q);for(var X=0;XD?(O.rect.x-=(O.labelWidth-D)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-D)/2):O.labelPosHorizontal=="right"&&O.setWidth(D+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(P+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>P?(O.rect.y-=(O.labelHeight-P)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-P)/2):O.labelPosVertical=="bottom"&&O.setHeight(P+O.labelHeight))}})},M.prototype.repopulateCompounds=function(){for(var k=this.compoundOrder.length-1;k>=0;k--){var I=this.compoundOrder[k],C=I.id,O=I.paddingLeft,D=I.paddingTop,P=I.labelMarginLeft,F=I.labelMarginTop;this.adjustLocations(this.tiledMemberPack[C],I.rect.x,I.rect.y,O,D,P,F)}},M.prototype.repopulateZeroDegreeMembers=function(){var k=this,I=this.tiledZeroDegreePack;Object.keys(I).forEach(function(C){var O=k.idToDummyNode[C],D=O.paddingLeft,P=O.paddingTop,F=O.labelMarginLeft,B=O.labelMarginTop;k.adjustLocations(I[C],O.rect.x,O.rect.y,D,P,F,B)})},M.prototype.getToBeTiled=function(k){var I=k.id;if(this.toBeTiled[I]!=null)return this.toBeTiled[I];var C=k.getChild();if(C==null)return this.toBeTiled[I]=!1,!1;for(var O=C.getNodes(),D=0;D0)return this.toBeTiled[I]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[I]=!1,!1}return this.toBeTiled[I]=!0,!0},M.prototype.getNodeDegree=function(k){for(var I=k.id,C=k.getEdges(),O=0,D=0;DW&&(W=j.rect.height)}C+=W+k.verticalPadding}},M.prototype.tileCompoundMembers=function(k,I){var C=this;this.tiledMemberPack=[],Object.keys(k).forEach(function(O){var D=I[O];if(C.tiledMemberPack[O]=C.tileNodes(k[O],D.paddingLeft+D.paddingRight),D.rect.width=C.tiledMemberPack[O].width,D.rect.height=C.tiledMemberPack[O].height,D.setCenter(C.tiledMemberPack[O].centerX,C.tiledMemberPack[O].centerY),D.labelMarginLeft=0,D.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=D.rect.width,F=D.rect.height;D.labelWidth&&(D.labelPosHorizontal=="left"?(D.rect.x-=D.labelWidth,D.setWidth(P+D.labelWidth),D.labelMarginLeft=D.labelWidth):D.labelPosHorizontal=="center"&&D.labelWidth>P?(D.rect.x-=(D.labelWidth-P)/2,D.setWidth(D.labelWidth),D.labelMarginLeft=(D.labelWidth-P)/2):D.labelPosHorizontal=="right"&&D.setWidth(P+D.labelWidth)),D.labelHeight&&(D.labelPosVertical=="top"?(D.rect.y-=D.labelHeight,D.setHeight(F+D.labelHeight),D.labelMarginTop=D.labelHeight):D.labelPosVertical=="center"&&D.labelHeight>F?(D.rect.y-=(D.labelHeight-F)/2,D.setHeight(D.labelHeight),D.labelMarginTop=(D.labelHeight-F)/2):D.labelPosVertical=="bottom"&&D.setHeight(F+D.labelHeight))}})},M.prototype.tileNodes=function(k,I){var C=this.tileNodesByFavoringDim(k,I,!0),O=this.tileNodesByFavoringDim(k,I,!1),D=this.getOrgRatio(C),P=this.getOrgRatio(O),F;return PB&&(B=X.getWidth())});var G=P/D,z=F/D,W=Math.pow(C-O,2)+4*(G+O)*(z+C)*D,Q=(O-C+Math.sqrt(W))/(2*(G+O)),j;I?(j=Math.ceil(Q),j==Q&&j++):j=Math.floor(Q);var at=j*(G+O)-O;return B>at&&(at=B),at+=O*2,at},M.prototype.tileNodesByFavoringDim=function(k,I,C){var O=m.TILING_PADDING_VERTICAL,D=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,F={rows:[],rowWidth:[],rowHeight:[],width:0,height:I,verticalPadding:O,horizontalPadding:D,centerX:0,centerY:0};P&&(F.idealRowWidth=this.calcIdealRowWidth(k,C));var B=o(function(J){return J.rect.width*J.rect.height},"getNodeArea"),G=o(function(J,Z){return B(Z)-B(J)},"areaCompareFcn");k.sort(function(X,J){var Z=G;return F.idealRowWidth?(Z=P,Z(X.id,J.id)):Z(X,J)});for(var z=0,W=0,Q=0;Q0&&(F+=k.horizontalPadding),k.rowWidth[C]=F,k.width0&&(B+=k.verticalPadding);var G=0;B>k.rowHeight[C]&&(G=k.rowHeight[C],k.rowHeight[C]=B,G=k.rowHeight[C]-G),k.height+=G,k.rows[C].push(I)},M.prototype.getShortestRowIndex=function(k){for(var I=-1,C=Number.MAX_VALUE,O=0;OC&&(I=O,C=k.rowWidth[O]);return I},M.prototype.canAddHorizontal=function(k,I,C){if(k.idealRowWidth){var O=k.rows.length-1,D=k.rowWidth[O];return D+I+k.horizontalPadding<=k.idealRowWidth}var P=this.getShortestRowIndex(k);if(P<0)return!0;var F=k.rowWidth[P];if(F+k.horizontalPadding+I<=k.width)return!0;var B=0;k.rowHeight[P]0&&(B=C+k.verticalPadding-k.rowHeight[P]);var G;k.width-F>=I+k.horizontalPadding?G=(k.height+B)/(F+I+k.horizontalPadding):G=(k.height+B)/k.width,B=C+k.verticalPadding;var z;return k.widthP&&I!=C){O.splice(-1,1),k.rows[C].push(D),k.rowWidth[I]=k.rowWidth[I]-P,k.rowWidth[C]=k.rowWidth[C]+P,k.width=k.rowWidth[instance.getLongestRowIndex(k)];for(var F=Number.MIN_VALUE,B=0;BF&&(F=O[B].height);I>0&&(F+=k.verticalPadding);var G=k.rowHeight[I]+k.rowHeight[C];k.rowHeight[I]=F,k.rowHeight[C]0)for(var at=D;at<=P;at++)j[0]+=this.grid[at][F-1].length+this.grid[at][F].length-1;if(P0)for(var at=F;at<=B;at++)j[3]+=this.grid[D-1][at].length+this.grid[D][at].length-1;for(var X=T.MAX_VALUE,J,Z,H=0;H{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var me=0;Zt.forEach(function(ne){Tt=="horizontal"?(yt.set(ne,x.has(ne)?b[x.get(ne)]:Ct.get(ne)),me+=yt.get(ne)):(yt.set(ne,x.has(ne)?w[x.get(ne)]:Ct.get(ne)),me+=yt.get(ne))}),me=me/Zt.length,le.forEach(function(ne){kt.has(ne)||yt.set(ne,me)})}else{var Ht=0;le.forEach(function(ne){Tt=="horizontal"?Ht+=x.has(ne)?b[x.get(ne)]:Ct.get(ne):Ht+=x.has(ne)?w[x.get(ne)]:Ct.get(ne)}),Ht=Ht/le.length,le.forEach(function(ne){yt.set(ne,Ht)})}});for(var ae=o(function(){var Zt=zt.shift(),me=st.get(Zt);me.forEach(function(Ht){if(yt.get(Ht.id)ne&&(ne=oe),qexe&&(xe=qe)}}catch(Pn){Ye=!0,fe=Pn}finally{try{!Se&&ee.return&&ee.return()}finally{if(Ye)throw fe}}var Cr=(me+ne)/2-(Ht+xe)/2,En=!0,or=!1,ln=void 0;try{for(var Ir=le[Symbol.iterator](),ii;!(En=(ii=Ir.next()).done);En=!0){var mn=ii.value;yt.set(mn,yt.get(mn)+Cr)}}catch(Pn){or=!0,ln=Pn}finally{try{!En&&Ir.return&&Ir.return()}finally{if(or)throw ln}}})}return yt},"findAppropriatePositionForRelativePlacement"),N=o(function(st){var Tt=0,kt=0,Ct=0,At=0;if(st.forEach(function(Ut){Ut.left?b[x.get(Ut.left)]-b[x.get(Ut.right)]>=0?Tt++:kt++:w[x.get(Ut.top)]-w[x.get(Ut.bottom)]>=0?Ct++:At++}),Tt>kt&&Ct>At)for(var $t=0;$tkt)for(var Nt=0;NtAt)for(var yt=0;yt1)y.fixedNodeConstraint.forEach(function(nt,st){O[st]=[nt.position.x,nt.position.y],D[st]=[b[x.get(nt.nodeId)],w[x.get(nt.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var nt=0;if(y.alignmentConstraint.vertical){for(var st=y.alignmentConstraint.vertical,Tt=o(function(yt){var Ut=new Set;st[yt].forEach(function(ke){Ut.add(ke)});var zt=new Set([].concat(u(Ut)).filter(function(ke){return B.has(ke)})),ae=void 0;zt.size>0?ae=b[x.get(zt.values().next().value)]:ae=L(Ut).x,st[yt].forEach(function(ke){O[nt]=[ae,w[x.get(ke)]],D[nt]=[b[x.get(ke)],w[x.get(ke)]],nt++})},"_loop2"),kt=0;kt0?ae=b[x.get(zt.values().next().value)]:ae=L(Ut).y,Ct[yt].forEach(function(ke){O[nt]=[b[x.get(ke)],ae],D[nt]=[b[x.get(ke)],w[x.get(ke)]],nt++})},"_loop3"),$t=0;$tQ&&(Q=W[at].length,j=at);if(Q0){var Vt={x:0,y:0};y.fixedNodeConstraint.forEach(function(nt,st){var Tt={x:b[x.get(nt.nodeId)],y:w[x.get(nt.nodeId)]},kt=nt.position,Ct=A(kt,Tt);Vt.x+=Ct.x,Vt.y+=Ct.y}),Vt.x/=y.fixedNodeConstraint.length,Vt.y/=y.fixedNodeConstraint.length,b.forEach(function(nt,st){b[st]+=Vt.x}),w.forEach(function(nt,st){w[st]+=Vt.y}),y.fixedNodeConstraint.forEach(function(nt){b[x.get(nt.nodeId)]=nt.position.x,w[x.get(nt.nodeId)]=nt.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Pt=y.alignmentConstraint.vertical,_t=o(function(st){var Tt=new Set;Pt[st].forEach(function(At){Tt.add(At)});var kt=new Set([].concat(u(Tt)).filter(function(At){return B.has(At)})),Ct=void 0;kt.size>0?Ct=b[x.get(kt.values().next().value)]:Ct=L(Tt).x,Tt.forEach(function(At){B.has(At)||(b[x.get(At)]=Ct)})},"_loop4"),dt=0;dt0?Ct=w[x.get(kt.values().next().value)]:Ct=L(Tt).y,Tt.forEach(function(At){B.has(At)||(w[x.get(At)]=Ct)})},"_loop5"),mt=0;mt{a.exports=e}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return t[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var c2t=Ti((Yb,cz)=>{"use strict";o(function(t,r){typeof Yb=="object"&&typeof cz=="object"?cz.exports=r(lz()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof Yb=="object"?Yb.cytoscapeFcose=r(lz()):t.cytoscapeFcose=r(t.coseBase)},"webpackUniversalModuleDefinition")(Yb,function(e){return(()=>{"use strict";var t={658:a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),w;!(y=(w=b.next()).done)&&(g.push(w.value),!(m&&g.length===m));y=!0);}catch(S){v=!0,x=S}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge(z)});for(var F=0;F1){w=x[0],S=w.connectedEdges().length,x.forEach(function(D){D.connectedEdges().length0&&g.set("dummy"+(g.size+1),_),A},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,w=!1,S=void 0;try{for(var T=p.nodeIndexes[Symbol.iterator](),E;!(b=(E=T.next()).done);b=!0){var _=E.value,A=u(_,2),L=A[0],M=A[1],N=m.cy.getElementById(L);if(N){var k=N.boundingBox(),I=p.xCoords[M]-k.w/2,C=p.xCoords[M]+k.w/2,O=p.yCoords[M]-k.h/2,D=p.yCoords[M]+k.h/2;Iy&&(y=C),Ox&&(x=D)}}}catch(z){w=!0,S=z}finally{try{!b&&T.return&&T.return()}finally{if(w)throw S}}var P=d.x-(y+g)/2,F=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function(z){return z+P}),p.yCoords=p.yCoords.map(function(z){return z+F})}else{Object.keys(p).forEach(function(z){var W=p[z],Q=W.getRect().x,j=W.getRect().x+W.getRect().width,at=W.getRect().y,X=W.getRect().y+W.getRect().height;Qy&&(y=j),atx&&(x=X)});var B=d.x-(y+g)/2,G=d.y-(x+v)/2;Object.keys(p).forEach(function(z){var W=p[z];W.setCenter(W.getCenterX()+B,W.getCenterY()+G)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,S=void 0,T=void 0,E=void 0,_=d.descendants().not(":parent"),A=_.length,L=0;Lw&&(y=w),vT&&(x=T),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,w){var S=b.cy,T=b.eles,E=T.nodes(),_=T.edges(),A=void 0,L=void 0,M=void 0,N={};b.randomize&&(A=w.nodeIndexes,L=w.xCoords,M=w.yCoords);var k=o(function(z){return typeof z=="function"},"isFn"),I=o(function(z,W){return k(z)?z(W):z},"optFn"),C=u.calcParentsWithoutChildren(S,T),O=o(function G(z,W,Q,j){for(var at=W.length,X=0;X0){var ot=void 0;ot=Q.getGraphManager().add(Q.newGraph(),H),G(ot,Z,Q,j)}}},"processChildrenList"),D=o(function(z,W,Q){for(var j=0,at=0,X=0;X0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=j/at:k(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function(z,W){W.fixedNodeConstraint&&(z.constraints.fixedNodeConstraint=W.fixedNodeConstraint),W.alignmentConstraint&&(z.constraints.alignmentConstraint=W.alignmentConstraint),W.relativePlacementConstraint&&(z.constraints.relativePlacementConstraint=W.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var F=new h,B=F.newGraphManager();return O(B.addRoot(),u.getTopMostNodes(E),F,b),D(F,B,_),P(F,b),F.runLayout(),N},"coseLayout");a.exports={coseLayout:v}},212:(a,s,l)=>{var u=function(){function b(w,S){for(var T=0;T0)if(D){var B=d.getTopMostNodes(T.eles.nodes());if(k=d.connectComponents(E,T.eles,B),k.forEach(function(it){var wt=it.boundingBox();I.push({x:wt.x1+wt.w/2,y:wt.y1+wt.h/2})}),T.randomize&&k.forEach(function(it){T.eles=it,A.push(m(T))}),T.quality=="default"||T.quality=="proof"){var G=E.collection();if(T.tile){var z=new Map,W=[],Q=[],j=0,at={nodeIndexes:z,xCoords:W,yCoords:Q},X=[];if(k.forEach(function(it,wt){it.edges().length==0&&(it.nodes().forEach(function(Ot,St){G.merge(it.nodes()[St]),Ot.isParent()||(at.nodeIndexes.set(it.nodes()[St].id(),j++),at.xCoords.push(it.nodes()[0].position().x),at.yCoords.push(it.nodes()[0].position().y))}),X.push(wt))}),G.length>1){var J=G.boundingBox();I.push({x:J.x1+J.w/2,y:J.y1+J.h/2}),k.push(G),A.push(at);for(var Z=X.length-1;Z>=0;Z--)k.splice(X[Z],1),A.splice(X[Z],1),I.splice(X[Z],1)}}k.forEach(function(it,wt){T.eles=it,N.push(y(T,A[wt])),d.relocateComponent(I[wt],N[wt],T)})}else k.forEach(function(it,wt){d.relocateComponent(I[wt],A[wt],T)});var H=new Set;if(k.length>1){var q=[],K=_.filter(function(it){return it.css("display")=="none"});k.forEach(function(it,wt){var Ot=void 0;if(T.quality=="draft"&&(Ot=A[wt].nodeIndexes),it.nodes().not(K).length>0){var St={};St.edges=[],St.nodes=[];var Vt=void 0;it.nodes().not(K).forEach(function(Pt){if(T.quality=="draft")if(!Pt.isParent())Vt=Ot.get(Pt.id()),St.nodes.push({x:A[wt].xCoords[Vt]-Pt.boundingbox().w/2,y:A[wt].yCoords[Vt]-Pt.boundingbox().h/2,width:Pt.boundingbox().w,height:Pt.boundingbox().h});else{var _t=d.calcBoundingBox(Pt,A[wt].xCoords,A[wt].yCoords,Ot);St.nodes.push({x:_t.topLeftX,y:_t.topLeftY,width:_t.width,height:_t.height})}else N[wt][Pt.id()]&&St.nodes.push({x:N[wt][Pt.id()].getLeft(),y:N[wt][Pt.id()].getTop(),width:N[wt][Pt.id()].getWidth(),height:N[wt][Pt.id()].getHeight()})}),it.edges().forEach(function(Pt){var _t=Pt.source(),dt=Pt.target();if(_t.css("display")!="none"&&dt.css("display")!="none")if(T.quality=="draft"){var Y=Ot.get(_t.id()),ft=Ot.get(dt.id()),mt=[],rt=[];if(_t.isParent()){var ht=d.calcBoundingBox(_t,A[wt].xCoords,A[wt].yCoords,Ot);mt.push(ht.topLeftX+ht.width/2),mt.push(ht.topLeftY+ht.height/2)}else mt.push(A[wt].xCoords[Y]),mt.push(A[wt].yCoords[Y]);if(dt.isParent()){var nt=d.calcBoundingBox(dt,A[wt].xCoords,A[wt].yCoords,Ot);rt.push(nt.topLeftX+nt.width/2),rt.push(nt.topLeftY+nt.height/2)}else rt.push(A[wt].xCoords[ft]),rt.push(A[wt].yCoords[ft]);St.edges.push({startX:mt[0],startY:mt[1],endX:rt[0],endY:rt[1]})}else N[wt][_t.id()]&&N[wt][dt.id()]&&St.edges.push({startX:N[wt][_t.id()].getCenterX(),startY:N[wt][_t.id()].getCenterY(),endX:N[wt][dt.id()].getCenterX(),endY:N[wt][dt.id()].getCenterY()})}),St.nodes.length>0&&(q.push(St),H.add(wt))}});var ot=O.packComponents(q,T.randomize).shifts;if(T.quality=="draft")A.forEach(function(it,wt){var Ot=it.xCoords.map(function(Vt){return Vt+ot[wt].dx}),St=it.yCoords.map(function(Vt){return Vt+ot[wt].dy});it.xCoords=Ot,it.yCoords=St});else{var ct=0;H.forEach(function(it){Object.keys(N[it]).forEach(function(wt){var Ot=N[it][wt];Ot.setCenter(Ot.getCenterX()+ot[ct].dx,Ot.getCenterY()+ot[ct].dy)}),ct++})}}}else{var P=T.eles.boundingBox();if(I.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),T.randomize){var F=m(T);A.push(F)}T.quality=="default"||T.quality=="proof"?(N.push(y(T,A[0])),d.relocateComponent(I[0],N[0],T)):d.relocateComponent(I[0],A[0],T)}var ut=o(function(wt,Ot){if(T.quality=="default"||T.quality=="proof"){typeof wt=="number"&&(wt=Ot);var St=void 0,Vt=void 0,Pt=wt.data("id");return N.forEach(function(dt){Pt in dt&&(St={x:dt[Pt].getRect().getCenterX(),y:dt[Pt].getRect().getCenterY()},Vt=dt[Pt])}),T.nodeDimensionsIncludeLabels&&(Vt.labelWidth&&(Vt.labelPosHorizontal=="left"?St.x+=Vt.labelWidth/2:Vt.labelPosHorizontal=="right"&&(St.x-=Vt.labelWidth/2)),Vt.labelHeight&&(Vt.labelPosVertical=="top"?St.y+=Vt.labelHeight/2:Vt.labelPosVertical=="bottom"&&(St.y-=Vt.labelHeight/2))),St==null&&(St={x:wt.position("x"),y:wt.position("y")}),{x:St.x,y:St.y}}else{var _t=void 0;return A.forEach(function(dt){var Y=dt.nodeIndexes.get(wt.id());Y!=null&&(_t={x:dt.xCoords[Y],y:dt.yCoords[Y]})}),_t==null&&(_t={x:wt.position("x"),y:wt.position("y")}),{x:_t.x,y:_t.y}}},"getPositions");if(T.quality=="default"||T.quality=="proof"||T.randomize){var et=d.calcParentsWithoutChildren(E,_),Mt=_.filter(function(it){return it.css("display")=="none"});T.eles=_.not(Mt),_.nodes().not(":parent").not(Mt).layoutPositions(S,T,ut),et.length>0&&et.forEach(function(it){it.position(ut(it))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b}();a.exports=x},657:(a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,w=new Map,S=new Map,T=[],E=[],_=[],A=[],L=[],M=[],N=[],k=[],I=void 0,C=void 0,O=1e8,D=1e-9,P=m.piTol,F=m.samplingType,B=m.nodeSeparation,G=void 0,z=o(function(){for(var Tt=0,kt=0,Ct=!1;kt=$t;){yt=At[$t++];for(var le=T[yt],Zt=0;Ztae&&(ae=L[Ht],ke=Ht)}return ke},"BFS"),Q=o(function(Tt){var kt=void 0;if(Tt){kt=Math.floor(Math.random()*C),I=kt;for(var At=0;At=1)break;ae=zt}for(var le=0;le=1)break;ae=zt}for(var me=0;me0&&(kt.isParent()?T[Tt].push(S.get(kt.id())):T[Tt].push(kt.id()))})});var et=o(function(Tt){var kt=w.get(Tt),Ct=void 0;b.get(Tt).forEach(function(At){g.getElementById(At).isParent()?Ct=S.get(At):Ct=At,T[kt].push(Ct),T[w.get(Ct)].push(Tt)})},"_loop"),Mt=!0,it=!1,wt=void 0;try{for(var Ot=b.keys()[Symbol.iterator](),St;!(Mt=(St=Ot.next()).done);Mt=!0){var Vt=St.value;et(Vt)}}catch(st){it=!0,wt=st}finally{try{!Mt&&Ot.return&&Ot.return()}finally{if(it)throw wt}}C=w.size;var Pt=void 0;if(C>2){G=C{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h},140:a=>{a.exports=e}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return t[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var F1,sp,uz=R(()=>{"use strict";iu();F1=o(e=>`${e}`,"wrapIcon"),sp={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:F1('')},server:{body:F1('')},disk:{body:F1('')},internet:{body:F1('')},cloud:{body:F1('')},unknown:CS,blank:{body:F1("")}}}});var u2t,h2t,f2t,d2t,p2t=R(()=>{"use strict";iu();Ue();Nl();Ub();uz();rS();u2t=o(async function(e,t){let r=Di("padding"),n=Di("iconSize"),i=n/2,a=n/6,s=a/2;await Promise.all(t.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:m,targetArrow:g,targetGroup:y,label:v}=eS(l),{x,y:b}=l[0].sourceEndpoint(),{x:w,y:S}=l[0].midpoint(),{x:T,y:E}=l[0].targetEndpoint(),_=r+4;if(d&&(ds(h)?x+=h==="L"?-_:_:b+=h==="T"?-_:_+18),y&&(ds(m)?T+=m==="L"?-_:_:E+=m==="T"?-_:_+18),!d&&ap.getNode(u)?.type==="junction"&&(ds(h)?x+=h==="L"?i:-i:b+=h==="T"?i:-i),!y&&ap.getNode(p)?.type==="junction"&&(ds(m)?T+=m==="L"?i:-i:E+=m==="T"?i:-i),l[0]._private.rscratch){let A=e.insert("g");if(A.insert("path").attr("d",`M ${x},${b} L ${w},${S} L${T},${E} `).attr("class","edge"),f){let L=ds(h)?Gb[h](x,a):x-s,M=eu(h)?Gb[h](b,a):b-s;A.insert("polygon").attr("points",nz[h](a)).attr("transform",`translate(${L},${M})`).attr("class","arrow")}if(g){let L=ds(m)?Gb[m](T,a):T-s,M=eu(m)?Gb[m](E,a):E-s;A.insert("polygon").attr("points",nz[m](a)).attr("transform",`translate(${L},${M})`).attr("class","arrow")}if(v){let L=tS(h,m)?"XY":ds(h)?"X":"Y",M=0;L==="X"?M=Math.abs(x-T):L==="Y"?M=Math.abs(b-E)/1.5:M=Math.abs(x-T)/2;let N=A.append("g");if(await ia(N,v,{useHtmlLabels:!1,width:M,classes:"architecture-service-label"},pt()),N.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),L==="X")N.attr("transform","translate("+w+", "+S+")");else if(L==="Y")N.attr("transform","translate("+w+", "+S+") rotate(-90)");else if(L==="XY"){let k=Vb(h,m);if(k&&Jvt(k)){let I=N.node().getBoundingClientRect(),[C,O]=e2t(k);N.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*C*O*45})`);let D=N.node().getBoundingClientRect();N.attr("transform",` + translate(${w}, ${S-I.height/2}) + translate(${C*D.width/2}, ${O*D.height/2}) + rotate(${-1*C*O*45}, 0, ${I.height/2}) + `)}}}}}))},"drawEdges"),h2t=o(async function(e,t){let n=Di("padding")*.75,i=Di("fontSize"),s=Di("iconSize")/2;await Promise.all(t.nodes().map(async l=>{let u=zf(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox();e.append("rect").attr("x",d+s).attr("y",p+s).attr("width",f).attr("height",h).attr("class","node-bkg");let m=e.append("g"),g=d,y=p;if(u.icon){let v=m.append("g");v.html(`${await Ao(u.icon,{height:n,width:n,fallbackPrefix:sp.prefix})}`),v.attr("transform","translate("+(g+s+1)+", "+(y+s+1)+")"),g+=n,y+=i/2-1-2}if(u.label){let v=m.append("g");await ia(v,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},pt()),v.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),v.attr("transform","translate("+(g+s+4)+", "+(y+s+2)+")")}}}))},"drawGroups"),f2t=o(async function(e,t,r){for(let n of r){let i=t.append("g"),a=Di("iconSize");if(n.title){let h=i.append("g");await ia(h,n.title,{useHtmlLabels:!1,width:a*1.5,classes:"architecture-service-label"},pt()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(n.icon)s.html(`${await Ao(n.icon,{height:a,width:a,fallbackPrefix:sp.prefix})}`);else if(n.iconText){s.html(`${await Ao("blank",{height:a,width:a,fallbackPrefix:sp.prefix})}`);let d=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/p)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:u}=i._groups[0][0].getBBox();n.width=l,n.height=u,e.setElementForId(n.id,i)}return 0},"drawServices"),d2t=o(function(e,t,r){r.forEach(n=>{let i=t.append("g"),a=Di("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,e.setElementForId(n.id,i)})},"drawJunctions")});function Zne(e,t){e.forEach(r=>{t.add({group:"nodes",data:{type:"service",id:r.id,icon:r.icon,label:r.title,parent:r.in,width:Di("iconSize"),height:Di("iconSize")},classes:"node-service"})})}function Jne(e,t){e.forEach(r=>{t.add({group:"nodes",data:{type:"junction",id:r.id,parent:r.in,width:Di("iconSize"),height:Di("iconSize")},classes:"node-junction"})})}function tie(e,t){t.nodes().map(r=>{let n=zf(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,e.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function eie(e,t){e.forEach(r=>{t.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function rie(e,t){e.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=tS(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};t.add({group:"edges",data:m,classes:p})})}function nie(e){let t=e.map(i=>{let a={},s={};return Object.entries(i).forEach(([l,[u,h]])=>{a[h]||(a[h]=[]),s[u]||(s[u]=[]),a[h].push(l),s[u].push(l)}),{horiz:Object.values(a).filter(l=>l.length>1),vert:Object.values(s).filter(l=>l.length>1)}}),[r,n]=t.reduce(([i,a],{horiz:s,vert:l})=>[[...i,...s],[...a,...l]],[[],[]]);return{horizontal:r,vertical:n}}function iie(e){let t=[],r=o(i=>`${i[0]},${i[1]}`,"posToStr"),n=o(i=>i.split(",").map(a=>parseInt(a)),"strToPos");return e.forEach(i=>{let a=Object.fromEntries(Object.entries(i).map(([h,f])=>[r(f),h])),s=[r([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){let h=s.shift();if(h){l[h]=1;let f=a[h];if(f){let d=n(h);Object.entries(u).forEach(([p,m])=>{let g=r([d[0]+m[0],d[1]+m[1]]),y=a[g];y&&!l[g]&&(s.push(g),t.push({[rz[p]]:y,[rz[Zvt(p)]]:f,gap:1.5*Di("iconSize")}))})}}}}),t}function aie(e,t,r,n,{spatialMaps:i}){return new Promise(a=>{let s=Gt("body").append("div").attr("id","cy").attr("style","display:none"),l=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Di("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Di("padding")}px`}}]});s.remove(),eie(r,l),Zne(e,l),Jne(t,l),rie(n,l);let u=nie(i),h=iie(i),f=l.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(d){let[p,m]=d.connectedNodes(),{parent:g}=zf(p),{parent:y}=zf(m);return g===y?1.5*Di("iconSize"):.5*Di("iconSize")},edgeElasticity(d){let[p,m]=d.connectedNodes(),{parent:g}=zf(p),{parent:y}=zf(m);return g===y?.45:.001},alignmentConstraint:u,relativePlacementConstraint:h});f.one("layoutstop",()=>{function d(p,m,g,y){let v,x,{x:b,y:w}=p,{x:S,y:T}=m;x=(y-w+(b-g)*(w-T)/(b-S))/Math.sqrt(1+Math.pow((w-T)/(b-S),2)),v=Math.sqrt(Math.pow(y-w,2)+Math.pow(g-b,2)-Math.pow(x,2));let E=Math.sqrt(Math.pow(S-b,2)+Math.pow(T-w,2));v=v/E;let _=(S-b)*(y-w)-(T-w)*(g-b);switch(!0){case _>=0:_=1;break;case _<0:_=-1;break}let A=(S-b)*(g-b)+(T-w)*(y-w);switch(!0){case A>=0:A=1;break;case A<0:A=-1;break}return x=Math.abs(x)*_,v=v*A,{distances:x,weights:v}}o(d,"getSegmentWeights"),l.startBatch();for(let p of Object.values(l.edges()))if(p.data?.()){let{x:m,y:g}=p.source().position(),{x:y,y:v}=p.target().position();if(m!==y&&g!==v){let x=p.sourceEndpoint(),b=p.targetEndpoint(),{sourceDir:w}=eS(p),[S,T]=eu(w)?[x.x,b.y]:[b.x,x.y],{weights:E,distances:_}=d(x,b,S,T);p.style("segment-distances",_),p.style("segment-weights",E)}}l.endBatch(),f.run()}),f.run(),l.ready(d=>{V.info("Ready",d),a(l)})})}var m2t,sie,g2t,y2t=R(()=>{"use strict";iu();_F();m2t=Qi(c2t(),1);ur();ce();xf();Jn();Ub();uz();rS();p2t();a4([{name:sp.prefix,icons:sp}]);sl.use(m2t.default);o(Zne,"addServices");o(Jne,"addJunctions");o(tie,"positionNodes");o(eie,"addGroups");o(rie,"addEdges");o(nie,"getAlignments");o(iie,"getRelativeConstraints");o(aie,"layoutArchitecture");sie=o(async(e,t,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Vs(t),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await f2t(i,p,a),d2t(i,p,s);let g=await aie(a,s,l,u,h);await u2t(d,g),await h2t(m,g),tie(i,g),No(void 0,f,Di("padding"),Di("useMaxWidth"))},"draw"),g2t={draw:sie}});var v2t={};xr(v2t,{diagram:()=>oie});var oie,x2t=R(()=>{"use strict";s2t();Ub();l2t();y2t();oie={parser:a2t,db:ap,renderer:g2t,styles:o2t}});var qie={};xr(qie,{default:()=>Yie});iu();SS();jf();var Oj="c4",$St=o(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),GSt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Ij(),Mj));return{id:Oj,diagram:e}},"loader"),VSt={id:Oj,detector:$St,loader:GSt},Pj=VSt;var qit="flowchart",UOt=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),HOt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ek(),tk));return{id:qit,diagram:e}},"loader"),WOt={id:qit,detector:UOt,loader:HOt},Xit=WOt;var jit="flowchart-v2",YOt=o((e,t)=>t?.flowchart?.defaultRenderer==="dagre-d3"?!1:(t?.flowchart?.defaultRenderer==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(e)),"detector"),qOt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ek(),tk));return{id:jit,diagram:e}},"loader"),XOt={id:jit,detector:YOt,loader:qOt},Kit=XOt;var Cat="er",kPt=o(e=>/^\s*erDiagram/.test(e),"detector"),EPt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Eat(),kat));return{id:Cat,diagram:e}},"loader"),CPt={id:Cat,detector:kPt,loader:EPt},Sat=CPt;var Put="gitGraph",j$t=o(e=>/^\s*gitGraph/.test(e),"detector"),K$t=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Out(),Iut));return{id:Put,diagram:e}},"loader"),Q$t={id:Put,detector:j$t,loader:K$t},But=Q$t;var dht="gantt",FGt=o(e=>/^\s*gantt/.test(e),"detector"),zGt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(fht(),hht));return{id:dht,diagram:e}},"loader"),$Gt={id:dht,detector:FGt,loader:zGt},pht=$Gt;var kht="info",YGt=o(e=>/^\s*info/.test(e),"detector"),qGt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Tht(),wht));return{id:kht,diagram:e}},"loader"),Eht={id:kht,detector:YGt,loader:qGt};var Iht="pie",sVt=o(e=>/^\s*pie/.test(e),"detector"),oVt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Mht(),Nht));return{id:Iht,diagram:e}},"loader"),Oht={id:Iht,detector:sVt,loader:oVt};var Xht="quadrantChart",CVt=o(e=>/^\s*quadrantChart/.test(e),"detector"),SVt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(qht(),Yht));return{id:Xht,diagram:e}},"loader"),AVt={id:Xht,detector:CVt,loader:SVt},jht=AVt;var Tft="xychart",UVt=o(e=>/^\s*xychart-beta/.test(e),"detector"),HVt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(wft(),bft));return{id:Tft,diagram:e}},"loader"),WVt={id:Tft,detector:UVt,loader:HVt},kft=WVt;var zft="requirement",xUt=o(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),bUt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Fft(),Bft));return{id:zft,diagram:e}},"loader"),wUt={id:zft,detector:xUt,loader:bUt},$ft=wUt;var ddt="sequence",EHt=o(e=>/^\s*sequenceDiagram/.test(e),"detector"),CHt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(fdt(),hdt));return{id:ddt,diagram:e}},"loader"),SHt={id:ddt,detector:EHt,loader:CHt},pdt=SHt;var Ldt="class",sWt=o((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),oWt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(_dt(),Adt));return{id:Ldt,diagram:e}},"loader"),lWt={id:Ldt,detector:sWt,loader:oWt},Ddt=lWt;var E0t="classDiagram",fYt=o((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),dYt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(k0t(),T0t));return{id:E0t,diagram:e}},"loader"),pYt={id:E0t,detector:fYt,loader:dYt},C0t=pYt;var gpt="state",cqt=o((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),uqt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(mpt(),ppt));return{id:gpt,diagram:e}},"loader"),hqt={id:gpt,detector:cqt,loader:uqt},ypt=hqt;var bpt="stateDiagram",dqt=o((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),pqt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(xpt(),vpt));return{id:bpt,diagram:e}},"loader"),mqt={id:bpt,detector:dqt,loader:pqt},wpt=mqt;var Bpt="journey",Pqt=o(e=>/^\s*journey/.test(e),"detector"),Bqt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Ppt(),Opt));return{id:Bpt,diagram:e}},"loader"),Fqt={id:Bpt,detector:Pqt,loader:Bqt},Fpt=Fqt;ce();xf();Jn();var zqt=o((e,t,r)=>{V.debug(`rendering svg for syntax error +`);let n=Vs(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Pr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),TB={draw:zqt},zpt=TB;var $qt={db:{},renderer:TB,parser:{parse:o(()=>{},"parse")}},$pt=$qt;var Gpt="flowchart-elk",Gqt=o((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*flowchart|graph/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),Vqt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(ek(),tk));return{id:Gpt,diagram:e}},"loader"),Uqt={id:Gpt,detector:Gqt,loader:Vqt},Vpt=Uqt;var pmt="timeline",lXt=o(e=>/^\s*timeline/.test(e),"detector"),cXt=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(dmt(),fmt));return{id:pmt,diagram:e}},"loader"),uXt={id:pmt,detector:lXt,loader:cXt},mmt=uXt;var Myt="mindmap",gre=o(e=>/^\s*mindmap/.test(e),"detector"),yre=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(Nyt(),Ryt));return{id:Myt,diagram:e}},"loader"),vre={id:Myt,detector:gre,loader:yre},Iyt=vre;var dvt="sankey",$re=o(e=>/^\s*sankey-beta/.test(e),"detector"),Gre=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(fvt(),hvt));return{id:dvt,diagram:e}},"loader"),Vre={id:dvt,detector:$re,loader:Gre},pvt=Vre;var Evt="packet",ene=o(e=>/^\s*packet-beta/.test(e),"detector"),rne=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(kvt(),Tvt));return{id:Evt,diagram:e}},"loader"),Cvt={id:Evt,detector:ene,loader:rne};var Kvt="block",Nne=o(e=>/^\s*block-beta/.test(e),"detector"),Mne=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(jvt(),Xvt));return{id:Kvt,diagram:e}},"loader"),Ine={id:Kvt,detector:Nne,loader:Mne},Qvt=Ine;var b2t="architecture",lie=o(e=>/^\s*architecture/.test(e),"detector"),cie=o(async()=>{let{diagram:e}=await Promise.resolve().then(()=>(x2t(),v2t));return{id:b2t,diagram:e}},"loader"),uie={id:b2t,detector:lie,loader:cie},w2t=uie;jf();Ue();var T2t=!1,z1=o(()=>{T2t||(T2t=!0,id("error",$pt,e=>e.toLowerCase().trim()==="error"),id("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),c4(Pj,C0t,Ddt,Sat,pht,Eht,Oht,$ft,pdt,Vpt,Kit,Xit,Iyt,mmt,But,wpt,ypt,Fpt,jht,pvt,Cvt,kft,Qvt,w2t))},"addDiagrams");ce();jf();Ue();var k2t=o(async()=>{V.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(Xf).map(async([r,{detector:n,loader:i}])=>{if(i)try{by(r)}catch{try{let{diagram:a,id:s}=await i();id(s,a,n)}catch(a){throw V.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Xf[r],a}}}))).filter(r=>r.status==="rejected");if(t.length>0){V.error(`Failed to load ${t.length} external diagrams`);for(let r of t)V.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");ce();ur();var nS="comm",iS="rule",aS="decl";var E2t="@import";var C2t="@keyframes";var S2t="@layer";var hz=Math.abs,qb=String.fromCharCode;function sS(e){return e.trim()}o(sS,"trim");function Xb(e,t,r){return e.replace(t,r)}o(Xb,"replace");function A2t(e,t,r){return e.indexOf(t,r)}o(A2t,"indexof");function op(e,t){return e.charCodeAt(t)|0}o(op,"charat");function $f(e,t,r){return e.slice(t,r)}o($f,"substr");function ko(e){return e.length}o(ko,"strlen");function _2t(e){return e.length}o(_2t,"sizeof");function $1(e,t){return t.push(e),e}o($1,"append");var oS=1,G1=1,L2t=0,ol=0,Ri=0,U1="";function lS(e,t,r,n,i,a,s,l){return{value:e,root:t,parent:r,type:n,props:i,children:a,line:oS,column:G1,length:s,return:"",siblings:l}}o(lS,"node");function D2t(){return Ri}o(D2t,"char");function R2t(){return Ri=ol>0?op(U1,--ol):0,G1--,Ri===10&&(G1=1,oS--),Ri}o(R2t,"prev");function ll(){return Ri=ol2||V1(Ri)>3?"":" "}o(I2t,"whitespace");function O2t(e,t){for(;--t&&ll()&&!(Ri<48||Ri>102||Ri>57&&Ri<65||Ri>70&&Ri<97););return cS(e,jb()+(t<6&&sh()==32&&ll()==32))}o(O2t,"escaping");function fz(e){for(;ll();)switch(Ri){case e:return ol;case 34:case 39:e!==34&&e!==39&&fz(Ri);break;case 40:e===41&&fz(e);break;case 92:ll();break}return ol}o(fz,"delimiter");function P2t(e,t){for(;ll()&&e+Ri!==57;)if(e+Ri===84&&sh()===47)break;return"/*"+cS(t,ol-1)+"*"+qb(e===47?e:ll())}o(P2t,"commenter");function B2t(e){for(;!V1(sh());)ll();return cS(e,ol)}o(B2t,"identifier");function $2t(e){return M2t(hS("",null,null,null,[""],e=N2t(e),0,[0],e))}o($2t,"compile");function hS(e,t,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,w="",S=i,T=a,E=n,_=w;v;)switch(g=b,b=ll()){case 40:if(g!=108&&op(_,d-1)==58){A2t(_+=Xb(uS(b),"&","&\f"),"&\f",hz(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:_+=uS(b);break;case 9:case 10:case 13:case 32:_+=I2t(g);break;case 92:_+=O2t(jb()-1,7);continue;case 47:switch(sh()){case 42:case 47:$1(hie(P2t(ll(),jb()),t,r,u),u),(V1(g||1)==5||V1(sh()||1)==5)&&ko(_)&&$f(_,-1,void 0)!==" "&&(_+=" ");break;default:_+="/"}break;case 123*y:l[h++]=ko(_)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(_=Xb(_,/\f/g,"")),m>0&&(ko(_)-d||y===0&&g===47)&&$1(m>32?z2t(_+";",n,r,d-1,u):z2t(Xb(_," ","")+";",n,r,d-2,u),u);break;case 59:_+=";";default:if($1(E=F2t(_,t,r,h,f,i,l,w,S=[],T=[],d,a),a),b===123)if(f===0)hS(_,t,E,E,S,a,d,l,T);else switch(p===99&&op(_,3)===110?100:p){case 100:case 108:case 109:case 115:hS(e,E,E,n&&$1(F2t(e,E,E,0,0,i,l,w,i,S=[],d,T),T),i,T,d,l,n?S:T);break;default:hS(_,E,E,E,[""],T,0,l,T)}}h=f=m=0,y=x=1,w=_="",d=s;break;case 58:d=1+ko(_),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&R2t()==125)continue}switch(_+=qb(b),b*y){case 38:x=f>0?1:(_+="\f",-1);break;case 44:l[h++]=(ko(_)-1)*x,x=1;break;case 64:sh()===45&&(_+=uS(ll())),p=sh(),f=d=ko(w=_+=B2t(jb())),b++;break;case 45:g===45&&ko(_)==2&&(y=0)}}return a}o(hS,"parse");function F2t(e,t,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=_2t(m),y=0,v=0,x=0;y0?m[b]+" "+w:Xb(w,/&\f/g,m[b])))&&(u[x++]=S);return lS(e,t,r,i===0?iS:l,u,h,f,d)}o(F2t,"ruleset");function hie(e,t,r,n){return lS(e,t,r,nS,qb(D2t()),$f(e,2,-2),0,n)}o(hie,"comment");function z2t(e,t,r,n,i){return lS(e,t,r,aS,$f(e,0,n),$f(e,n+1,-1),n,i)}o(z2t,"declaration");function fS(e,t){for(var r="",n=0;n{H2t.forEach(e=>{e()}),H2t=[]},"attachFunctions");ce();var Y2t=o(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");l4();sL();function q2t(e){let t=e.match(o4);if(!t)return{text:e,metadata:{}};let r=j5(t[1],{schema:X5})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:e.slice(t[0].length),metadata:n}}o(q2t,"extractFrontMatter");_r();var die=o(e=>e.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(t,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),pie=o(e=>{let{text:t,metadata:r}=q2t(e),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:t}},"processFrontmatter"),mie=o(e=>{let t=Oe.detectInit(e)??{},r=Oe.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(t.wrap=!0),{text:Tj(e),directive:t}},"processDirectives");function dz(e){let t=die(e),r=pie(t),n=mie(r.text),i=Ss(r.config,n.directive);return e=Y2t(n.text),{code:e,title:r.title,config:i}}o(dz,"preprocessDiagram");z7();g4();_r();function X2t(e){let t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(X2t,"toBase64");var gie=5e4,yie="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",vie="sandbox",xie="loose",bie="http://www.w3.org/2000/svg",wie="http://www.w3.org/1999/xlink",Tie="http://www.w3.org/1999/xhtml",kie="100%",Eie="100%",Cie="border:0;margin:0;",Sie="margin:0",Aie="allow-top-navigation-by-user-activation allow-popups",_ie='The "iframe" tag is not supported by your browser.',Lie=["foreignobject"],Die=["dominant-baseline"];function J2t(e){let t=dz(e);return ly(),q$(t.config??{}),t}o(J2t,"processAndSetConfigs");async function Rie(e,t){z1();try{let{code:r,config:n}=J2t(e);return{diagramType:(await txt(r)).type,config:n}}catch(r){if(t?.suppressErrors)return!1;throw r}}o(Rie,"parse");var j2t=o((e,t,r=[])=>` +.${e} ${t} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),Nie=o((e,t=new Map)=>{let r="";if(e.themeCSS!==void 0&&(r+=` +${e.themeCSS}`),e.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${e.fontFamily}}`),e.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${e.altFontFamily}}`),t instanceof Map){let s=e.htmlLabels??e.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];t.forEach(l=>{cr(l.styles)||s.forEach(u=>{r+=j2t(l.id,u,l.styles)}),cr(l.textStyles)||(r+=j2t(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),Mie=o((e,t,r,n)=>{let i=Nie(e,r),a=_V(t,i,e.themeVariables);return fS($2t(`${n}{${a}}`),G2t)},"createUserStyles"),Iie=o((e="",t,r)=>{let n=e;return!r&&!t&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=no(n),n=n.replace(/
        /g,"
        "),n},"cleanUpSvgCode"),Oie=o((e="",t)=>{let r=t?.viewBox?.baseVal?.height?t.viewBox.baseVal.height+"px":Eie,n=X2t(`${e}`);return``},"putIntoIFrame"),K2t=o((e,t,r,n,i)=>{let a=e.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",t).attr("width","100%").attr("xmlns",bie);return i&&s.attr("xmlns:xlink",i),s.append("g"),e},"appendDivSvgG");function Q2t(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(Q2t,"sandboxedIframe");var Pie=o((e,t,r,n)=>{e.getElementById(t)?.remove(),e.getElementById(r)?.remove(),e.getElementById(n)?.remove()},"removeExistingElements"),Bie=o(async function(e,t,r){z1();let n=J2t(t);t=n.code;let i=Nr();V.debug(i),t.length>(i?.maxTextSize??gie)&&(t=yie);let a="#"+e,s="i"+e,l="#"+s,u="d"+e,h="#"+u,f=o(()=>{let I=Gt(p?l:h).node();I&&"remove"in I&&I.remove()},"removeTempElements"),d=Gt("body"),p=i.securityLevel===vie,m=i.securityLevel===xie,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let k=Q2t(Gt(r),s);d=Gt(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=Gt(r);K2t(d,e,u,`font-family: ${g}`,wie)}else{if(Pie(document,e,u,s),p){let k=Q2t(Gt("body"),s);d=Gt(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=Gt("body");K2t(d,e,u)}let y,v;try{y=await H1.fromText(t,{title:n.title})}catch(k){if(i.suppressErrorRendering)throw f(),k;y=await H1.fromText("error"),v=k}let x=d.select(h).node(),b=y.type,w=x.firstChild,S=w.firstChild,T=y.renderer.getClasses?.(t,y),E=Mie(i,b,T,a),_=document.createElement("style");_.innerHTML=E,w.insertBefore(_,S);try{await y.renderer.draw(t,e,Px,y)}catch(k){throw i.suppressErrorRendering?f():zpt.draw(t,e,Px),k}let A=d.select(`${h} svg`),L=y.db.getAccTitle?.(),M=y.db.getAccDescription?.();zie(b,A,L,M),d.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns",Tie);let N=d.select(h).node().innerHTML;if(V.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),N=Iie(N,p,Tr(i.arrowMarkerAbsolute)),p){let k=d.select(h+" svg").node();N=Oie(N,k)}else m||(N=Z2t.default.sanitize(N,{ADD_TAGS:Lie,ADD_ATTR:Die}));if(W2t(),v)throw v;return f(),{diagramType:b,svg:N,bindFunctions:y.db.bindFunctions}},"render");function Fie(e={}){let t=Vn({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),H$(t),t?.theme&&t.theme in _o?t.themeVariables=_o[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=_o.default.getThemeVariables(t.themeVariables));let r=typeof t=="object"?HS(t):WS();J1(r.logLevel),z1()}o(Fie,"initialize");var txt=o((e,t={})=>{let{code:r}=dz(e);return H1.fromText(r,t)},"getDiagramFromText");function zie(e,t,r,n){V2t(t,e),U2t(t,r,n,t.attr("id"))}o(zie,"addA11yInfo");var Gf=Object.freeze({render:Bie,parse:Rie,getDiagramFromText:txt,initialize:Fie,getConfig:Nr,setConfig:v4,getSiteConfig:WS,updateSiteConfig:W$,reset:o(()=>{ly()},"reset"),globalReset:o(()=>{ly(hh)},"globalReset"),defaultConfig:hh});J1(Nr().logLevel);ly(Nr());ZT();_r();var $ie=o((e,t,r)=>{V.warn(e),U9(e)?(r&&r(e.str,e.hash),t.push({...e,message:e.str,error:e})):(r&&r(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},"handleError"),ext=o(async function(e={querySelector:".mermaid"}){try{await Gie(e)}catch(t){if(U9(t)&&V.error(t.str),oh.parseError&&oh.parseError(t),!e.suppressErrors)throw V.error("Use the suppressErrors option to suppress these errors"),t}},"run"),Gie=o(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){let n=Gf.getConfig();V.debug(`${e?"":"No "}Callback function found`);let i;if(r)i=r;else if(t)i=document.querySelectorAll(t);else throw new Error("Nodes and querySelector are both undefined");V.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(V.debug("Start On Load: "+n?.startOnLoad),Gf.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Oe.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){V.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=s4(Oe.entityDecode(s)).trim().replace(//gi,"
        ");let f=Oe.detectInit(s);f&&V.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await axt(h,s,u);u.innerHTML=d,e&&await e(h),p&&p(u)}catch(d){$ie(d,l,oh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),rxt=o(function(e){Gf.initialize(e)},"initialize"),Vie=o(async function(e,t,r){V.warn("mermaid.init is deprecated. Please use run instead."),e&&rxt(e);let n={postRenderCallback:r,querySelector:".mermaid"};typeof t=="string"?n.querySelector=t:t&&(t instanceof HTMLElement?n.nodes=[t]:n.nodes=t),await ext(n)},"init"),Uie=o(async(e,{lazyLoad:t=!0}={})=>{z1(),c4(...e),t===!1&&await k2t()},"registerExternalDiagrams"),nxt=o(function(){if(oh.startOnLoad){let{startOnLoad:e}=Gf.getConfig();e&&oh.run().catch(t=>V.error("Mermaid failed to initialize",t))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",nxt,!1)}var Hie=o(function(e){oh.parseError=e},"setParseErrorHandler"),dS=[],pz=!1,ixt=o(async()=>{if(!pz){for(pz=!0;dS.length>0;){let e=dS.shift();if(e)try{await e()}catch(t){V.error("Error executing queue",t)}}pz=!1}},"executeQueue"),Wie=o(async(e,t)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Gf.parse(e,t).then(l=>{a(l),r(l)},l=>{V.error("Error parsing",l),oh.parseError?.(l),s(l),n(l)})}),"performCall");dS.push(i),ixt().catch(n)}),"parse"),axt=o((e,t,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Gf.render(e,t,r).then(u=>{s(u),n(u)},u=>{V.error("Error parsing",u),oh.parseError?.(u),l(u),i(u)})}),"performCall");dS.push(a),ixt().catch(i)}),"render"),oh={startOnLoad:!0,mermaidAPI:Gf,parse:Wie,render:axt,init:Vie,run:ext,registerExternalDiagrams:Uie,registerLayoutLoaders:wR,initialize:rxt,parseError:void 0,contentLoaded:nxt,setParseErrorHandler:Hie,detectType:gp,registerIconPacks:a4},Yie=oh;return fxt(qie);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.js: + (*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default; diff --git a/themes/hextra/data/icons.yaml b/themes/hextra/data/icons.yaml new file mode 100644 index 0000000000..3dbfac6a63 --- /dev/null +++ b/themes/hextra/data/icons.yaml @@ -0,0 +1,292 @@ +# SVG icons +# +# Example usage in templates using the icon.html partial: +# +# {{ partial "utils/icon.html" (dict "name" "github" "attributes" "height=24") }} + +github: > + + + + +codeberg: > + + + + +gitlab: > + + + + +bitbucket: > + + + + +hextra: + +hugo: +hugo-full: > + + + + + + + + +jupyter: + +warning: +one: +cards: +copy: +hamburger-menu: +markdown: +folder-tree: +card: + +# Icons from heroicons v1 outlined https://github.com/tailwindlabs/heroicons/tree/v1 +academic-cap: +adjustments: +annotation: +archive: +arrow-circle-down: +arrow-circle-left: +arrow-circle-right: +arrow-circle-up: +arrow-down: +arrow-left: +arrow-narrow-down: +arrow-narrow-left: +arrow-narrow-right: +arrow-narrow-up: +arrow-right: +arrow-sm-down: +arrow-sm-left: +arrow-sm-right: +arrow-sm-up: +arrow-up: +arrows-expand: +at-symbol: +backspace: +badge-check: +ban: +beaker: +bell: +book-open: +bookmark: +bookmark-alt: +briefcase: +cake: +calculator: +calendar: +camera: +cash: +chart-bar: +chart-pie: +chart-square-bar: +chat: +chat-alt: +chat-alt-2: +check: +check-circle: +chevron-double-down: +chevron-double-left: +chevron-double-right: +chevron-double-up: +chevron-down: +chevron-left: +chevron-right: +chevron-up: +chip: +clipboard: +clipboard-check: +clipboard-copy: +clipboard-list: +clock: +cloud: +cloud-download: +cloud-upload: +code: +cog: +collection: +color-swatch: +credit-card: +cube: +cube-transparent: +currency-bangladeshi: +currency-dollar: +currency-euro: +currency-pound: +currency-rupee: +currency-yen: +cursor-click: +database: +desktop-computer: +device-mobile: +device-tablet: +document: +document-add: +document-download: +document-duplicate: +document-remove: +document-report: +document-search: +document-text: +dots-circle-horizontal: +dots-horizontal: +dots-vertical: +download: +duplicate: +emoji-happy: +emoji-sad: +exclamation: +exclamation-circle: +external-link: +eye: +eye-off: +fast-forward: +film: +filter: +finger-print: +fire: +flag: +folder: +folder-add: +folder-download: +folder-open: +folder-remove: +gift: +globe: +globe-alt: +hand: +hashtag: +heart: +home: +identification: +inbox: +inbox-in: +information-circle: +key: +library: +light-bulb: +lightning-bolt: +link: +location-marker: +lock-closed: +lock-open: +login: +logout: +mail: +mail-open: +map: +menu: +menu-alt-1: +menu-alt-2: +menu-alt-3: +menu-alt-4: +microphone: +minus: +minus-circle: +minus-sm: +moon: +music-note: +newspaper: +office-building: +paper-airplane: +paper-clip: +pause: +pencil: +pencil-alt: +phone: +phone-incoming: +phone-missed-call: +phone-outgoing: +photograph: +play: +plus: +plus-circle: +plus-sm: +presentation-chart-bar: +presentation-chart-line: +printer: +puzzle: +qrcode: +question-mark-circle: +receipt-refund: +receipt-tax: +refresh: +reply: +rewind: +rss: +save: +save-as: +scale: +scissors: +search: +search-circle: +selector: +server: +share: +shield-check: +shield-exclamation: +shopping-bag: +shopping-cart: +sort-ascending: +sort-descending: +sparkles: +speakerphone: +star: +status-offline: +status-online: +stop: +sun: +support: +switch-horizontal: +switch-vertical: +table: +tag: +template: +terminal: +thumb-down: +thumb-up: +ticket: +translate: +trash: +trending-down: +trending-up: +truck: +upload: +user: +user-add: +user-circle: +user-group: +user-remove: +users: +variable: +video-camera: +view-boards: +view-grid: +view-grid-add: +view-list: +volume-off: +volume-up: +wifi: +x: +x-circle: +zoom-in: +zoom-out: + +# Socials +instagram: +facebook: +discord: +twitter: +mastodon: +youtube: +x-twitter: +linkedin: +slack: +tiktok: diff --git a/themes/hextra/dev.toml b/themes/hextra/dev.toml new file mode 100644 index 0000000000..df91d845ca --- /dev/null +++ b/themes/hextra/dev.toml @@ -0,0 +1,26 @@ +# Theme development config for exampleSite +# https://gohugo.io/getting-started/configuration/#configure-cache-busters +[build] + [build.buildStats] + enable = true + disableIDs = true + [[build.cachebusters]] + source = 'assets/watching/hugo_stats\.json' + target = 'styles\.css' + [[build.cachebusters]] + source = '(postcss|tailwind)\.config\.js' + target = 'css' + [[build.cachebusters]] + source = 'assets/.*\.(js|ts|jsx|tsx)' + target = 'js' + [[build.cachebusters]] + source = 'assets/.*\.(.*)$' + target = '$1' + +[module] + [[module.mounts]] + source = "assets" + target = "assets" + [[module.mounts]] + source = "hugo_stats.json" + target = "assets/watching/hugo_stats.json" diff --git a/themes/hextra/exampleSite/assets/example.ipynb b/themes/hextra/exampleSite/assets/example.ipynb new file mode 100644 index 0000000000..b196ee554b --- /dev/null +++ b/themes/hextra/exampleSite/assets/example.ipynb @@ -0,0 +1,224 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the Jupyter Notebook?\n", + "\n", + "The Jupyter Notebook is an **interactive computing environment** that enables users to author notebook documents that include:\n", + "- Live code\n", + "- Interactive widgets\n", + "- Plots\n", + "- Narrative text\n", + "- Equations\n", + "- Images\n", + "- Video\n", + "\n", + "These documents provide a **complete and self-contained record of a computation** that can be converted to various formats and shared with others using email, version control systems (like Git/[GitHub](https://github.com)) or [nbviewer.jupyter.org](https://nbviewer.jupyter.org)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data Visualization\n", + "\n", + "Below is an example of a simple data visualization using the Seaborn library." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Matplotlib is building the font cache; this may take a moment.\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABEQAAAHkCAYAAAA3ofpqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADy4UlEQVR4nOzdd3wUdf7H8dfMlmxJbzQpShNFFAtiwYJ6NixgAbue3nn207PgWVBU7He2O3v52bFiw4JnwQbYQBEp0qST3rbvzO+PQCAm9N1skn0/Hw/vyMxk5rvfJDu77/1+P1/Dtm0bEREREREREZE0Yqa6ASIiIiIiIiIiLU2BiIiIiIiIiIikHQUiIiIiIiIiIpJ2FIiIiIiIiIiISNpRICIiIiIiIiIiaUeBiIiIiIiIiIikHQUiIiIiIiIiIpJ2FIiIiIiIiIiISNpRICLSRtm2neomiIiItCm6d4qIyPoUiIi0Qf/73/+45pprGr6eOnUqffv2ZerUqSls1ZZrbe1+44036Nu3L0uXLk11U0REJMHa271z/f/69+/PkCFD+Mc//sFvv/3W6Hjd20RENsyZ6gaIyJZ75plnGn298847M378eHr16pWaBomIiLRy7e3eeeONN7LzzjsDEAqFWLJkCU888QQnnngizzzzDLvtthsABx10EOPHj6e4uDiFrRURaZ0UiIi0A5mZmQ0vfERERGTT2vq9s1evXo3aP3jwYA4//HBGjBjB6NGjee+993A4HOTn55Ofn5+6hoqItGKaMiPSxpxxxhlMmzaNadOmNQz1/eOw3wcffJAjjjiCSZMmMWzYMHbZZReOO+44fvzxR6ZPn85JJ53EgAEDGDZsGN98802j88+dO5fzzz+f3Xffnd13352LLrqIJUuWbLRNQ4cObTJ8d/3/tsWGhjSfccYZnHHGGY3a8MADD3DnnXey7777MmDAAM4991wWLVrU6Ps+//xzRo0axW677cb+++/PjTfeSHV1daNjZsyYwahRo9hll1046KCDeOKJJ7bpMYiISGqly70zOzub8847j4ULFzJt2jSg6ZSZ0aNHc/bZZ/P6669z+OGH079/f4477jgmT57ccJ433niDnXbaiRkzZjBy5Eh22WUXDj74YJ588slG1wuHw9x1110ceOCB9O/fn2OOOYaJEyc2eZzjxo3jrLPOYsCAAVx33XVb9dhERJJBI0RE2pgxY8Zw1VVXNfy7V69e/PLLL02OW7lyJXfccQeXX345Pp+PW265hUsvvRSXy8Xf/vY3OnXq1LD/s88+w+PxsHDhQkaNGsUOO+zAnXfeSSwW4+GHH+aUU07hrbfeoqCgoNk2PfTQQ0QikaQ+7s3x7LPPsscee3D77bdTVVXFbbfdxjXXXMP48eMB+PTTT7ngggs45JBDuO+++6isrOSuu+5i2bJljV7k3XTTTVx66aVcdtllvPLKK9x999307NmTgw8+OFUPTUREtkE63Tv3228/AL7//nv22WefZo+ZOXMmq1ev5tJLLyUzM5P777+fSy65hMmTJ5OTkwOAZVn8/e9/5+yzz+bvf/87r732GnfddRd9+vRhyJAh2LbNRRddxA8//MCll15Kz549mTRpEpdffjmRSITjjz++4XovvPAC55xzDn/5y1/w+/0Jf8wiIltLgYhIG9OrVy8yMzMBNjrUNxgMMmbMGA444AAAfvvtN+69915uu+02TjzxRAACgQCXXnopCxcupF+/fjz00EN4vV6eeeaZhmvss88+HHrooTzxxBONitGtb6eddkrgI9x62dnZ/Pe//8XhcADw+++/8+CDD1JRUUFeXh4PPvhgw+M0DAMAt9vN/fffT2lpacN5rrjiCk455RSgvo8nTZrElClTFIiIiLRR6XTvLCoqAqCkpGSDx9TU1PDGG2/QrVs3AHw+H6effjpTpkzh8MMPB+pX5Lnwwgs56aSTANhjjz2YNGkSn332GUOGDOHrr7/miy++4N///jdHHXUUAEOGDCEYDHLPPfcwbNgwnM76txqdO3fmyiuvTMrjFRHZFpoyI9KO7b777g3/LiwsBGDXXXdt2JabmwvQMGVkypQpDBo0CI/HQywWIxaLkZmZyZ577snXX3+9wevE4/GG45v7r6XssssuDWEIQMeOHYH6F7ihUIhZs2Zx6KGHNoQhAEcddRQffvhhQ/8A7Lnnng3/9nq9FBYWNplWIyIi7VNbv3euXVp4/XvdH+Xn5zeEIdD4frm+gQMHNvzb7XaTn59PIBAA4JtvvsEwDA488MBG7R46dCglJSXMmzev4Xv79eu31Y9HRCSZNEJEpB1b+0nV+rxe7waPr6ysZOLEiU3m/wIbLch22GGHsWzZsg3unzNnziZamhh/fGymWZ/5WpZFVVUVtm1vcOjyps6z9gWmiIi0b2393rly5UpgXcjRnD8+nrXhiWVZjbZ7PJ5GX69/P6ysrMS27UYB0vpWr17dEIT4fL4teAQiIi1HgYiINMjKymLfffflnHPOabJv7bDX5jz88MNJqyGyoRdpdXV1WzQPOTMzE8MwKC8vb7Q9HA4zZcqURp/+iYiIbK7Wdu9cOyplr732Svi515eVlYXP5+PZZ59tdn/37t2Ten0RkURQICLSBpmm2SQgSIRBgwbx22+/0a9fv4YXcbZtc+WVV9K9e/cNDnnd1pVkNmbtJ3VrP/ECqKqqYv78+QwYMGCzz+P3++nXrx+ffvopF154YcP2yZMnc/HFF/POO+8krtEiItLqpMO9s7a2lqeffpq+fftucORGogwaNIinnnoK27Yb3Y9ff/11Jk2axLhx45J6fRGRRFAgItIGZWdn8+OPP/LNN98ktCjbhRdeyKhRozj//PM55ZRTyMjIYPz48Xz88cc88MADCbvOH3344Yf8+uuvTbafdNJJ9O3bl06dOvGf//ynYZTHo48+utHhyxty6aWXcsEFF3DFFVdw/PHHU1payr/+9S8OPfRQ+vTpw8yZMxPxcEREpBVqb/fO3377jYyMDKB+tOOCBQt47rnnqKio4P77799oDZFEOPDAA9lrr7248MILufDCC+nZsyc//fQTDzzwAEOGDNnodCERkdZCgYhIG3Taaacxc+ZM/vKXv3D77bdTXFyckPPuuOOOvPDCC/z73//m6quvxrZt+vTpw3/+8x8OOeSQhFyjOS+88EKz24844gj8fj8PPPAA48aN44orrqCwsJCzzjqLBQsWsHDhwi26zsEHH8wjjzzCQw89xEUXXUR+fj7HHHMMl1xySSIehoiItGLt7d45duzYhn+7XC6Ki4sZPHgw559/fotMVzFNk8cee4z777+fRx99lLKyMjp06MA555zDRRddlPTri4gkgmGrUqCIiIiIiIiIpBktuysiIiIiIiIiaUeBiIiIiIiIiIikHQUiIiIiIiIiIpJ2FIiIiIiIiIiISNpRICIiIiIiIiIiaUeBiIiIiIiIiIikHQUiIiIiIiIiIpJ2nKluQCrE4xbl5XWpbkabY5oG+fl+ysvrsCw71c1pF9SnyaF+TTz1aeK1dJ8WFWUl5Dy6h249/R0lnvo08dSniac+TY62eh+V1kUjRGSzmaaBYRiYppHqprQb6tPkUL8mnvo08dSn6Uc/88RTnyae+jTx1KfJoX6VRFAgIiIiIiIiIiJpR4GIiIiIiIiIiKQdBSIiIiIiIiIiknYUiIiIiIiIiIhI2lEgIiIiIiIiIiJpR4GIiIiIiIiIiKQdBSIiIiIiIiIiknYUiIiIiIiIiIhI2lEgIiIiIiIiIiJpR4GIiIiIiIiIiKQdBSIiIiIiIiIiknZaVSDy6KOPcsYZZzTa9uuvv3L66aez2267MXToUJ599tkUtU5ERERERERaK4fDIGpDOG4TtcE0jVQ3SVo5Z6obsNYLL7zAfffdx5577tmwraKignPOOYehQ4dy8803M336dG6++Wb8fj8nnHBCClsrIiIiIiIirUXUhu9ml/DqJ/MoqQjSqdDPqMP60K9bHk7lIrIBKQ9EVq1axZgxY5g6dSo9evRotO+VV17B5XIxduxYnE4nPXv2ZPHixTz22GMKRERERERERIQY8MKHc5g8fVnDthWldfz7pR857oAdOGbfHq1raoS0Gin/vfjll19wuVy8/fbb7Lrrro32fffddwwaNAinc11uM3jwYBYtWkRpaWlLN1VERERERERamYraSKMwZH1vTV5AbSjWwi2StiLlI0SGDh3K0KFDm923cuVK+vTp02hbcXExACtWrKCwsHCrr+t0pjwLanMcDrPR/8u2U58mh/o18dSnideW+1T30K3Tln/mrZX6NPHUp4mnPk2Otf3pcjmYMbdko8fOX1bFoB2LsO2WaJm0JSkPRDYmFArhdrsbbcvIyAAgHA5v9XlN0yAvz79NbUtn2dneVDeh3VGfJof6NfHUp4nX1vpU99Bt19Z+5m2B+jTx1KeJpz5NjsxMD9Ymkg4byM3VvUuaatWBiMfjIRKJNNq2Ngjx+XxbfV7LsqmuDmxT29KRw2GSne2lujpIPG6lujntgvo0OdSviac+TbyW7tNEhRi6h249/R0lnvo08dSniac+TY71+3XXXoW8PGnuBo/doXMOFRV123Q9fRjQPrXqQKRjx46sXr260ba1X3fo0GGbzh2L6cloa8XjlvovwdSnyaF+TTz1aeK1xT5ta+1tbdriz7y1U58mnvo08dSnyRGPWxRke9i1dyEz5jWtM3ngwC5ke53qe2lWq57Ittdee/H9998Tj8cbtk2ZMoXtt9+egoKCFLZMREREREREWgOnAReOGMDJh/TGm1H/mX+Wz8VZR/Xj1D/1bd1veiWlWvUIkRNOOIEnnniC6667jvPOO4+ffvqJZ555hptvvjnVTRMREREREZFWwmXA0YO7c9DuXYjELDKcDnxuk3hclVRlw1p1IFJQUMATTzzBbbfdxvDhwykqKuLqq69m+PDhqW6aiIiIiIiItCLxuIXHYeJZswKNwhDZlFYViNxxxx1Ntg0YMIDx48enoDUiIiIiIiIi0l5pOpWIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiKWUYqW6BpCMFIiIiIiIiItIiTNMg06rAb9Sttw38sXJ8RjCFLZN0pEBEREREREREks40DbyREla9cCMV7/8Hv1FXvy2wgpXPXUf1J08pFJEWpUBEREREREREks5vBCl5dRxWsIbw77OoeP8/eKoXsurlsdiRIMF53xKc/j4ZDivVTZU0oUBEREREREREki5gZ1B4zGUYDhcA4d9nserFm7Aj9aNCXMU98O36J8JxvU2VlqHfNBEREREREUm6uGUQzu5G8cjrwWj8VtRV2JWC46+kjswUtU7SkQIRERERERERaRE2BobT3SQQMdyeJttEkk2/cSIiIiIiIpJ0pgnewApWvTwWrFijfZHl86h4/6FGq8+IJJsCEREREREREUk6vxGi5I27GmqGuIt7UDTiqkY1RQLTP1BRVWkxCkREREREREQk6epsL0UjrsZwe3AX9yD/+CuJFveneOT1GA4XGV374dvtCBVVlRbjTHUDREREREREpP2zLJugrzMdTh0Lbl99AVXLJpTdnQ6n3wKeLOpsf6qbKWlEgYiIiIiIiIi0CMuyCWR0wLbt9bZBwNOp0TaRlqCxSCIiIiIiItJimgs+FIZIKigQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7SgQEREREREREZG0o0BERERERERERNKOAhERERERERERSTsKREREREREREQk7bSJQCQWi3H//fdz8MEHM3DgQE477TSmT5+e6maJiIiIiIiISBvVJgKRhx9+mFdffZVbbrmFCRMmsP3223PeeeexevXqVDdNRERERERERNqgNhGIfPzxxwwbNoz999+f7t27M3r0aGpqajRKRERERERERES2SpsIRAoKCvj0009ZunQp8Xic8ePH43a72XHHHVPdNBERERERERFpg5ypbsDmuO6667jssss45JBDcDgcmKbJgw8+SLdu3bb6nE5nm8iCWhWHw2z0/7Lt1KfJoX5NPPVp4rXlPtU9dOu05Z95a6U+TTz1aeKpT5ND/SqJYNi2bae6EZvy4Ycf8swzz3DuuefSoUMHXn31Vd577z2ef/55+vXrt8Xns20bwzCS0FIREZH2TfdQERERaS9afSCyYsUKDjvsMJ555hn23HPPhu2nnnoqubm5/Pe//93ic8bjFtXVwUQ2My04HCbZ2V6qq4PE41aqm9MuqE+TQ/2aeOrTxGvpPs3L8yfkPLqHbj39HSWe+jTx1KeJpz5NjrZ6H5XWpdVPmZkxYwbRaJRddtml0fZdd92VyZMnb/V5YzE9GW2teNxS/yWY+jQ51K+Jpz5NvLbYp22tva1NW/yZt3bq08RTnyae+jQ51K+yLVr9hKuOHTsCMGfOnEbb586dS48ePVLQIhERERERERFp61p9IDJgwAD22GMPrrnmGqZMmcKiRYu47777+Oabb/jrX/+a6uaJiIiIiIiISBvU6qfMmKbJww8/zH333ce1115LVVUVffr04ZlnnmHXXXdNdfNEREREREREpA1q9YEIQE5ODmPGjGHMmDGpboqIiIiIiIiItAOtfsqMiIiIiIiIiEiiKRARERERERERkbSjQERERERERERE0o4CERERERERERFpEUuXLqVv375MnTo11U1RICIiIiIiIrItTBNM02iyzTA28A0i0iooEBEREREREdlKpgGemiV4wyUNoYjDtMioXIAvXqFQRKQVUyAiIiIiIiKyFUwDPLVLWD3+Fla/fBPecAluJ7grFrD6ldsoGX8LGeGyVDdTZJM+//xzRowYwa677so+++zD6NGjqaqqYurUqey0005MmjSJww8/nAEDBnDmmWeyYsUKbr31Vvbcc0/22WcfHn744UbnmzBhAsceeywDBgxg6NCh/Pe//yUejzd77fnz57Pffvtx9dVXNxzz6aefMmLECAYMGMBhhx3GfffdRyQSafievn378sADD3DwwQez//77s2jRoq163ApEREREREREtoLXDFH+0RPYsQhWsJbVL9+ENfsTVr96O1hx4jXl1Hz7LvFQXaqbKrJB5eXlXHzxxZxwwglMnDiRhx56iG+//Za77roLgHg8zsMPP8w999zD//3f/zF79myOO+44XC4Xr776KqNGjeK+++5jzpw5ADzzzDPccMMNjBw5krfffpvLLruMJ598kjvuuKPJtRcvXszZZ5/NAQccwB133IHD4WDy5Mn8/e9/5+STT+bdd99lzJgxvP/++1x11VWNvvfFF1/kgQce4KGHHqJHjx5b9dgViIiIiIiIiGyFgOWh4Ph/4MzrBIAVrKXik2fBqv+U29tzDzL3ORGHx5/KZops1KpVq4hEInTu3JkuXbqwxx578Mgjj3DGGWc0HHPZZZexyy67MHDgQAYPHozX6+Xqq69m++235/zzzwdg3rx52LbN448/zumnn85pp51Gjx49OO6447j00kt56aWXqKmpaTjn0qVLOfPMMznwwAMZN24cplkfTzzyyCOcfPLJjBo1im7durH//vtz880388EHH7B06dKG7z/uuOPYZZdd2G233bb6sTu3+jtFRERERETSmG1DwMym6KR/surZa7FCtQ373B17knPYXwibPnwpbKPIpvTr149hw4bxt7/9jaKiIvbbbz8OOuggDjvsML7//nsAunfv3nC8z+dju+22w1hTIMfj8QAQiUQoLy+ntLSUPfbYo9E1Bg0aRDQaZcGCBRQUFABw0003EY1G6dSpU8O5AGbNmsVPP/3Ea6+91rDNtm2gfnrNdttt16RNW0uBiIiIiIiIyFYyDYt45SqsSLDR9ljVKgjXYvg0OkRav3vvvZeLLrqIyZMn8/XXX3PVVVexxx57cOGFFwLgdDaODtaO5vijtcHFH1mW1eQ8w4cPp0+fPtxxxx0cdthh9OnTp+HY8847j+HDhzc5T1FRUcO/1wYx20JTZkRERERERLaCw7TqC6iuqRmyvrU1RTKCq1LUOpHNM2PGDMaNG8cOO+zA2WefzWOPPca4ceOYMmUKZWVbVhS4sLCQwsLChpEla3333Xe4XC66devWsO3oo4/m1FNPpX///lx77bUNBVV79+7NwoUL6d69e8N/K1eu5K677qKuLrH1eBSIiIiIiIiIbAUPYSonv9yoZkjn8x9sVFOkdsb/iAdrN3YakZTKzMzkxRdf5O6772bx4sXMnTuXiRMn0qNHD/Ly8rb4fOeeey7PP/88L774IosXL+add97hoYceYuTIkWRlZTU61jRNbrnlFubMmcMTTzwBwF/+8hc+/PBDHnroIRYuXMg333zDtddeS01NTaMRIomgKTMiIiIiIiJboc7ykn/M3yl/6184MvPIPvRcavFReOK1lL52O+4uffAPOg6HNxO00oy0Uj179uTBBx/koYce4sUXX8Q0TQYPHszjjz/OihUrtvh8f/7zn3G73fzf//0f48aNo2PHjvzlL3/h3HPPbfb43r1785e//IWHHnqIQw45hCOOOIJ///vfPProozzyyCPk5uYydOhQrrzyym19qE0Y9oYm+bRj8bhFebmekLaU02mSl+enoqKOWMxKdXPaBfVpcqhfE099mngt3adFRVmbPmgz6B669fR3lHjq08RTn24dP7XYhknAri+fahjgt2uJGw6iDr/6NAna6n1UWheNEBEREREREdkGdWTCeh8z2zbUrtmmN1wirZdqiIiIiIiIiIhI2lEgIiIiIiIiIiJpR4GIiIiIiIiIiKQdBSIiIiIiIiIiknYUiIiIiIiIiIhI2lEgIiIiIiIiIiJpR4GIiIiIiIiIiKQdBSIiIiIiIiIiknYUiIiIiIiIiIikqWuvvZYBAwawcOHCJvtKSkoYNGgQV155ZQpalnwKRERERERERETS1LXXXktOTg433ngjtm032jd27Fi8Xi833nhjilqXXApERERERERERFJsZVkdz06cxd3PfcezE2exsqyuRa6bnZ3N2LFjmTZtGq+88krD9g8//JBJkyYxbtw4srOzW6QtLc2Z6gaIiIiIiIiIpLP/ffs7D7wyHctaN0LjjU9/45KTd+OQvbol/foHH3wwxx57LHfffTeHHHIIHo+HW265hVNPPZX99tuP+fPnc8cdd/Ddd9/h9/vZe++9GT16NEVFRQAsWrSIW265henTp2NZFrvvvjtXX301ffv2TXrbt4VGiIiIiIiIiIikyMqyuiZhCEDcsnnwlektNlLk+uuvx+PxcPfdd3P//ffj9/u56qqrWLVqFaeeeirdu3fntdde45FHHqG2tpaRI0cSCAQAuOKKK+jQoQOvv/46r776KqZpcvHFF7dIu7eFRoiIiIiIiIiIpMhHUxc3CUPWils2H01dzJlH7ZT0duTk5HDTTTdx8cUX43K5eP755/F6vTz66KN07NiR66+/vuHY++67j8GDB/PBBx8wYsQIfv/9d/bdd1+6dOmCy+Vi3LhxLFiwAMuyMM3WOw5DgYiIiIiIiIhIiqwqC2x8f/nG9yfSoYceSv/+/enSpQu77rorALNmzWLevHkMHDiw0bHhcJj58+cDcPnllzNu3DhefPFFBg0axJAhQxg2bFirDkNAgYiIiIiIiIhIynQo8G18f/7G9yea1+vF6/U2fG1ZFoMHD2bMmDFNjs3KygLgtNNO44gjjuDzzz/nm2++4YEHHuDhhx9mwoQJFBYWtljbt1TrjmtERERERERE2rE/7d0dh2k0u89hGvxp7+4t3KLGevfuzfz58+nUqRPdu3ene/fu5OTkMG7cOObOnUtZWRljx44lGo0yYsQI7r77bt5++21KSkqYNm1aStu+KQpERERERERERFKkY4GfS07erUko4jANLh25Gx0L/ClqWb1TTz2VmpoarrzySmbPns3s2bO5/PLL+fnnn+nTpw85OTl89tlnXH/99fz6668sWbKEl19+GZfLRf/+/VPa9k3RlBkRERERERGRFDpkr27svEMBH01dzKryAB3yffxp7+4pD0MAunbtyvPPP8+9997LKaecgsPhYPfdd+fZZ58lPz8fgMcff5w777yTs88+m2AwSL9+/Xjsscfo1i35SwZvC8O27ebL2bZj8bhFeXnLLF3UnjidJnl5fioq6ojFrFQ3p11QnyaH+jXx1KeJ19J9WlSUlZDz6B669fR3lHjq08RTnyae+jQ52up9VFoXTZkRERERERERkbSjQERERERERERE0o4CEREREREREWkxDkfTFVU2tMqKSDIpEBERSQKPESbLrsRhNi7T5DVCZFoVmHr2FRERkTTkNwI4l/1AhhFZt41aXKt+wm3EUtgySUd6SS4ikmAeI0x4+kSWP3kl7sqFDaGI1whR+8XzrHz2WryBFQpFREREJK34jQAVEx+k9O37ic35nAwzip9ayifcQ8mb92Iv/lahiLQovRwXEUmgtWFI9dS3wIqx+pVxuCsX4ndGqP3ieQKzvsSOhFj18s14AyswNDpURERE0oDDYRBbPpvwkl8BqPzsBcI/vEP5hHuIrF4EQMUnz+IxIxs5i0hiOVPdABGR9sSw40TLl6/bsDYUKdyu4WYPYEcjxIM1mN6OxFEqIiIiIu1bPG7j7NyfnANOoWrySwDUTHu7Yb/h9tJh1I3U2r5UNVHSkEaIiIgkUBAf2UP/jLf3Xus2WrFGYQiGSdGJ1xDL70XcVhgiIiIi6SFsu3H1G0rWXsOa7CsedQNBXycsKwUNk7SlQEREJMECtpfsoX/G03OPZvcXnXANsfzexGw9BYuIiEh6cdphQotnNtke/v0XXLamy0jL0qtxEZEksDEwHM3PSjQcTmwVDxEREZE046eWsgn3EF1/5OwalZ+9UF9o1VAoIi1HgYiISIKtXU0mOHdqs/tXv3p7o9VnRERERNo7h2kQW72gIQwx3F46nDmOnANPbTimeurbuI1oilqY3oYOHcrQoUOpra1tsm/06NGcccYZKWhV8ikQERFJIC+BhtVkGhgmrvxO675eb/UZ09REWRGRtsDhMHE49NJZZGvFLRurQz/yD/9LQwHVkK8zrh0PIufAUzG9WRSfMoY6MlPd1JQonzye8snjN/h1S1i2bBl33XVXi14z1bTKjIhIAtmYODz+dRvWFFB1Fvag8uMnCM77ds1mE8PpQrm0iEjrZRgQjsOqigC/LCjDYRoM6F1EQVYGzlY489E0DcIxm5hl4zANvC6TeFzBu7QeUduFq8cgOp87kFrbh2VBGDcZOx5Ex377UUcmlpV+I2jLJ4+n8otXGm1b/+v8A0a2SDu6du3K+PHjOeKII9h3331b5JqppkBERCSBQnjw7DUcgJofJ61ZTaY3obhJ9tA/1x+zcAbFo24glNlVldRFRFopwzCoCce47ZlvWVUeaNj+0qS59Omay99HDcTjaD2pSMyGn+aVMn7SXEoqg+RmZXDS0N7suWMxrtbTTBGitoto3NVoW9h2E7bdQPqFIX/0x2CkJR177LH88MMPXHfddbzzzjtkZjYdrVNZWcn999/PJ598QkVFBTvttBOXX345e++9dwpavO300aSISIKF7PpQpNM5dzVaTWbt6jMdzxynMEREpJULxSxufnJqozBkrblLKnnglenEUtCu5sSBNyfP56FXZ1BSGQSgsibM42/N5P/e/5W43mOKtGr5B4wkd8jJTbbnDjm5xUaHQH0QfNttt1FVVcWdd97ZZH88HufPf/4z3333HXfffTdvvPEGffr04dxzz+Wnn35qsXYmkgIREZEkCNke6lyFTZbWDdhe6lyFCkNERFoxw4Alq2spqwpt8JjZiyuorG0dq2HUBGO8/83iZvd9/dMKyltJO0Wk9evSpQvXXHMNr7zyCl9++WWjfV9++SW//PIL9957L4MGDaJXr17cfPPN9O7dmyeffDJFLd42CkRERJLE3sAnchvaLiIirYPT6eCrn5dv8ri5v1dgmqmdj2KaBvOXVm70mBnzSlQQVqQVa66GCNRPn2npwqoAI0eOZL/99uP6669vtOrM3LlzycrKok+fPg3bDMNgzz33ZO7cuS3ezkTQM6OIiIiIyB9sTnjdWmo/bmrQoa0kXqTNyB1ycrPTZ1rarbfeSk1NDbfffnvDtg09l9i2jdPZNsuTts1Wi4iIiIgkSSxmsW//Tkz+cdlGj+vbLTflK2JYlk3v7XI2esyuvYu02oxIK7Z+nZA/1gxpyRoi6+vcuTOjR4/m+uuvp2vXrnTq1Im+fftSU1PD3LlzG0aJ2LbN999/T69evVLSzm2lESIiIiIiIuuxbZtuHbPIzcrY4DG9tsslL3PD+1tSlsfF0D23a3bfnv06kL+RxyEirUP+ASObBCOpCkPWOumkk9h///1ZsmQJAPvvvz/9+vXjH//4B9OmTWP+/PmMHTuWuXPnctZZZ6W0rVtLgYiIiIiIyB94nSY3nTeY/GxPk33dOmZxxSkDcbaS5WwdBow8pA9/Oa4/uWtCmiyfi9OP2JG/HLtzq2mniLQ9t956K1lZWQA4HA6eeuopdtppJy6++GJOOOEE5s2bxzPPPMNuu+2W2oZuJcNOw0mF8bhFeXldqpvR5jidJnl5fioq6ojFNOwyEdSnyaF+TTz1aeK1dJ8WFWUl5Dy6h249/R0lXrL71DAMQjGLZaV1TJ9bX5h0z37FFOd6cbXCkMHhMAlG40RjFk6HiddtYm3hmrv6PU089WlytNX7qLQuqiEiIiIiItIM27bJcBj07JhJny7ZAK36DW08buE2DdxuB8AWhyEiIulGgYiIiIiIyEbYdusOQkREZOuohoiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIiImlHgYiIiIiIiIiIpB0FIiIiIiIiIiKSdhSIiIiIiIiIiEjaUSAiIiIiIiIJZxipboGIyMa1mUBkwoQJHHXUUeyyyy4cffTRvP/++6lukoiIiIiINMNPHf5YOaa5LhXx2zVkWpUKSkTakKlTp9K3b1+WLl2a6qYkRZsIRN566y2uu+46TjvtNN577z2GDRvGFVdcwY8//pjqpomIiIiIyHr81FH+zr9Z9eIYvJESHA4Dv11D2Zt3sHr8WHxxhSIibcXAgQP58ssv6dSpU6qbkhStPhCxbZv777+fM888k9NOO41u3bpxwQUXsO+++zJt2rRUN09ERERERNbwOGLUfPEikRW/YQVrWP3SzWRUL6LszTuIli4jXlNO2Vv34jNDqW6qiGwGt9tNUVERDocj1U1JCmeqG7ApCxcuZNmyZRxzzDGNtj/55JMpapGIiIiISNvidEAsvu5rwwADG8tO7FCNsOUka/+RhFcuIFaxAitYw6oXxjTsNz1+Co6+hKDtBeyEXltEtt7nn3/O/fffz/z58/H5fBx44IFce+21zJ49mzPPPJP//e9/TJs2jWuvvbbZ7//kk0/o0qUL8+fP54477uC7777D7/ez9957M3r0aIqKilr4EW2eNhGIAAQCAc4991xmzZrFdtttxwUXXMDQoUO3+rxOZ6sfHNPqOBxmo/+Xbac+TQ71a+KpTxOvLfep7qFbpy3/zFsr9enmcdlh4ot/ILPrzoQc2RgGuGuXYUdCxPK2x1pv0Hgi+jTsyKXopGspefkWYtUlDdsNl4fiU8YQ9XfCtOxG9UXaM/2eJof6NXHKy8u5+OKLGT16NAcddBArV67k6quv5q677uLYY49tOO6oo45iyJAhDV+XlZXx5z//mQMPPJAuXbqwatUqTj31VI455hhGjx5NMBjkwQcfZOTIkbz77rv4fL5UPLyNavWBSG1tLQDXXHMNF198MVdeeSUffvghF154IU8//TT77LPPFp/TNA3y8vyJbmrayM72proJ7Y76NDnUr4mnPk28ttanuoduu7b2M28L1KcbFg/WUP3Dp1R89iKu4u50PPla4nWVrHjpZuxYjE6nXI+naz8MR+O3Bdvap9GKGjD/MMTeAKfTiS+n9b0pagn6PU0O9eu2W7VqFZFIhM6dO9OlSxe6dOnCI488Qjwep6qqquE4j8eDx+MBIBwOc/HFF7PDDjtw8803A/DSSy/RsWNHrr/++obvue+++xg8eDAffPABI0aMaNkHthlafSDicrkAOPfccxk+fDgA/fr1Y9asWVsdiFiWTXV1IKHtTAcOh0l2tpfq6iDxuJXq5rQL6tPkUL8mnvo08Vq6TxMVYugeuvX0d5R46tNNc1lh4sH6Dxijqxez/P+uwwrVYUdDYJjEI2GqqwNY1IcXiehTT7yK0tfvIFa5stF2OxJi+fNj6HDKGMLeDth2ekyZ0e9pcrTV+2hr1K9fP4YNG8bf/vY3ioqK2G+//TjooIM47LDD+P7775scb9s211xzDeXl5bzyyiu43W4AZs2axbx58xg4cGCj48PhMPPnz2+Rx7KlWn0g0qFDBwD69OnTaHuvXr347LPPtvq8sZiejLZWPG6p/xKstfWpYRhkGrWEbTcR24XTtPCZYWotL1braeYmtbZ+bQ/Up4nXFvu0rbW3tWmLP/PWTn26YTEy8Ox2NNlA9dS3ideU1e8wTIpOuJpofm9iMQNo3H9b26ceR4zqyS8TLV0G1NcMKTzuCso/eqKhpkjpO/dTcOJ11MU92/jo2hb9niaH+jUx7r33Xi666CImT57M119/zVVXXcUee+zBhRde2OTY++67jy+//JLx48eTl5fXsN2yLAYPHsyYMWOafE9WVlZS27+1Wv2Eq5133hm/38+MGTMabZ87dy7dunVLUatE2i/DMPBFS1n57LVY87/G54rjLJnN8icux1O7BLPVP2uIiIjI+iJGBt4+ezfaZnozcRZ2JWYn9sYeijvJGnIK7uIemB4/xaPGEMnvTeGJ1+LM64TDn0vBsZcTsDTNQaS1mDFjBuPGjWOHHXbg7LPP5rHHHmPcuHFMmTKFsrKyRse++eabPPHEE9x333307Nmz0b7evXszf/58OnXqRPfu3enevTs5OTmMGzeOuXPntuRD2mytfoSIx+PhvPPO4z//+Q8dOnRgwIABvPfee3z11Vc888wzqW6eSLtjYhGvWoUVqKHi46fxLpxOcMEMsC0iKxfg6NkRC1eqmykiIiKbwTTBG1jBqvG3NNpuBaopfeMuCo6/ijoyE3rNOjLJP/5KiIUIuouw4hYBM5vCE68FK0bAWZA202VE2oLMzExefPFFXC4XJ598MuFwmIkTJ9KjR49GI0CmTZvGDTfcwJVXXslOO+1EScm6oslZWVmceuqpjB8/niuvvLJhZMmdd97JnDlzmsz4aC3axGe9F154IZdccgn//ve/Oeqoo/jggw948MEH2XvvvTf9zSKyReK2QaxwRwqPuxyA4PwfwbbIPfA0zJ77ErUVhoiIiLQVXiNE+YePYUfqa4YUHv8PsgbVrxoRXb2Y4C+f43YkfrpBHZkEXIVYVn3wYdtQZ2QTcOYrDBFpZXr27MmDDz7IlClTOP744znllFNwOBw8/vjjmOsND3/jjTeIRqPccccd7LPPPuy///4N/02cOJGuXbvy/PPPU1dXxymnnMLpp5+Oy+Xi2WefJT8/P4WPcMMMOw2fkeJxi/LyulQ3o81xOk3y8vxUVNRpnl6CtNY+dZoWjlWzKH3znoZtuUPPxNF7CJE2EIi01n5ty9SnidfSfVpUlJi5u7qHbj39HSWe+nTTDAN8VhVlr99J7tAziRX0wUmU8PT3iNVWkLn/qQTtddNX1KeJpz5NjrZ6H5XWpdVPmRGRluUwbJyl8yiZ8C8APN37E1r8C5WfPEu+042rx95ENWVGRESkTbBtCJg5FJ58AyE7g5ht1hda3fUoPFiNwhARkXSjQEREGrENE0dWAabHT87g43HvdCCZy36l7N0HcRV2JWS6/liIXkRERFox24baPwQfIdJrhRcRkeYoEBGRRizLJphRRMez7iBsuwlEnTg77Eznv97f5pbdFRERERER2RAFIiLShGXZ1OBv+Dpmm1THNKRWRETSk2FAJA7lNWGC4Rj5OR4yMxxtY3UCERHZIAUiIiIiIiIbURe1uO2Zb1lRWl9Q2DDghIN7c/heXXEYKW5cEkQrV+OJhKhz1K8Is7YwKzYEHDmk35IMItJeKdgWEREREdkA2zB48p1fGsIQqK/J8don81hZEUxhy5LDE69m5Su3s/qlm/HFynA4DHxWFaWvjqP01Vvxxasw2mEIJCLpSYGIiIiIiMgGBMIxfpxT0uy+Sd/+jsvlaOEWJY/XEaHy46eIlvxOvK6SkpfHklG9mNJXxxGrXEWsqoSKiQ/iM8OpbqqISEJs1ZSZ2bNn8/jjjzNt2jSqqqooKChgn3324YILLqBr166JbqOIiIiISEpsdHZIO5s7ErLc5A49i2jJEmLVJcTrKln1wo0N+01fNnlHXEDQ9rCJnhERaRO2eITItGnTOOmkk5g6dSoHHHAAZ599Nvvssw+TJ0/m+OOPZ+7cuclop4iIiIhIi/NnONi1V2Gz+w7ZqxvRaLyFW5Q8tg1hdx4dT70RR2Zuo32mx0/xqDEE3YVYlsIQEWkftniEyL333ssee+zBo48+SkZGRsP2UCjEeeedx1133cUTTzyR0EaKiIiIiKSCYcN5x/Xn1qensao80LD9+AN70im//a3AZtvUV401/vi5qQGG0d4GxYhIMx599FG+/PJLnnvuuVQ3Jem2OBCZM2cO999/f6MwBMDj8XDuuedyxRVXJKxxIiIiIiKpluk2ufm8wZRXh6gNRSnK9ZLlcba7YnyGAZ5YJStfuY14TXmjfVaolpKXx1I06kYCzgJsJSMi7dILL7zAfffdx5577pnqprSILX4e79SpE0uXLm12X3l5Ofn5+dvcKBERERGR1sK2wW1Cx1wPvTpmkdMOwxAAjxmh8n/PEKtcBdTXDCkedSPO7CIA4nWVVEz8Dz4zlMpmikgSrFq1ir/97W/cc8899OjRI9XNaTFb/Fx+zTXX8MADD/DOO+9gWVbD9q+++or77ruPf/7znwltoIiIiIiIJF8w7ib30HNwFW63JgwZQySvF4UnX4czuwhHdiF5R19CwMrY9MlEZKtMnz6dl19+menTp7fodX/55RdcLhdvv/02u+66a4teO5UMewvHuw0dOpSKigpCoRAOh4OioiIqKysJhULYto2x3sLkhmEwa9ashDd6W8XjFuXldZs+UBpxOk3y8vxUVNQRi1mb/gbZJPVpcqhfE099mngt3adFRVkJOY/uoVtPf0eJpz5NPKfTJJMaYuEwAVcBlmVjGOCLVwIQcOSqjsgW0u9pcrTV++jG3HTTTbz77rsNXw8bNoybbrop6df9o9GjR7Ns2TLVEGnOiBEjktEOERERERFpBVx5HamtqMNa8ybTtqHOzK3fqTBEJCmmT5/eKAwBePfddzn++OPZbbfdUtOoNLDFgcjFF1+cjHaIiIiIiIiIpKXZs2dvcLsCkeTZrEDk22+/ZaeddsLv9/Ptt99u8vi99tprmxsmIiIiIiIikg523HHHLdouibFZgcgZZ5zBK6+8woABAzjjjDMwDKPJUltrtxmGwa+//pqUxoqIiIiIiIi0N7vtthvDhg1rUkNEo0OSa7MCkWeffZYddtih4d+1tbVkZmY2Oa66uppwOJzYFoqIiIiIiIi0czfddBPHH388s2fPZscdd1QY0gI2KxAZNGhQw7/POussxo8fz4ABA5ocN2XKFK644gqOPvroxLVQRERERETSnmHQZIWb5raJtGW77babgpAWtFmByDXXXMOKFSsAsG2bm266qdkRIosWLaKwsDCxLRQRERERkbTmNC084TJi7ixCtgcAlxEnI1pO1JVN2M5IcQtF2o877rgj1U1oMebmHHT44Ydj23ajuiFrv177n2ma7Lbbbtx+++1Ja6yISFvmNmJkOQKYprHetghZZh2GYWzkO0VEpL0yTIOwZROK21iGQSpuB+vflza2LVWcpoWzdC4rnrmG4Ldv4jFCuIw4xvIZrHjqKiI/TyLD0LR9EdlymzVCZOjQoQwdOhSoL7B600030bNnz6Q2TESkPXEbMezfv2Plp89RPGoMQU8HnHaY+NwvWDXtHYpG3UjAWdCkYLWIiLRPhmlQURflrcnz+eqnFViWxc47FHDSIX3olO/F0RJtMMBnVWPX1RDydcFacwuKh2pxlszDkbsdwTWjMVLJZ4RY9vpdYFvU/vAh2Dbujj0pe/9hAKq/fo3izr1wFO1EPG6luLUi0pZs1giR9T333HMKQ0REtoDDBGPVLMrffwQrVMfql2/GG1pFfO4XVH76HPG6SkpeHkumUZvqpoqkJcOAiGWzsirEwtW11ITj6C2VJJNpGixeXcdVD37B5z8uIxa3sGz4eX4ZNz72Dd/8sirpv4Nrw5DS125n9Us346ldgmmAyw5T8+PHrBp/K4Epr+E1QkluyaYFLTcFR1/U8HXtjx9RviYMAcjc7VAo6KEwRES22GaNEBERka0Xt8BTtD2uwi5ES5dhhepY+czVjY7J3ONIIraekkVSoTZicevT01hVHgDq3yiOPLQPQ3ffDmfrmTUg7UgganHPC98Tt5ofFfjUO7+wyw4F5HiTd1/wG0FKX7+TWEV9ncDV42+h+OR/El4+j8rPXgCgdsbHOHxZuHc7mkg8dfeoqO3E1WVX8o+6kPKJ/220z7/Lwfj2PrFVjGQRkbZni0eIiIjIlqszsigYPhpXYZcm+3IOOAVXv4NUEE4kBSzD4LEJPzeEIVC/YsXLk+ZSUhlMYcukPVtVHqA2GN3oMV/PXIHTmbyX6iEyyB16Ohj117BjEVa9eFNDGALgyMzDu9MBRC1X0tqx+Yxm620Zpokmm4rI1lIgIiJJt6ECcelWRzTm8ODZfmCT7d4dBhI19MmWSCrUhWL8PL+s2X2f/rgMl6slKjlIOjFNo1EAtyHzl1YltR0xyyRW2JfiE65sCEXW58jMo+joC7FdnpTXt1pbQLXsvf802Vc7438NhVZFRLaUAhERSSqXESfTqsBtNP4kzG1EyLQqcJmxFLWsZbmNCLE5k6n59t0m+9bWFGlNFf23hGmCt5nq/l4jjLmFdxmHw8DpNNtsX4hI6riMGBk0flNsGOBzRFpVAG/bNjmZmx4RWJjrSfoKZE47Chh4uu3UZF/O3sdS+c0Eqic9kfI6Il4zTNm7DzV8nbnroeQf/teGr2t/+BCjbBEOh9mqftbSlJ8a/HZ1o5+TYRj4rUr81KWuYZK2FIiISNK4jDjmypksf/wK4nMnN4QibiOC9dvXLH/8coxlP7X7UMTpAGP5TCo/fa5hW9YeRzZMn1lbaNVvtL0XAqYJntql1Hz6FD5j3SeePiNAzadP4aldulmhiAVUhWJ8NmMFr09ewPQF5dRFLS1HLEnnz3Cw0/YFze47aGAXotF4C7dItoaTGMayn4jM/Lhh+dX6oqFVVL33AL54Zat5o2zbsF1xJk7Hxp8ch+7RNfm/f4ZBtGQJocUzm+yq+PwlsnY7lOx9hhMxGgc4GX8IvB2mjZtI0poZsD0UDa8fyZK526H4Bp+Ic/vdKRxWX2g1e/Bw7ILtccaD+KMluAz93bZGfmooe/0OSl8dh8+qwjDqwxBfrIySl2+i/J1/KxSRFqdARESSwmnEMFfOpPSt+wC7fjWVuZPxu2JYv31Nxf+eAaDsnQfqQxGjdYciMaC0NsLC1bWU1UXYkpdasTg4O/XF3akXUF8zxLPXiEY1RXIPPJVQq5ijvfnWhiGrXx5LcO5UqiY9hs8I4DMCVE16jODcqax+eewmQ5GYDW99uYjL75vM0+/O4q3JC7jv5R+54v7JzFlWlX5zq6RFmcAFI3ahKM/baPtJh/SmONfb/DdJq2JFQlhLplP27gNUf/0akZ8/wmNG8FlVlL46jtDvMyl95bYNhiI+I4Cf+lW+DAMyjdqGUCWhDKiLWiwuqSMYjnHOsKajMtbaf9fO5Gclt66U24gQnT2Zis9fXNdEp7tRTZHSiQ+DbWPb6zrOa4QIf/8WnrplmOaaMKRiPrFf/5ecfmPN9J7iHel01u349j6ROCbRed8QmDOVTmfeine3P2HbEJn5ESueugpj+QyFIq3M2jAkWraMWOVKSl+9HZ9VXR+GjB9LvLaSyIrfFIpIi9OSBiKSFIYdJ15TDuuVOqv89Dncs74gsmpRo2PjNeU47Dit9SkpYtk8/OZMZswradi2Z79izjumP+7NjJXr8JN/zOVEl83C2G5AffhhuCgYPprYqt+wOvUnaretQCSDMNVT38KO1X8qGFowHfuD+ur/4TWfNtqxCNVT3yLrkHMJ0rROisNh8PXPq3jnywVN9kVjFnc99x13XTyEfH/b6htpWzLdJrf8ZTBl1WECoRhFuV4yPQ59atRGWKFaqia/3PB19dev46+tILx4JrGq1QDEqksIL/gBZ58Didrr6sL4jCDVn/4fVl0lecMuhXiUklduw9f/QDJ2OSxxxa4Ng1m/V3Dfyz8Si9ffF48Y3J1/nLo7z73/K6sr6gv4+r0uRhzUk/0HdE76CkcOO0bd77+s+zozj8Ij/kq8roLSD54A28KORYiWLsGR2QkLJx4jRGDaG9T++BG1M/5H8agbsSNBVr96O1hxcjBw7zSUiO1OeHtjlkldRkcMA7x1S1j5v/8DILRsLjmDhxMPVlP9zZtA/Yctnf9yHzEzlxSXPxHWfK4Ri2GF1gUdscqVlLx8E3Y8hhWobthuBWvAjoM+C5EWYtiprpKUAvG4RXm5ksct5XSa5OX5qaioIxbTOu+J0N771G1EseZOpmK9qSJ/lHvQaTj7Hkg4gS+eEtmvpsPg4++X8fwHs5vsO/fYnTlgl07E45t/DaejfsTI+hwOiLfyD7I21Kc+I0DVh48SWjSj2e/z9NiVnMPPJ2D7mt0fitlc898vqQlseLWFIbt14ZyjdoQNLE/ZVrX0339RUVZCzqN76NZr78/5qbC2T4Orl1Lyyq3EqkqaPS578HAydj2C0B8CjkxqWP3STcRrynAVdccK1RCvKcfduRf5w/5OHZkJaWdNOM7l933e5Gms13Y5XHHK7gRCUSwL/D4XfreJFW+Z57v6EX2PE129iII//ZnSDx7HXbAdmf33p/SDJ8g7YCTefvtRY9X3g8O0cJXPp+S1O8CK148msW3AxnC6KR51I6HM7bCS/OvtMcKEZ3xA9ZQ3m92fd+g5mD33JdJKPmjQ3/76U2PGEq+rbPYYZ24HCk/6JwEzZ7OCrLZ6H22tKisr+de//sVnn31GbW0tffv25R//+Ad77rlnqpuWVPrwQ0SSJmK7MPscQO6BpzW7P2fIqISHIYkWjtp8MGVRs/smfr2I0BbegP8YhkDrD0M2JmD7yDn8fDK67dxkX0bXnTcahgBUByMbDUMAvp21knCavoAUkc0TdudRePL1OLLym+zLGnRss2EI1C+JXjTyBhz+HKIli+vDkA7bJzQMMQyDRSuqm810f1taRVVtmHy/m8IsN16H0WJhCIBtOMje/TAKj/grpR88jhUK4Nl+ALW/TqHzGWOJlCyh/P1H8Jn1RVXjlkk0vydFJ1yz5gQWYIPpaLEwBCBkZ5Cx6xFkDTq2yb7coWe2qjBE6tm2TcBZQNGoGzG9Tf+2HFn5WxSGtGeVlZXMnDmTysrKFr3uFVdcwY8//si//vUvXn/9dfr168e5557LggVNR/G2J61zfLqItC8bKiBhGNhtYEzkBm/MaX7DbqSZJRtJ0EoxdsP/iIg0b2NvoAzT3IynkPWXvDBJ9Hh9eyMtSOXTWxgP3sxCVr9yK1YoQPHJ/4SiXvi2H8CK8bdBPFYfdDSa8mg0X9upuftAEtnU/2ybNMPQUtmtm0Hzf1+J/7tra0KhEHfddRcTJ04kFovhdDo56qijuOaaa8jISG5NocWLF/PVV1/x4osvssceewBwww038MUXX/DOO+9w2WWXJfX6qaQRIiKSNG4jivXb141WV1lf1eSXGq0+0xpluAwOH9y92X1H7tsdjzO9n0bXFlANL/65yb7w4pkNhVY3JNvnJtO78U/x9urXAY8rvftZRDbOE6uk9NVxa2pXNVY9ZQKRnyc1W/DTb9dQ+sptxOsqcRV2xZGZR2TlfCreewBfggo72rbN9p1zms2Is/1u8jZjCd5ksSyboKcDxSdfT/HI64jkbk80DhldetPhpH/WhyH+Lg2jPtYWUC157Y41Z1jzoKw4q1++GU/d8i1ebn1rZBhhIj9PonrKhCb7Kv73NPbCqa36tUU6qp8yU07J+LH1dUL+IF5T2mj1mXR011138fbbbxOL1S80EIvFePvtt7nrrruSfu28vDwee+wxdtlll4ZthmFgGAbV1dUb+c62T68wRSQpXETWrCbzdOPtRd0afb129ZlkLte3Lay4zQG7dmGXnoWNtu/ep4hB/TpsUf2Q9sZrhKj+9BlCC6Y3bMvoujMZXddNnwktmE71p8/gNULNnsPnNjn50N4bvIZpwHEH9MRuZ/VDRCRxYtWllLxyG7HKVQ3b/P0PxJlT1PB19devEZ/3FS6z8RxFy3Di6tADd+feFJwwmqJRY3BkFZDRdSfiRuIGUme5nfx91O441ktFvBlOrj1rLzzJrp66CWtDkXB2D+JWfVsMwySSvV2jMATAZYUJzJ4CVhzD6abD6bdQdPJ1YDqwo2FCi2bgtJN7PzdNA2eghOqvX2vYlnvwGWTvfVzD1+UfPUGGVZe2b6xbo7VhSLy2omGbIzMX07uuLsf6q8+km8rKSiZOnNjsvokTJyZ9+kx2djYHHnggbve6aewffvghixcvZsiQIUm9dqppyoyIJIfhwPRnN9qUe9BpeHc+iNCsxoVWHf5cbMNotdMi3CZccuIAKusiVNWGyc3MINfvxpHmL7TChofsvY6pX10mFmkooAo0FFo1nG6yBx3zh+HW61hxm7136siq8iDvfbWw0T6nw+Qfp+5OQaZ74+PhRSStGZ5McvY/ibJ3HwLqC6h6djuSrHiQ0jWFVh1ZBWTssDsBu/F0ioDtJWvoOZi2TZ3tx3BA8ak3E8PVbM2RrWfTv0cu9/39QEoqAzgcJoU5HvxuB1YrCHzr29D4pmbbRpO2hfDgG3wihsOBb6chhDK3w8Ci6MTRRJbNxbXT0KTXBbMsm6ivA7kHn0Hlp881FFB1YZFtmFRPeZOCYZcQMjN162hNTAem20uc+kBkbQFVrHijQqumx9/i069ag6VLlzaMDPmjaDTKsmXLyM3NbbH2/PDDD1x77bX86U9/4qCDDmqx66aCVpmRzaYK2YnX3vvUZcQxVvxE2dv3N1pNZv3VZwqGXYLdZVeiduLy2fber6mwoT41TfDULKF66ttkH3JOQwFVnxGg+n9Pkz34WEL+rptcIMYCaoIxps8roaw6xA6dc+jdNRe/29Fuw5C2Wh1f99Ctp+emxFvbp9UVldi//0i0bBkZA+oLqBoG+KwqKj94lNzD/0rAoSVYN8fm/J5mGGGiRsZ6U2ksHFaUCC03/cdtRHFHKoi48xoKqHqMMM5IFWF3fkJfV2wr/e3X89vVlL1+B7YVbyigCutWn3FkFZB/7OWbXdC4rd5Hm1NZWckRRxzRbCjicrl4//33WywQ+fjjj7nyyivZfffdefjhh5NevyTVFIjIZtOTeeKlQ5+6jDieeBURR2ajT43cRpSMeA0hR3bCX7SkQ7+2tI31qWlChh0iaDceBeI1QoTxbNFquQ6HiWHUfwLYGj41Taa2+kJO99Ctp+emxFu/T414BNOOEV5vRJphgNcME7QyFIZsprb0e2oYBn98K9PctlRzOk2ys72UVwXBtjGh3d/jNsRvVwN2o9VkDMPAFy8H07VFqzu11fvohowdO5a33367yfbjjjuOG264IanXXuv555/ntttu44gjjuDOO+9sNIWmvWo90amItEtR20HMkd/khWjEdhFtZru0PZYFwWamxPwxINkc6VyTRUS2TX243vilrW1DIN46Pt30OGKE4s5NbpPN11zw0drCENuAstoIb365kJ/mlZLhdnDk4B703C4Hr9NIu9dBdcaa6dTrPW7btqkz81LToFbkmmuuwTAMJk6cSDQaxeVycdRRR3H11Ve3yPVffPFFbrnlFs444wyuu+46jDQpwqNnYBFJug3d7NPtRYCIiKQnP3XUfDGerH1Poo76T5n9dg01X7xG1r4nU4c/xS2UZLANmLmwgvvG/9joNc+sheV0yPdx458H4U3z1epknYyMDG644QYuueQSli1bRpcuXVpsmszChQsZN24chx12GOeffz6lpaUN+zweD1lZyR0dk0oKREREREREksRPHeXv/JvIit+IrFxAwYhrwIayN+8gWrqMaPly8of9XaFIgrgcEF1vMaG1C/ukYoZKVSDWJAxZa1V5gP+8/jNXjNxVy35KI7m5uS1aQBXqV5SJRqNMmjSJSZMmNdo3fPhw7rjjjg18Z9unQEREREREJAkMA4gGiZUvByBaupTSV28DbGIV9csEx8qXQyyI4fJr5OQ28hhh4vOn4e+xO3X46wt/Vy8GwySUuekC34lkOgw++2HJRn+msxaWURWIkudztVzDRJrxt7/9jb/97W+pbkZKKJAUEREREUkC24agu4jiU8ZgZtSvwhWrWNkQhpgeP8WjbiToLlIYso08hAj98A7lHz1J+bv3kWkG8FQvZvX4W1k9/hY8tUsaRou0hFjc5qffyjZ5XGVtpAVaIyIbokBERERERCRJLMsm5O1E4fB/NNlXNPxKQt5OabviSGLZ2PEoAJHl8yh5cQyrx9+KHY9i2xa2FaNRJc8kM0yDDLdjk8c5HelRuFKktVIgIiIiIiKSRJ54FRUfP9Vke/nHT+GJV6WgRe1PCC/evYaTufvhAMSqS+oDEoeT4pOvI5LTA8tuufDBARy5T/eNHpPhclCQs+UrsolI4igQERERERFJEj81lL1RX0AVwHBlYDjdAERLllD25l34qUllE9uNiOHB12fvRtscvhwcOR2IWy07EsOybPp0zaMo17vBY0Ye2ofMjE2PIhGR5FEgIiIiIiKSBIYBxKNYwVqgvmZIh9NuocPptzTUFLECNRCP1h/bRjXX9pZ+PGsLqJa8enuj7fGaMsre/hd+o65lGwR4nQY3nrs3fbrlNtrudpqcceSO7D+gE1Zc06VEUkmrzIiIiIiIJIFtQ8BZQNHIGymbcC8Fx/6doKcDAMWnjKHs7fspGH4lAWcBdhutquozApiROgLuooZVXPxGHUSDBN2FWFZLtSNEyfuPNEyTKTrhGoK/fUftDx8SWf4b4d++xdXnQKLxlktqbBv8LpNrTt+DmmCM0sogLodJQY4Hf4YDW7VjRFJOgYiIiIiISJLYtk3AVUjhyBsJ2N6GAqpBT0cKR95IneVt02FI9f+eIrToJ4pHXk84qxseu46KiQ8RWbWIDqNuJOjr1CKhSJ3lofCEayh9/Q7yjzifSM72ePfqCoCBibPXYEItGIasz2Ua9Nwul3y/i1isvjMUhoi0DpoyIyIiIiKSRLZtUxv3NFpNxrLqt7XVMMTtsAjN/ITgb99hxyKsHn8rrrI5VEx8iPCSX7EjQVa/djt+I9gi7bFtCDhyKRo1hkjO9sQtCNkevHsej2fP4wjZKl4qIk1phIiIiIiIiGyRSNzE3/9gQr//Uh+AxCKN6ncYTjdFw6+kzt5wUdFEs22ojTe+XoiWu76ItD0aISIiIiIiIluszvaTd9TFuDv3brzDMCkeeT2hrG4tVkNERGRrKBAREREREZGttKG6HAa0zdlAImmprKyMq666isGDBzNw4ED++te/Mn/+/FQ3K+kUiIiIiIiItBCvEcBlxBpt8xlBnGbbG0rhNwJUTHyQyPJ5jXfYFqvH34KndglmG15OWKQl2bbNRx99xIUXXsjw4cO58MIL+eijj1qsztBFF13E4sWLeeyxx3jttdfweDycffbZBIMtUwcoVRSIiIiIiIi0AJ8RoObjJzGWTm8IRfxGHZUTH8C5enabCkXcDovgzE8IL/kVAMPhoujEa8no2g+gvqbIm3fjN9v3mymRRLBtmxtvvJF//vOfTJs2jSVLljBt2jT++c9/cuONNyY9FKmqqqJLly7ceuutDBgwgJ49e3LhhReyevVq5s2bt+kTtGEKREREREREksxLHVUfP0Fw/veUvfcQxtLpZDlCVLz3IOElv1Ly5j04V8/GYbSNUCQSN/H0H4q35x4YDhfFI68nWtiXvKMuJqNrPwy3l+ITr23RoqoibdWkSZN4//33m933/vvv8/HHHyf1+jk5Odx777306dMHgPLycp555hk6duxIr169knrtVNMqMyIiIiKyxeI2VAejVNSEyfa7yfW7cbby6REOE/xmkEA8g5htkmFEcBtRau3MpH8Cazjc2AOGYfY6GHP1XMonPYnhdGEFqtfsd2J6s7Db0OeVAdtH9qHnkhupJZBRjGVBHfWFVokGCboLVVRVZDNMmDBho/vffPNNDjvssBZpyw033MArr7yC2+3m4Ycfxufztch1U0WBiIiIiIhskagFz7z/K9/8vKJh247d8/j7yIG4W+n7eYdpk1G9mOWv3k7hcZfjLu5FeNbnVHz7HkWjbiTgLEhaKBKz4YvZ1bz40QoqasLs1GN7zj78evzfPIoVqMZwuikeeQOhzK5YbawQacD2Ybj92Os1vM72Y7j82ApDRDbLihUrNrp/5cqVLdQSOOussxg5ciQvvPACF110ES+++CI777xzi12/pbXSW5aIyKYZBvjtavx2NYax/naDSOlSPFZN6honItJOmabBT/PLGoUhALMXV/DhtMWYjtY5TMS0ooRXLsCOhil5/S6qJj5A5WcvEA9UY9WUYSRpqorpMJj662r+8/oMKmrCAMxaVMn1L8wjsu+5APh3PgArZ7s2F4as1VyQ1EJ1IEXahU6dOm10f8eOHVuoJdCrVy/69+/PbbfdRpcuXXj++edb7NqpoEBERNokwwCfVU3pa7dT+trt+Kz6UMQwDDJCJax4/kbK33kAP3WpbqqISLsStWwmfrOw2X0fTf2dULR1DguI4sbZe39yhowC2yK06CcAikZcRTSvJ5aVnCAnELF4edKcJtsjMYsv54XI6Nyb2hkfY/3+fZPVZ0QkPRx//PEb3T98+PCkXr+8vJz33nuPWGzdc5BpmvTq1YvVq1cn9dqppkBEJBUMg3DcJhi1sNrqx0EptjYMiVWsIFaxoj4UsavxRUtZ/fLNxOuqCC+bQ8V7CkVERCR1orE4dcFos/sWlEYwMgsAKHv3IYzlP+E04i3ZPBFpBQ477DCOPPLIZvcdeeSRHHrooUm9fmlpKVdccQXffPNNw7ZoNMqsWbPo2bNnUq+daqohItKCTNOgKhTjhQ9m892vq/B6XIw4qBcH7NoZR6ob14YYBhCPYUcCDdtiFSsoeekm7FgUK7huqkw8UA20zk8rRUTaIpdpcNQ+2/Of12c02fenvbvhcZqtMux3ESE270uqvngZDBNP9/6EFv1EyRt3U3zStVj5vZIySsTjclKc52V1RdPlZ/foW4TH6E5o7hQMtxdXfmcCekUgknYMw2Ds2LEccMABvPnmm6xcuZKOHTsyfPhwDj30UAwjuVMR+/TpwwEHHMCtt97KrbfeSk5ODo8++ijV1dWcffbZSb12qikQEWlBdZE4Nzz6DdV1kfqvg1Gee/9XSiqDnHxwT9rs5OEWZtsQcBZQNPJGSsaPJV5XBUC8przRcc68ThSeeC0BIwvUtSIiCWFZNgN6FrDPLp2aFFU9fFD3VhmGAFimi4yOO2C4Mig87nLM4l54Zn1KzbfvYWYVYNsmybhZZDgN/nLcLtz2zLRG2/OzPQzs0wGX62CyIyF8O+5D0NtRhUhF0pRhGBx22GEttprMH/3rX//i3nvv5fLLL6empoY999yTF154gc6dO6ekPS3FsJO9xlgrFI9blJdrCP2WcjpN8vL8VFTUEYvpbr2lTNPgx/ll3D9+erP77vv7AWS69anQljAMo36KzIs3YoUa/007s4soGnUDdUa2CrslgP7+E6+l+7SoKCsh59E9dOu1t7+jOFAdSO2yu1vap6ladtc2oKQ6zFuTF7CqPMCgnTowZNcu+Fwmtm2TYUSIGu5WsURte/s9bQ3Up8nRVu+j0rpohIhICzFNgyWrml/1xLJsguGYAhEREWkzHECez0Wez7VF32cYRqPwwTASvyLJH8+59ppxC6otb8P2sO0mbLtJ9jBCw4birAzOP2ZnYpaN0wFW3G7oh7Dt1khGEZEUUFFVkRYSj1v065Hf7D6P24Hfu2UvKNPd2tEhJePHNhkdAhCrLqHk1XWrz4iISOp5jRD+yCqca5a49dvV+GIVCZkfbxgGmAa2aeC3qvBTC4DTjOOPrMJjhLf5GtvKsixMbKy40g8RkdZAgYhIC7Ft6FqcyfadspvsO/OofvjdDgyjfvif09k+/zSbe8G7NS+CDQN8sbJG9UMAHFn5mN51wxnXrT7T/MgcERFpOR6CBKa8yopnRuMsn0emUUvZ63dSMv5mfLHyTZ9gI8Jxi7nLq/nXy9O547nv+fTnMsqW/k6WGcCxchYrnr6G0A/vkEEoQY9GRETagzY1ZWbhwoWMGDGCG264gREjRqS6OSJNOBwGgYhF3LJxOgy8LpP4ep8CuU2Dq0/fg+/nlPDZD0vJ8rkZcXBPtiv0EY5arCwPMH1uKaYJu/ctpijXi6udjG7wGiEckWpC7kJidn3g4zOCGJEaQhnFxLdg6qdtA6YTw+2DNYGIM68ThSf9E2KRRkGJw5eNsl8RkdSzcODI7QC2Rclrd2Jm+LBCtbiKuoJj61+ShsIxPpz6O6998lvDtnlLKhmwfQ7n135PbPJTgI0ztwOW4djiqSmmwyC45t7ucppkOIxtLhxrGAYeM0Iwvm50aIYRJmpktIo6IlLPY0aIkNHw83aacQwrRpSMFLdMRBKlzQQi0WiUK6+8kkAgsOmDRbaAYUA4blNeEyYQilGY4yHT49yst9B+arEMB0HbS9SGz39cxhufzacmECU/28Oow/qwW6/CRkXmMhwGQ3bpyOCdOuBymuTn+Vi4rIpbnp5KyXpL8r3x2Xy6dczimjP2xOto26mI1whR9/V46mZ+TtGJ10B+b9yEqf7kKUILplM88jrC2T22KBQJmNkUnngtpa/dDkDhSWtWk3EZFI8aw+qXb8aZ25G8oy+lDn+SHpmISFPr31fqgjEKcz1keVrXS66YDRW1YarrouRlZ5DjdbGttxobqAvHKakK4nY5KMj24HOtW4I3gpuMfgeTVVdJzXcTsUK1mN4sCkeMptbe+ufpksogb3z6W5PtPy2somJwT7JMk+x9hmP23IeItWU/h7Bl8/HU35n49SKC4RidCvycfuSO9O6Ss9UFZA3DwBcro/qrV8g+8AzqbD9eI0jw2wn4dj6QkL/zhkMRw6AuEqekMojDMCjM9eBzOZJaEDZd+YwgtV+/StbAwwl6O2ISx7l6DtGKFbj7DCFiu1PdRBFJgNZ1d96IBx98kMzMzFQ3Q9qhuojFLU9PY1X5urBtxEE9OWLv7ht9seOnlvK3/oUzvxOOIX/msQmz+H5OScP+8uoQ/339J47atwcjDtihUcASj1uYgIFNSUWAsU9NobSy6TDe31fWcM8L33PtGXu2eOX+RHE6ITb/B+p+/hSAktfupPDYv1M96wuC874FYPWrt9P5L/c1KnS3Kba9LhTBgEDDajI2YU8RnU6/hbjhoNZSGCIiLWtD95Wj9umewlatE7Zs7nt5OnN+r2jYtu+ATpx1RD9cWzmgzgKm/rqaJ9+e2bCCfE6mmzHnDibP52p4w+6MB6laMGPd94XqiJUvxZnfu2H04JaqrAlvcNX6JRVRdvFlE5r3Hb6dDyLC5r+WjFg2dz3/AwuXr5uauaKsjruf/56zju7HQQM6b1UQkUk1q8aPJV5bSbyuisJjL6dy8njqfv6M2p8/o8PptxBwd2h6bgPmLa/m7ue/J7bmEwSP28H15wyiS4EPu5Uud9wWeY0QNZ8/R2D21wTmTKHDKWOIV5dR8uY9YFvkOVy4eu5L1G4zb6VEZAPaxDjyb7/9lvHjx3PHHXekuinSztgGPP72zEYvWqF+dMbKig2PRjIMIBokWrmSwJyprFi+qlEYsr6JXy+iJhTb4HkWraxuNgxZa+HyaspqUl8IbmvFYuDqMRBvn0H1G2yL0rf+1RCGYJgUHv8P6uJbPvzUtqHOyKaOxkvr2raNu7ALIVPLo4lIy7INgyff+aXZ+8rystSPcjUdBh9MWdwoDAH4+qcVzFxYhmluXfpeFYjy+FszGwUTVbUR7n3xB6JrNvrNEGUT7iVavgxXUVey9jy6YfqMJ1q+1QWwMzdSlLxDUTamJ5PI6kVUvPcgfnPzaogYBixeVdsoDFnfCx/MoS4S36r2xnDh2X4gAOElv7Lsv3+j7ufPAHB36gluf7NBS104zl3PfdcQhgCEInHG/d+3BCKaZ5NIUcONf6f9wTCxwwFWPjOakjfuAtvCzPCR0aUvcUPF8EXag1Yfa1ZXV3P11Vdz/fXX06lTp4Sdt70WrUwmh8Ns9P/tQVUwxox5pc3u+9+3Szj/uP7EYs2/4In6O9LhlDFUTHqSz39r/gXTWotX1rBH74Imywq6XE6++WnFJtv566Jyuu653TbPWU6VCH5yhp6DHY8Tmv99o31FJ16DXdQbA0fCnpDa4+9qqqlPE68t96nuoRtWFYzx49zmA/KPp/3Obn2KU/ozD0YtJk37vdl9E79exMDehVv88zVNgx+nL29237KSWqqDUYqzM4gaXvIPPZuKT56l4Ph/YDk8OPzZxKrLsDKycBhb3i8Oh0lhnpe9+nXg219XNdpXnOdlu86F5I64itI37yFv6JmYDhOXo36KiYM4TjtM2PA1Pa/T5JPvlmzwurG4RVl1iOwOWz56OYqPzP1GgR2nbuZksOvDDHeXvuQfdTEhM7PZ++HyFTXEm3kdEAjFqKgJkVWUmBGRbfm5KXFM7I79KBp+BSVv3MPawjOG003xKWOIZnbGtOzNDhDVp8mhfpVEaPWByE033cTAgQM55phjEnZO0zTIy9Mw+q2Vnb350xpau7roRlYfMSAry7PB3bZtEwnU3wg3tVKKaRrk5m7975xpGOTkNH3B1pbEasLNfvpnGuDN8mI6E/9JS3v6XW0t1KeJ19b6VPfQjQts9L5iYBhGSn/m8crgRvd7vW4yfVteG2Fj90Gnw2z4nbGzdyZj5D9xZtUvQ+/Z4wjseAxnZu42VXu64IRd6f71At77ahGRaJwhA7twyqG96VScDeTQ6ZQbiIeDrH7pJopH/ANXQReC83+kYurbFB93Ga6cokbnsyybTb3Vdaz3uLZUrDa6ZlHgdQzbxuV04M1p/pzmsuqktGVD2tpzU6JZsQiBVU1/CxymgW8rX5Ole58mi/pVtkWrDkQmTJjAd999xzvvvJPQ81qWTXV16oettjUOh0l2tpfq6iDxLal+2Yp5nCa79i5sdpTIoXt2o6KirtnvMwzICK5m5Qs3YUcj7DEwh9e/av7TMYBuHbKaPZfDYbLPgE4b/LRurR175G2wLW1BhlVH1f+eIvjb9032rXr1TopPvAarqA9xHAm5Xnv8XU019WnitXSfJurNku6hG5fhNBnYt4gfm5lGeehe3QBS+nfkNA0OG9SNtyYvaLLv6P22Jx6NUVER3eLz7ta7kOfeb7q9S1Emfo/zD/ewDGj42gBc6329Zdb+HWU44Lj9tuewvbphA163iWHTcF03UDdlAtHy5ax4fgxZex1N1Zevgm0RWjKbAL5GhUwNA4bu2ZUpv6xs9rpOh0leZsZW3ZvddoDaL1+uHx0CYJhgW4SXz2XVW/eRf/QlhMymI086FfhwOgxi8cajRPweJ7mZ7oS9TtDzPTiIY6ycRcmb99ZvWPMzsmMRlr9wEx3WjBLZ3JG76tPkaKv30bYgnVZ3bdWByOuvv05ZWRkHHXRQo+1jxoxh4sSJPPHEE1t97lhMT0ZbKx632lX//eXY/tz6zDRWrje3+8ShveiQ593o43Q7PbhyO+Is6ExW52L27FvKd828AB62Xw8yMxwbPFf3jtkU5no2WEdk+87Z5GdmtNk+dzohsvDHxjVDjvs7dbO+JDh3Wv388Qn/qi+qGktswt/efldbA/Vp4rXFPm1r7W1p5w7bmVtLG99XTji4F10K6j9VTvXP/MjB3ZmzuILZi9fVEdl/107svH0+ka2si5Hjc/HX4/vzxHp1RHIzM7jytN1xkvzfmbV9unap+ni08fViuPAPPol4oIbgvG+p+mI8AHlDz8TquBORZmpwdOuQyQ6dc1jQTB2R04/YEa/L3KrH5SFKaOF0ADK69qPwuMup/Pwl6n7+lMjKhdjhWuJuX5Nptj6Xg6tP35O7/lBU9dqz98Lj3Lq2bEyqf09TyWWEqf3164aaIcXrFVW1wwHCS+dg9CwgtoVFVdO5T5OpPfVrNBrlq6++oqSkhKKiIvbbbz9crpatV5Nuq7saditep2vVqlWEQo3fJP7pT3/iyiuv5Nhjj6VDhw5bdd543KK8vO1+2p4qTmf9cMyKirp286QD9Z8CReJQVhPa5mV3v5m5gjc+m091XYSCHA+jDu3Drn9Ydnd9a/t00fIqbnlqKqsrGg9l7t4pi6tPbx/L7ga+eYXanz+j6MRriK1ddvfTpwnN/5HikdcTzu5G3ErM42yvv6uppD5NvJbu06KixBQZ1j100+qX3YXyP9xX3K3o76h+2d0ItcEIOZkZ5Phc2zxGz4Y1S8KGyHCZFGR78K637G4ybMnfkdO0MJf+SNm7DzZs6/Tnewi4izbYxrAF//tuCe99tZBgOEbnQj9nHNmPXl2yt7q/Gpbd/fo1sg84nTrbh9cIrVl294CNLrtrrF12tyqIaRgU5njwuR0JXWFGz/f1fEaQ2imvkrXb+svuziZauRJH7yFE7M1/k6o+TY62eh/dkDfffJP//ve/VFSsC6vz8/O54IILGD58eFKvvb5//etfzJgxgylTpnD77be3+xEirToQaU7fvn23+QejF3NbR0/mm+ZwGASjFrG4jctp4nEaxOMb/hNb26eVlXXUhS1WlgeY8VsJDtNgYJ8iinK8bXa53T/yGiEckWqC7kLia5ZW9BlBzEgtwYzChIUhoN/VZFCfJl5bfSGne+jW099RU+aa+6Zt10/ncTuMLQpQNrdPnUYcZ8ns+ikQtoXpy8YKVGN6Mik+ZQzBjOINXtd0GAQjFnHLxu00t7iNhkGT0R6GYeAxwgStdfVaMowwUSNjg2FIS9Hv6ToeI0LEyGj4eTvNOIYVI8qWrYynPk2Otnofbc6bb77JbbfdtsH91113XYuEIt9++y0XX3wxEyZM4KCDDkqLQKRVT5kRaWvicRu3aeBeU3V8Y2HI+mwb3CZ0K/SxQ8ftgfY3JD1oezDc3kZLCQZsb/229vVQRURkE0zTIBizmPbzcl7++DeC4RiDdy5m31270LdrXsPUl0Qx7DjxukqwLfIOPgPvTkOo+OhxQgtnYEdCkLHh+7UVt8lwGLBmtOaWhCF+uxriMQLOAmzbxjDAF68EDAKOnEbHhu2MtYuZSCsRst2N0qyY5YAE1TsTWSsajfLf//53o8c8/PDDDBs2LKnTZ5K1umtr1+YCkTlz5qS6CSJJ1d6CkPU1NyCtbY1RExGRRAhELayyxeyRH+LzfA8d8zI4Y0CEGlcdz76/kjOP6IcrgStpRnHj6jGITn/uQ8SVQ03UTfbQP5MbqSWQUZSUURl+u5qy1+/ECtdRNOpGQu5CPNFySl65FcMwKDzpegKOHN0HRdLcV1991WiaTHPKy8v56quvmtTWTKRkrO7aFrS5QEREREREUstnBDHtGHVG1prpLhY+M0wgnkHM3niSYRsGGZFyAu/fhRWLcMXhV2AEKol8+Bj+nGKOOfAKfltWxU7dcpsN0rdW1HYRcxU1BBDJHKXodUSo+uBJouXLACh5eSyFx15GyXv/IV5dv7Jdxfv/IffYfxCIb9n0i3RmrlllxzQNTLZstI5Ia1VS0nRRhuaUljZdFTNRkrW6a1uQwOxdRERERNo7nxGk5vNnKXl1HD6rGpfDxrl6NsseuQRn2VycxsYThppglM9+LsXoewDEY8Qn3kXss8fqd+56DB/8sJpXP5lHLAlDJ/54ymSNzghZbnIOOQdndhEA8bpKVr10c0MY4sjMJe+IvxG0PMlpQDtjAxWBKK98Op/bnv2Oe176kZmLKgjH66chibRlRUVFm3VcYWFh0tqw/uquAwcOZODAgUD96q7nnXde0q7bGmiEiIiIiIhsFofDwFq1gMDsbwAofe12svc8ipKPnwbbouy9h+h4zt3UbGQZ9UAoxnOfLKXrqAPpuvJXIqsXA+DecX8mV3fms58Wk+F2EIvbONroKmu2DQFHLoUnX0fJyzcRr61s2Gd6MykaeWNDXRHZOBv4fl4p/339p0bbZy0sp3OBn+v+PKjNr8Yn6W2//fYjLy9vo9Nm8vPz2W+//ZLWhnvuuafZ1V0vvfRSjj322KRdtzXQCBERERER2SzxuI1d1IucA04BIFaxgvJJT4JtYWT4KD75Buos30bPkeF2sO9OBXSOLmoIQwCi86ayX5coO3TKJDczA9Nsm29yPY5Y41ELyjy2SXldpEkYstbysjqeeHsmtoaJSBvmcrm48MILN3rMBRdckNSCqh06dKB79+6N/gMoKCigQ4cOSbtua6BAREREREQ2W9jOwNP/EDzddmq0vei4ywn5Om2yrkO2z8Vfj+hB/LPHATD3PQNzl8Ox41HsT/7DZcfuwPEH7ICnDaw7b5oGHjPS8LXfqMNeOh2/UYcvXknJK7fWr26zHitYS8nLY/HFyjD0Rn6jDNPgwym/b/SYH+eUUB2MtlCLRJJj+PDhXHfddeTn5zfanp+f32JL7qYrTZkRERERkc3mNC2slXMJLZndaHv5pKcoPPFaAmb2RmtzOA2otjw4/3QZhKp59bccuhZ2ZZ89PMQ7D+Cpj5dx/ogBm710faqYpoE3vJqaaW+Tuf8pGNjEV8wh+NsPuAu7UfnZC41qhhT86TzKP/4/YtUlxOsqqfjgERVV3YRI3GLWwrJNHldVGyHHo7c10rYNHz6cYcOG8dVXX1FaWkphYSH77bdfUkeGbEy6rO6qZw4RERER2SymaeCqWMjqN+9pmCbj3WEggV+/IlaxgtLXbqfo5Oupxb/Bc9g2ZHozqOuwI5//8Duf/bwEgMpBffHEXJw/YgBep9Hql6P1xStY9dLNWKFa4qE6io78K1UzJxNcMJ3Qkl/pcPK1xKpLscJ1FPzpXCq+foPik0az+tU7wDTJO+oiApbCkI0xDYMMt2OTxzlVQ0TaCZfLldSldaUpBSIiIiIislksy8bMKcZV2IVYdRkdRo3B8hfgKupG1eSXyNztUCJsxqeZa0KRI/btzf67b08kZuHNcJKZ4cC27KSEIYZhNCliahhbv9KMZWaQ0W1ngnOnEpr/A0v+cyFr1/B1F3UlvPw38vY/CRxOyj59nqJj/06dq4DCk68DwyBg5rT60CfVXKbBEfv04OEN1BAB8Hmc5GVptR4R2ToKRERERERks9WRRcHwqyEaIphRjBWzyeh3EB177ILlySVqOBoKiZomuIkQstxNT2QYhKMWToeJ3+PEaYC9gfojTgfE4ut/bRDbyJQap9MkEo0SjBk4TYO8jAhmsJKQp2PD9/mNOogECGYUYW18peBmBWwv2QefjR2PE5r/XUMY4u0xAF/vvSj74HEMhxNMB0XHr6mvErepM3PrT6AwZJMsy6b/9gXkZ3sorw41e8zpR+yI3+3A2pofojTLMCBuG4SicQzDwOs2YRO1gUTaKgUi0qqZpoFpGsTjVso+RfERAGwC+DEMg0yjlojtImw38+JOREQkDdSRheHOaggwwnYGhq+Q6OzJuPI7Q/GOuIngjAep/O59MgeNwLBjWIaTsOGlJhzn9U9/44vpy4hbNr275XLWUf3olOvlj5Mf3EYUY9lMMjr2oo4sfEaQ2KIZeLrtRoymK9rEbPhx9ipe+ngepZUh/F4Xx+3Tmf061FFYUAe5PcmI11Lx7gNESn6nw6gbCfo64bIjuM04ITOTeNzCY9UCENjI9J96696Ie3fYjezd/0RszTK7hjuDwiPPp/qHj8gd2lGjQrZCZobJ6LP24tE3f2L+0qqG7R63g5MO6cNeO3ZQGJJIhkFJTZjn3v+Vn+eXYRqw984dGXlYX3K9jq0KD0VaMwUi0iqZpkFNOM6shWUsXV1L/54FdO+QhbuFl+DzGQGqPnwU24qRd+RFEAux6uWxZO5xJBn9DlYoIiIiaWv9N/YuI0ps3tdUfvY8GCadzryNmh8nEV42h7z9T8KoXkbZh0+R0bUf4T1Gcd0jU6iuW7c6y7zfK7nh0W+4/pxB9OyY1bBSjdMEls6g9N2HcBV3p3jE1ZRNepLQ/B/I2fcEMnY7qnGbDIP3vlrAW18sbNhWF4zy4ieL+Xn7HP42YAn5kRAV37xFeFl9wcCS1++g41l3UFJey7zldcwrWUHP7XLo5a8l49f3yTroTAJ20+DFZwSp/vRpQvN/AMC7w0B8O+xKxeTx5B10CoXHXITp9lL+v2fJG3ISlZ88S+7QM6kzchL1I0gLUQuenTiLXXoWcuyQnoQjMRwOE9u2mfzjMvbdpSOONrpEc2tjGLCqKsQ/H/m64W/QsuGbmSuZPq+UOy7aj6zNqOki0pYoEJFWxzCgIhDluke+JhCKAfDOlwvZoXMOV522OxktWDjLtKJESxcTr62k7M27sOoqiNdVEf79Fzw77g8oEBEREYkbbrzb9cPI8GGHA8QqVxJeNodo2TLKP38JbJtY1WqcnXbgsx+XNwpD1rJteGzCTMaeNxiXuea8NmR07oMzrxPR1YtZ9shFAJjeLLw77kPEaHwfrglFefvLhX88NQA/L6yibHBP4hNuw47VX99wuikcfiUVETc3vTyfVeWBhuNzszIYe9IwcuIRMJsGIqYVJrzkVwD8Ox9AzqCjWf70aMCm4rOXKDzqb6x6/W7iNeWUTHyEzqePxYrHMFxbX7ckHRlAOBJnwufzATCNdbM3PHpznlAxG55855dml84OhmO8/cUCTj+szwantom0RWaqGyDyR3Hb4Kl3fmkIQ9ZasLyKnxaUYbbgpwB1Zi5FI2/E9GYSXb2IeF0VGV13Iufwv23GEFoREZH0YFk2QW9HOowag+F0UzrxEfL2Pwlnbgdilavqw5D8Tjj2OYNPf1i2wfOsKg9QE1wXltg2BIxsik/+Z6Pjik+4mqC7qFGRVMOAZavrNho2TJ0fwN2hx5pvMCkedQOR7G58+N2yRmEIQGVNmLd+ChBw5Td7roAjj+JRY/DvchCZ+48i6s4le6/6ESuR1YtZ/sy1xGvKAcjb/0Rw+Qi6CzcrDLENqI3Embu8ml+XVFEdimE1mUyUHhwGHL1fj4av138vfuigbnhdejuTKIFwnHlLKje4/8vpywnFNGdG2heNEJFWJxyL8/P85tec//yHpezVtyjh1/QaQUw7Th2ZGAb47VpihpMw3voD1n/xYlsYqoQmIiJJ5nHECFtObHvNcrd2uJVP1bRZd8M0mi7hsubfm35b3/gIL0HKP3660bayj56g4PgrCZt/mH6yiZMbf9xvWUTiNl/OWN7s8d/MXMlJQ3s3O2XXsmyCGUX49juVwJqisd49jyNWW0Hg168bjsvZ7yS8Ox9IneVr9pP3P4oDk6cv54UP5zQ6/k97d+eEg3riSrNcxLJs+nXL54CBXZj847owrU+3XI7ed3usjRTXlQRLs989SQ+KVKXVMQ0Db0bzWV1uZgaOJq9mto3XCFL71cuUvXkXfmrwWdWUvHoboe/fItOqoOTlsVihWtwdd8DhzyW8dDYV7/8XnxHY9MlFRES2gt+oIzD5//BZ1TgcJt7wasLfvYnXCKa6ac0yDPAGV7LqpZuxYxGKjr6Aisnj60eG5HXEmdeJWMVK4l/9Hwfvsd0Gz9OxwEeWb92yvS4HRBd8R2j+D5jeLDqcelPD9Jnab9/BbawbTWoYBl2L/E1Dj/UM2sFHZNWi+i9si9Xjb8Vf+zt9uzZf1yPL5yaDptN71rIsu2EFHcMAM1JHeOnsRscE532LFYtvVhhiGAYLV9bw3Puzmxz/0dTFfD1zBWYLTh1uLVwmnHl4X+69dAg3/HkQd160P1eesjsZeieTUP4MB7275W5w/5Bdu+BxqtOlfdFvtLQ6XrfJMUN2aHbf0fttTzye2KF6DuJEl88jWvI7pa+No3T8LcQqVhD+fTaG6cDVYXs8PQaQf9xVFI26EUdmLt4dBhLTACsREUmCDEec2ilvUPfLF5S+djvuit9Y/dLN1Hz/PrGF3+Fqhbcfpx0lvGwudiQIhokjpwhPt51wFW5H3gEjKTz8PFyF2+HwZnLgbp3Jzcxocg7DgPOH79KoVlg0Ds4d9iR7z6MpPmUM4ZztKTzpWjIHDCVz0HFEbGfD93oDy/Eum8bwA5t/DbHrDrkU1C2gePg/yOjaDwA7HqVswr389fBuzX7Pift3Yb18ZqN8sQpKXrmlYZqMK78zAJHViyifcA9+ajd5jpht8/JHcza4//VPfiMQTs8pCyaQ53OxfXEmRVlunOmXCyWdw4Dzjtm52SK13gwnxw7ZXvVDpN1phbdUSXdW3OaQPbajujbMR9N+x7Js/B4n5x7bnw65noRfr9bOpOCE0ZS+ciux8hUAuAq2I//4f1BtZ5Jz6F8Amzrbi+H00eH02wjbLiKtetiyiIi0VeG4g8y9hxNe8RvR1YtZ/fJYALy998K1/Z4EYps4QQpEceHuOZhcK4YrryMhb0e8g08kOx6g6vuP8O91HAUjRhM3nJg4ufX8fZgweT6f/bCUWNxmx+75nHnUjnTI9TQZGRG0vWTseTxB3Fhxm4CRjXe/U6mLOxteyGaESlj58s3YkRCHH3kF3UbuygsfzaWkIkiWz8Xx+3ZhcGE1hUU7EM7uQd5Rl1Ax8UEiqxdTdOK11JmZ/HnYTrzw0RzCkTgup8nwA3dgj34dqYs3TUScDoPYmqkahmFgGhbYJoaj/ti8w87D02dvaqe9Rc2372K4Mtic+QYxy2bxypoN7q8NRonE4nicegkviWfbUJzj4Y6L9uf5D35lxrxSTNNg3106cdLQ3mRlOFQQOInKy8uZMGECH3zwAeXl5eTn53PEEUdw/PHHk5/ffC2jRFq1ahUHHHBAk+233347I0aMSPr1U8Ww7fT7tY7HLcrL61LdjDbH6TTJy/NTUVFHrCUKKpkGtaEYoUicTI8LX4aZlHmihkH9NJnxtxCvLgHAVdCFghNGU0dWwq+3vhbv0zShfk089WnitXSfFhUl5vlM99CttyU/c4fDIKN6EateGNOwrfP5D1JLVqt+Q+IijG24iNn1g5BN08BNuGFayfoM0yAYtbBsG4/TxGFs+eora/s0ULaayg8eIbRoRv32vI7Y/Y8k7i3A7fNR2LkzhKoJZnRoCDL8RgCiAYLuIizLxjQNaiNxAqEY3gwnWRmOZqe5+IwA0d9/wtFtIGE8+KKlxGtKiRX2JiNWQ3TFb9BlABHbhccIE1/4Le4eA6nbjGLsURtufHxKkwKva7mdJv/++wF4kzhtQc/3idcW+9Q2DEJRq370lctslSND2up9tDkzZ87ksssuo6qqqsm+nJwc7r//fvr375+06wN8/vnnXHLJJXz88ccY6809zMrKwuNJ/IfSrYWmzEjrZdlkuh0UZrrxOI2kFc3yU0vpa7cTry7BVdAFZ04HomXLKHvzbvzGpoe3ioiIJJJpGnhCqyl5/e5G21e/Mg6fVb3RGhmpFiWjIQyBxjU2XEa0UQ0Ujx0gyxnD5zQx2balaMOmn5zDzyej684A9fVKvnga7+9fkduhEzUxD7Wu4oYwBKDO9hFwFTaEHpZl43OaFGa68bvMZsMQrxGi+uMnKX//EUI/vIM/VkbJ+Fsoee1O3NVLCTlzsbbbg4hdP1IkZGdAz/03KwwByHAYnHBwrw3uP3RQN/xujQ6R5DNsG6/TwOMwWmUY0p6Ul5dvMAwBqKqq4rLLLqO8vDyp7Zg7dy49evSguLiYoqKihv/acxgCCkQkzRkGBPAQPvjv1B45FvuYm8gbdTOu/C54uu9CfCOzygzDIMusI8MIA+A0LLKdQRymbhoiIrL1nHaE4OxvsEK1eHvvRZcL/ouruDuxihXEVv6WlPuM8YeU5Y9fbyuXEYVF31Lz6TP4jCA+I0jNp8/Aom/r9yWK/YdPia11i9U2F7g0t81h2o3u5x4jTKZRi2FAxMgge+9jMRwuar59lxVPXkG8rhJPt50hs4B43OaPH1RH45vffMuy2bVXIYP7d2yyr9d2ORyz/w5YVtsYYSAim2fChAkbDEPWqqqq4q233kpqO+bMmUPPnj2Teo3WSBGzpC3DMKgJx3jotZ+Y+3slAA5zPocN6saJJ9yMx4wRsptPRA3DwBcrY9XLY8nc40h8/Q/BWv0byyf8i6ITRxPJ3Z641Yo/whMRkVYrYrvwDPgTBfkdcW63C9VxLwXHX0Vs9XysDjsRiyc6rIiRESkn6s4hbGfgNYI4wjUEPYXErcR8duYxo6z8/EWsUC12vL4ISmj+94R//4WOO+xGtJk6HVvCZYepnPcDtumo32A6wIoTnDsVw+Eg64AzCNjeTZ7HYdq4yuex/I17KDrhGoyCbgR/+IDyXyZTNPIGAo5cIrk9yP/TeZS9/zAAhtNNwbBLqI4mpraYy4A/H70Txw7ZgW9mriAWs9h75450zPfh1keZIu3OBx98sFnHvf/++5xzzjlJa8fcuXPJy8vjtNNOY+HChXTv3p0LLrig2boi7YkCEUlbgWicGx+fQmVNuGFb3LL5YMpiaoNRzjlyxw2WPzOwsWrLiQeqqZr8EuHFPxP6fRbYFpFVCzGztyOOiq6KiMjWCdkenN32JrBmikcdmTg67UY8wdNHnUYMY9kMVrz7INn7nkDWwMOp/PRFArO/pvikawnn7YCVgFCkzvZTPOpGVr88ltD87wEwPZkUj7qROtsPbP7jMgyDtSXwbGDekgre+HQ+S1d7GND9aA49+Sw6d8ij7J0HCS2aQfj3X8ixImBsRiBiRYgsn4cdi7D61dvxbLcjod9ngunEDlRiZOeRESqjZPJLDd9jxyJUT3sbz+7H1E+RSQCnAR1zPJx0YE/AIB6Pt+raMetzOk1sm4SvCijSXm3uVJiKioqktSEWi7FgwQJ69erF6NGjyczM5L333uOvf/0rTz/9NPvss0/Srp1qCkQkLZmmwdwllY3CkPV9OWM5JxzcixxP838ilg2R3B0oOuFqSl67g9DimQDk7D8SZ58hhLUCjYiIbKPYH8KPRIchADYOHJl5YDqp/vp1aqdPwgpUY7i9mJ5M7PXqgRhG/f/ELRuXw9ii9liWDZ5snHmdiKyYB4AzrxN4sput1bEhbiOKO1JBNCMPhwELS6Nc9+gULBtGDunMlHlVfDKjlNsv3I+iw8/H8cVLZA0+njozd7OKlETIIGPnQ8mORameMqE+DAGKT/4n4ezueIwQFR8+Wj9NpvsuZA0aRukb91Dz7bv4eu+Jmb39Fj2eTWkrBTgBYjaUVoeY9ssqvB4ne/XrQI7XuRlr64ikt/z8fCorKzd5XF5eXtLa4HQ6mTp1Kg6Ho6FmSP/+/Zk3bx5PPvlkuw5ENPBO0pLDYTJl5sqNHlNeHdrofgOavLiy7Thb8imXiIhIKsVtg0jO9hSN+AcAVqAagA6jbiTo7dhwm4sDv5cGeOC1nxj33Pd88uNyQlsQiPiMIFWfPEVkxTwMlwfD5SGyYh5VnzyFb71CqxvjMqLYC6ey6uVbcNWtpOZ/j2OGqjBNg78e0Z0Dje+56k95FOS4+fT7JYTNTHwHnEnAVciWLKpoAPYf63Ss+f6glUHeUReSOWAoOUdcQLSgL8Ujryd36JnEszonNAyB+n7LdASJ2hCK2cSpX+XGR+ta6Sluw9tfLeSfD3/NhMnzeemjOfzjgcn8srgy4fVoRNqbI444YrOOO/LII5PaDr/f36SAau/evVm1alVSr5tqCkQkbWX7Nz6Kw+10bHCfaYKrYj4lb9SvAODZflcwTKq/eo3Y7Mm4aH7kiYiISGvjJkTdr1832hb47Ttcdv29zDQNfphbypjHp/Dj3BIWLKvi/yb+yrj/+5bwZgYAhh3HqqvC9GTS4bSxdDhtLKYnE6uuCsPevKqjNg4c2YUUDbuI1RP+TWDuNPxTn+ShiwYyoHoy0ZmTsD64h2uO7sCC5dVELYuQ5dqiMMRNmPDPH1Ez7W0wnXh6DABg9au3465ajGEYBMwcvPudSsD2EbcglN0Ns9f+CR8d6jOCVM7/ma9+KeWfj3zNhfd8yp3Pf8+ClbVUTXsbv5H4UMQwIGrZLFxexcrKEHURC8PcdKBRGYjy7pcLG22zbfjv6zMI/KGqrMNhYgGYRqteMUmkpRx//PHk5ORs9JicnByOO+64pLVh3rx57L777kydOrXR9pkzZ9Kr14ZXvmoPNGVG0lI0GufgPbZj0rTfm93v8zjJz97wElO2bWBmFeLw55C151Fk7HQwWSULKJ1wL+7OvYmY7v9v777j4yjOBo7/Znevq1f33ruxjTG9Y6rpmBYgEHoSSAiE0AKhhdASyEsJBAKEbjDFdAjd2Bhsio17L+rldP1ud94/zpYtJHfJkqzn+/nwvtHs3e5o7qyZfXbmGWg/s1yFEEJ0UB4jRfTbt4jM/Qzl9pG994nUfPoCwS+nkJeVj9V7b+riNk9Om9fovavLQixbG2Rw95z6oIPL1CQ3SfpqKo1WirCTQe7Rv0HZMSKuAkxT0encO3AckzD+baprShtQMABPeA2+nsMI/fgpduli7GeuZMPsTLOwF6URi4JsD5Zh4GxnHgvbcOPtPpg6lyedVDWvB+457xD58ROMQC5aa7SGmL1xCO04CqeZ84Z5VZzo9+8x1xjBA28sqi9fvLqWG/4T5K+/2A/e/xfZh19MxGmmLTEVlNbGeez1H1m8Or3jhWUaHDSmGyce2De9/WoTsSXDUCxZXdPkKWMJm+pQHF9OOn9L3NF8M6+E/32zCr/P4vj9+9K9MANLAiOiA8vLy+Pvf//7Zrfezc7O5u9//zt5eXktVoe+ffvSp08fbrnlFm6++WZyc3N58cUXmTNnDlOmTGmx67YFEhARHVZBlpfDx/fgvRkNgyKGgt+eOoqA29js1FetNRErj+KzbiWhXURSFmZ+f7r86n7Cjg/JIyaEEKKtsUxVn5dEKYWhHBLaIjDiEGJL55B/9GUkA50o6tSXmk+ew91jBGEbwrEU0XiqyXPOXVbFsF65pFIan4qRXDidQL89CesApuHgrlqK8viJBboSdgIoVwa1kSTfLiinJhRjzKBiOuVqXNswCwHArWPUTn8NT6deBAbvvX5my/pgSFEfykb8gjteWsydl+273cEQANtRJHL70uVXfyfseLBTCs/wwwgMP4gwgV2W2DShvNiDDuO//5rTRB0173xfy/kHnkmc5kniqpRibXWUGx6d3mDsk7Id3p+5knlLK7nuvD3xmo0/J601mVuYdbthxm3Cgbv/+y1L1my84fthcSXnHDWYA0d1QTfzciMh2pNhw4bx0ksv8dprr/H2229TXV1Nbm4uRx55JJMmTWrRYAiAYRg8/PDD3HPPPVxxxRUEg0GGDBnCE088wYABA1r02q1NAiKiw7IUnHxgP8YP7cTrny6lMhhjYM9cjprQi9yAe6vrgLXW1OlA/c+2owg6W89gL4QQQuxqfhUhufx7vD1GE8eLP1WJHSwnld+fiJlD/inXEdVenBSY2b3Jm/R7wutnHvjcVoNgyqZ6dsrEcTReooS/fJHwD//Ds+hr8o7+NanK1ZS9fCfKdFE0+UbiGV1ZUhLi1idm1vexr3+2jH1HduEXEwdtdZaA10gS+vJlootn4e0+ML1+dT3Dn4XWDgGvxV8unECO35XOBbIDEYx0f75x1kVce5ot8LCtHEcTV77N5jNbVZEg5i1E/zzmYyjCcRvbdnBZBgGPibMNuV6SWvPwqz9sduyzpiLMj0sr2XNgYaPXaA09izPxuk1iiYbLY3p3ziIn4EYpWFMRahAM2eDZ9xYwdnAxAVfbXMlvmgZKpT+TTX93w1AYRnrHo5ZIeCw6nry8PM4777wW3Vp3SwoKCrjjjjta5dqtSQIiokNxkQSlSOr0V99tKoZ0dtP71JGkbI3bVOnOrr3sbSeEEEJshc+IEfzg30QXzyJz3DFkjDyEsudvwY4EKT7jz8Qye5KywUWMOF5srUBpLOWQ0gYZXpOLThiO1umZBOsqw3wwcyVaa4b0ysNx9PpE4+m7c09xb6rf+j9iq+aBY+PuNgjDsogkHP7xwpxGN9Sff7eWI/bqSddcH0qB364BIGLmNOiO49pN5tij8XbqRaJ0OeG5nwOQd+i5uPI6U/P5S1hfP0besVeiCWMkQkTcRbTXiQcuS9GzUyYrSuoaHRs9oAClDPSG9blKUVEX56WPFjHrp1K0Bo/b5PDxPTlizx5keMwtPugJhhOsKm18nU1N/WQJo/oVNBm4yvCY3PyrCdz3/LeUVEYAGNwrj8tOHoHLSD99XrSqpsnzJlMOoUiCQHYzLf1pJjYQiqaYvbCcymCMXp2zGNQzF7/bIBSzmbusktVlIboUBBjet4AMjyk76gjRDklARHQYbpVCr5gFhomr+x7YyoUvUU7wy5fJOuAXhJW/2bPDb2ADddEUFTVRMvwu8jK9eDafs7WeZTj4jXj9MhyvimGRIkzGFmM2PhXF0DZhMlAKAoRIYRHTbWuwIYQQouXF8ZI1/jgyBk/AjgRZ99iVWDnFdDnnNrQ3C7eOEpvzFiiDzFEHo4Dy1x/Ee9ilRFUGcQfcLhPb1iRTDsvW1nLRCcPpWZxZf6MdxUdgn9Px9xtDdPE3ZI46GDtcjRHIxrfv2awJW5RG6jj3mCEEwwle+GAh4Wiyvo5zFpQx8IAemKkwwdkfEJ7/FUWTb8Cw3IScdP/sIwKWB2/vUdR89ToAhcdeTnjRN1R99DSFR11E8LuPMZ0Ele8/QXz1fPJPvZ6liXw8bhc5AXe7ylWRZUS54Iie3PTUjw2COlkBN/v0VPjsIGEyQCkWrqnlrqdnNXhdPGHzxmdL+eTb1fzlwgl4PQaVtXFCkSQFOV4yfS42DEXiya0vL6oNJ7AdjdXEshnH0RRne7j5/L2oiyYwDYNMnwuDdM4Vx9F0K8po8ryGAr/XtT1N0+JSGt6cvpzXP13aoPzgsd3o2Smb/0yb26CtlYKzJw5mvxGdaaJ5GlAGhOMO5bVRtAOFuT4y3OYOzWYSQuw8CYiIDsEyHFj9HVXvPAJA3lGX4u/cj9Lnb8GJBLGjIXImXkpEb1tit+2R0vDKp0t4Z/qK+rKuBQH+dO6eZG4hKGIZNlb5Ata+dj+Fp1yLyu1GZOYbRBfNpOCU64mY2U0GRfwqSt2nT5OqXEve8VeBbVP+0q34+u+Jd8yxEhQRQogOxnHAyMin+oMnMTNyKDjyIgxvBuue+wu5B52Nr8dQyme/S+ERF1D5xj8wPH6sgy7ig7lhPJ44T7658eYvK+DmkhNH8MirP3DRCcMZ0mOTnREURJd+S+jHTwjPn07h0ZcS9RUxZWY1r89YV/+y4jw/l588kvue+5ZEKn0j3iXLgNq1rHnhNvL2n0zOXpOIL5tD9SfPUXTajZCRT/DDJ7GDFeQd/3uKT72WyKJvSIVqiMyfDkD5W49QeNxvqHz/CWLLvwegcsqd5J5wK5c/OIOhffL49cmjcLfNlRkN+IwEdR8/TW6ohr/+4gzenFPDmsoEo3oF2K+vC/X+PVTndCLnmN9SHnNx93+/2exMmGA4wd9fmM1+o7ryn7d+qi8/fHwPTjqwHy4FAe/Wbwm6FARwbeFu33E0LgPy6vOJbKyQ1prenbPJyfRQU9dwJ76Dx/Ygw2u1mdm5hqH45qeyRsGQTL+LoX0KeODFOY3eozU89fZPdC0MMLBb9mYfsCmlWFkWSe/QtH73Hcs0uPrsMfTrnNVm2kCIjqQddAlC7Dxbm7iKe2MGcgCoeuv/WPf473EiQQAyhh9EUjVvhnhIPzFYUVrXIBgC6bW4/313/hY3ojGdJPE1i9CpBGUv3kbNG/dSN2sadqgGHatDbWavOkOnSJQsI1G2nIqXb6f8hVtI1ZYTXz0f82dbGyqlyDTCeNTGwYlhKDLNCG6V/PmphRBCtEOGoVCJMKnaUqJLviU4+33K33oIHY8QXzmXlHJRfOp1GN4AyepSUrXlfLMkSPfOWfz7jYZPwoPhBE+99RNH79Obf732I5FEuiczDQfqyvH1GAKGiU4lKH/7EVZUJhsEQwBKqyK889UKDtijG5BO9jqkk0mqphQdj1L5/r8JL5hB1ftPoBMxUtVrMZwEydJlJEqWUPnS7ZRPvQ9ScaysAnx990if2LEpn3pffTAEw8I85Nfc/9oSAOYureKTOWswtvYIvw2I4yFrwgnoypW43/kLFx1SzPXnjOGUvQpQ796FE4+Qc9DZJAwfPy6rajK/y6aWrg2Sn+NrsM3tezNWsrwkPZ7I9FmM7F+wxXOcfHD/rc5+2BK/y+AvF05g35FdMA1Fhs/FWRMHccrB/VBtKBAQTTo8//6CRuWH7tmDt75Y1sQ7Nnr6nfkktvBZ1MVS3PHUxmAIpBPX3vX0LMKJbdt+WgjRvCQgIjqE9K4w+RROvhHDuyERarrDyjvqUnS3kSSd5p8wZZgG78xY0eSxr35cRzi++c4vjhfPyIlkjj0a7BTxVT8BiqLTrieW0W2zTx/CKpOCk6/FzCwgVbUWu64SV2FP8iZdSZiNSWCVUviTFZQ8dS3Jef/Do+IYhsIXK6Hk31ehl82QoIgQQuwGvCpGzRevUHDkxSiXh0TJUnQ8gq/PKLInTCKm/BiZBVR//jIFR16I7r8/3yyPsKyJBJgA6yrD5GV7qQrGqIuk+wmfilP5+v0Ev32PgiMvTl+322A+nBdq8hzfLSpnUK888rO9XH9qf7LNGJGl31Fw5IUAxFb8CEDexAvRXUcRJpOCU6/DzMwjWbmaZMVqIou/xercn8KjLsbTc0Sja5gTf8d9/wuxeM3G3BjvfrWC2DYsD2ltjqOJeooomnwTxSdfS9JbgGNrou4CiiffSNHkm4gFuqC14qsfS7bpnJW1sUZLU96ZvhxlKJSG848dStZmdovZe0RnehVvebnu1mitCbgMfnnUYB78/YHc/ev9OHRMV1xtLD5VF01SG0o0Ku9SkNFkUthNrS4LEdnMjkyQ/gx+nngWIGVrSqsi219ZIcROk4CI6DBUOt184+mIjr3prM7mv+5OvVujnYYdp9bO1s+pNWw6/0Q7jX7HDBWi7PmbcSJBaj97nuS8/+GLlVD23M048QhV7z2GKpmLuQ25ToQQQrRdUcdD9kFnYbi9DftAZaAtPz6njspX78aOBEn3WuuTpG5LB7b+NWHHT+Gp12FmFWL4NuSK0Js9h1LQq9DNzYcoimY9hEqEUKaFdhoGK7RtbzyF1my6rYrWemPfphvfZCrtYG3jdr6WZWBZbWtYvCEoEsvqhe2o+rKIrwtRf2ecjflUt0lTr9u0LMtrcfsle3PqIf0J+FwoBd2LM/n9GXtwzpGDt3lr5K3SGo+pcBts0w44u5U2FvwRQkhARHQQhqHwJSrSAYD4+gi8Sn/9q955BFZ9i0ttPqK/oxzbYeJevZo8NmFEZzI8m5+V4iFObPY0Qt++gzJdeHsNBzRlL96Gp24VxmYGJgEdouKlW7HrqnAV9MDKLiJZsYqqqXcTYOOTurh2kTV+Uv3PtZ89T8mT19S3j6uwO1ZxX2yZwSmEEO1fMkbp1PvQqQSeboMwvAGiS76l5uOnMbDRdpKCiRdS8dbDsPBTxvQJ0LtzdpOn6lIQoKImSn62l0x/esaB1pq4O5fMEQdSNuVvAMRWL+DQIU0n0tyjfz7++e9gLfyIZOUagnM+wtt9EJXv/gsAX59RgKL6/cdh5TcEVB3lL96KHarBVdgTM6uAZPlKUqWLKX/jAeIr5za6Rurd+/j1/l4Gdc+qLztyQk+8m2zvagPloQSvfbGc179cQWUoQVvq9hxHN8oNkn62o9b/b81ewzpt07nysrwNEtkCTNyrV30QynE0fsvguH168eBVB/HQ1Qdzw7njGN4rt83N4mhJmT4XOZmNt1leXRaiX7ecLb63e3Em/i2M7fKzvPiaOG6ZBsV5zZ/HTgixdRIQER2CoW1SFSvrc4bkH/NrOp9/T31Okci8L3DReHrkztIaehRlcOy+fRqU9yjO5IzDB6GamJqyITeIrVx4ew5DubwUnXY92Uf9hqzxk7CyClH+7M1mI7eVibv7ENyd+pJ/0jUUnHo9Vm5nvL1HYquNU2UT2o05YD9yDjq70TlcBd3IP+FqwmTuzK8vhBCiDdAatMuHK78r/iH7knPslRRNvgnDG8DfdwxxI0D+CVdh5RbjKuyOq7AH44Z2ZXVZkF9NGtYgAJ+T6eHsowYz7YtlXHT8cHybzKqwnDjhhd+Adur7rp6dMjlxny4N6tOlIMA5++SQP3wvMkYcRGDw3ijTwp3fFcObQf7EC/H2Hkn+EeejPH5chT1wcOPpOhB3l/7kn3g1hafdQMaIg0nVlBJd/kP6xKZF4cl/xLtJThHno//j8mPTffDI/gXsN7Jr/awEreDT79ZyzYOfM+V/i3n5o0X84cHP+WpeaUtOHG1WjqMZ2jsfy9zykL5ft2wqa6MNyo7auxe9OmU2njjraApyfPhdBpaixXbga6v8bpMzDh/YqPzDr1dy1D69tvjesycO2uJMmkyvyZ/OGYfXvXH6rdsyuPacsQTaQ7ZfIXZDSnfAPZ5s26GqKtza1Wh3LMsgNzdAdXWYVKrtr7/9OZdKoVbNBsNAdxtJSrvwpyqpm/4qGfud3iI7zGzgkE6kVR2M4/da5GZ6cClwu0288XIcw0NIB3ApG0+ikpQ7m5j2YCkHvxkn5PhwHPCqOBbJHdx210VMN3ziUZ8z5MlrGpRnjjkS77gTiTltaxu8bdXev6ttkbRp89vVbVpY2DwBTulDd1xr/zsKEMJRJlHtwzAUARUm5rhJ6o1PrP2EQRlE8WEDsUSKpA1rysMkbYdoLMW3C0o5/oC+dMrxNXqy5lMxot+8gX/wPsQCXVBoVLicqoSL6rgLr8ciP8tNrmt9Mu9wDYnKNXg69yPpysCtY9R+/RbRRV9TeNqNGKZJSPtxnKb6tjBKQfDzFwj99CVFp1xHIqcXHh2l9oPHiK+cS8GpN7A8kY/LbZIdcDfYXjEYS3Hl3z9t1J8aCu6/8gAy3O1kzaiCJevquOOpWU0GL7Iz3Oltd90mVcE4kViK3EwPmT6rySejrf09bQtSWvPOzFW88r/FDcoPGN2V/j1y08mGN2lrQ8G5Rw9hwtBOTSae3bRNbVsTSdpUBuNorcnP8uJ3Gy26fHt31V77UdG2SEBEbLPdoYN0qSSg6gd/Sik8Kk7Maf4dZrZGKUUgUUbpc3/Gyu1EwfFXEV/9E5Vv/IOs8cfhHnkUcVpui1zDUPiiJQ2XEW0ie7/JuIYcTFzv+rbZWbvDd7WtkTZtfu11ICd96I5rz/+ODFMRTTg4WuO20jMHNjeC9Kg4SeWpz3FhKo2pEyRovAwhQB3YKSJWHlprlAK/UwuazW4vvynLMsh0JUjW1RB159fn2vCrKEYyTMRdgLOZpl60ro47/vN1k8duOn88PQsDTR5ri5SCqnCSKR8v5qsf1uFo8Hksjt6nFwft0Y2A29zmmR7t+XvanLRS1MWS/LikkoraGL06Z9G3azYBt0konmLByhrWlIfonO9nUM88MjzmZlOESJu2jPbaj25JLBZjxowZBINBsrKyGD9+PF5vy90PCGj+bTWEaMOSuuGMB601sVa74ddgeTA8ARLrllDy5B9woukcH1ZeF7SyWvRpQYYKs26TYIirsDve3qOpm/k6kM4pkp+Vj9VjHKm2tKBaCCHELufY6USYG7JCbilQEdce0OnAu+NobK2w8dT/vKkwmWBuPKHWEFbZG3K7bhMrI5dQyo29ye4xEe1DuXyb5mBtpKlcDhu4Xe1kdsh6WkOu38UFRw/hjMMGkrId3C4Dv9vEsXWHW/bSHJTWZHks9h3Wqf676zjp5PwZbpNxAwoYP6hwY7kQOyEWi/HII4/w2muvEQwG68uzsrKYNGkSF1100S4JjEydOpVHH32UVatW0aNHDy6//HKOPPLIFr9ua5LFaqJNcasEmUa4fr2yX0XS03d3Q1pDzJVD5zNvQlnu+mBI9gFnoHqOJaFbNl4Zc9zkHPwLIB0MyT/hajx7HFefU8TdpT+urkMkGCKEEGK7+VQMX2hlfcJy09D4wqvxq+bdWtRQmlRtBcb6XWY868cRSqmtzi4pyPaSk9F41kpBjpe8JpJqtgta43cZZHktvKbR8XZxaQGOo0mlnEZBj82VC7G9YrEYl19+OU8//XSDYAhAMBjk6aef5vLLLycej7doPV577TWuu+46zjzzTKZNm8YxxxzD7373O2bPnt2i121tEhARbYZbJbAXfkbJU9fiS5QTMKLUvvswNe/8k4BqnaCItUlMQqn0gK5Zz0+K2JpF6NTGhK7RBTNwObFmvU5TEtpC9RhL4Qm/r0+gGncszAH7U3Dcb8k75grCtJ/pwkIIIdL8KopLpQMEhqHIMGOb3ZmsJfhUjMhXL1HyzA2oVbPxWjbu6iWU/PdGat95qNmCIqahsSqXsOrhX6PKFuK3UiTnfkjpM9fhT1XWJynfHL/L4KYLxtOj08Zp8H26ZHHDeePxtrEteIUQu69HHnmEOXPmbPE1c+bM4eGHH26xOmit+fvf/84vfvELzjzzTHr06MEll1zC3nvvzcyZM1vsum2BLJkRbYapU4RXzsWJBCl77maszHwSZcsxA9koO7nLw3d+FSW5ZDa+XqOJ4cNv15CqXI1RPIiks/P/dAxDYQbXUPLa/QBk7X0ykbmfkihZQs07D5F91G+IOC37hCqhLcziEcQ2ebqR0C7MrnsQl6dKQgjR7gRUmOq3/4+MUYfh6TYSK1ZBxdR7yD/uSqLe4l3yNNvUSaKLZwFQ+dY/CQzdl/BP08Gxia9diEqEUW7/VmdwbI3hJEmULkOnEpRP+Sve7oOJrZwLhokTqkbl5G1x1Y3jaHJ8FtefM466aBKlFJk+a31+FOkDhRAtLxaL8dprr23Ta1977bUWWzqzbNky1qxZw7HHHtug/PHHH2/2a7U1Ev4WbUYUP9mHXoCn5wicaB2JsuUY3gCFp91I2MzdpXXxqjihL16g6t1HCX/xPBm6looXb6Pi1buxKpc0y5M2x9GQUUhg6L7kH3kx7pFHUnDqdbgKe5Bz4JnEWjCh6qbsJgbHtgRDhBCi3TFNhV2xkvjKuVS+/neSc96k7PlbSFato27m67hp2enWG4RVFoWn3YgZyE7/PPdzcGyUy0PRaTcS9RRudfbGtkjixjVof3L2nwzaSQdDgMKTriGR25ttif1oDZZK59/I8VmbpjMRQogWtyGB6rYIBoPMmDGjReqxbNkyACKRCOeffz4TJkzglFNO4aOPPmqR67UlEhARbY+zSdIKrYF01vldKaG8ZO5xBMrtJfzjJ6x99LekguW4u/TDyO3WbE/Y4oaf/EPPxeg9lrhtEjGyyT/5T0T9XWVNqhBCiO1i2xq7oB95R1wIaGq/nIITCeLtM5qM/c7YZTuqaa1JeAvI2vukBuWBofvhZHXG0kl8oZV4VXMEaDQ4qYZFjo2SLlQI0Q5sazBkg7q6uhapRyiUzmV4zTXXcMwxx/Dvf/+bffbZh0svvZTp06e3yDXbCgmIiDbDT4Tadx8mvmouZiAbd+d+OPEIZc/fgj9VtUvr4jiaWKALBcf8ukF54Ql/aPa8GlZGLinSg1StIWx7JRgihBBih9jKjafboAZl/v7jcMxdlyQ0ndtjEdUf/qdBeWjOBzgrZqHKF1LyzA3Evn1jp4IibhIk5n1Mzecvg2Hi6zMKgPJX/oaregm7MG2KEELskKysrO16fWZmy2z963Kld+I8//zzOeGEExg8eDBXXHEF+++/P0888USLXLOtkICIaDNSyoWv7xjMQDaFp91I3qTf4+27B+6iXrt0IAfpBKreZDXVHzzZoLzmk2fxqegurYsQQojdg6UTJGvK6peL+FWEAKFmO79SCl+inNLn/gyAGcgBoOrdf6FXfIPf2DX9V0BFKXvpjvplMnmHnFO/fKZy2v9hud0Y/iwi86djkdzh69iGG0/XgSiXl6KT/0jWxMvJPuBMzIwcjKyClty5XgghmsX48eO3OSiSnZ3N+PHjW6QexcXFAAwYMKBBeb9+/Vi9enWLXLOtkICIaDMS2oXRb2+Kz76diKuAsOMj+5ALyD78IiLav0vr4lUJaj9+ev0ymf4UTb6xfvmMLl+Cacpjp13CUNiAIe0thGjn3CpJatEXrHn8D7gjJQSMGLUfPEb1tAcINNv28hpSCXQygbfXcAon/Yb8I34FaFI1paRWfIfH2PEAxLaKOW7yjrgonTNk8o14egwh/4hfYQayyRozkcji2SjTReFpNxAmY4evYzuQyu1F94v/jl3Yn0jKwjXoAIrO+AsRM09ygQgh2jyv18ukSZO26bXHHXdciyRUBRg6dCiBQIDvvvuuQfnChQvp0aNHi1yzrZBdZkSbktAuEtoF65/rRNi1gZANoo6b7IPPw/RnkzHhJKIqg+LJNxFd9h0U9pekoy1MK6isS/DKx4tZVxFmj4FFHDK2OxkeU5YTCSHaJVMniaycixMLpXdSyy4kUboMw5+FshNg7vxyTK0h6u9C57NvIVG+ipJn/0Jg8AQ6nXET4Z++xDtgAlHc0MJzJxLawt1jD7pcMJwwPnxGksi371N47OVEFs8mOOst8o+5nLgrFxwa1Ucptc27vDhaYWUV4FSHAYe4dhPfBb8jpHeLCxAirl0ktBtLOfjNOGHHi+1IIF8IsW0uuugifvjhhy1uvTtq1CguvvjiFquD1+vlggsu4J///CfFxcWMGDGCadOm8cUXX/Dkk0+22HXbAgmIiFZhGAq/ihLRPhxH41I2LhJEtK+1q1YvTAa+fc4gbFugNVF/Z6wh+cT0rklK11EZhmJZWYhbHp9R/3RvRUkdH85axe0X743fJRPbhBDtTxQ/2QefB45NdPE3JGIhlNtH0eQbibjy2KYtUbaB40DIVURmVz+YJuGfviS67HsKT7yKmLcQZxcF9BPaIulYBAgS++krQt99QOi7D+qPV739CMWnFaB8mcStHJLaBMCnopjxIDFPISnddv/eG4bCFy+n5PmbyRo/Cf+QA7HXzWftG/+g6NTriGX1wJGgiGijtIJo0gENPreJkulUrcrr9fLggw/yyCOP8NprrzVItJqVlcWkSZO4+OKL8XhaNoXApZdeis/n47777qO0tJS+ffvywAMPtNgynbZCAiJil0sPIsoon3ovBcf/npQvH9b8SM3sd8k98jLCestPyQxDEVBhYo6LpHbhUil8ZpKQ48Nxtr0eNhCMJimvjuLzWGQF3PjcJh7TqH8yFbM3/hNxHEggwZCWlrA1/5r6Y6OpzsFwgi++X8fEPbvJDB0hRPtlb7KTGpqfd1yGoYgkHSprY0TjKYry/GR4zEZrnC3l4LfiKA0h24OLJC4SoAxCjodlpWEq97+eLK8iq24pVR8+QcGkqzAsi4jtIaUNPCqOW6UI6YxtnpGxPfxWEqdsLdUfPwuAmZlP9p5HU/Xxs2g7SemLt9P5jBtR5StxdR6BRYLQF88TmfsZhSddDfkDtjso0tTsku2ZcbLN18HBDlXixMLUfPwM3mVziK2YC2iSFSsxM7rg4GrWawqx0xRUhZM8/fZPfLeoAqVg9IBCzpo4mFy/q0X+Doht4/V6+e1vf8tFF13EjBkzqKurIzMzk/Hjx7fYMpmmnHfeeZx33nm77HptgQRExC7nJk7d12+Sql5H2fM3kzn6cGq/fAXQ2BUrMIuGbvaG1zAUvmgJ656/mdwDz8Tfby9SK75j7bv/omjyjcQCXbYpKJLUMOXjxbw3Y2V9WdfCDH5x1GA65fvJ8piy9riVxFMOayuaXk//3eJyDh/XbRfXSAghdp6fCDXvP0Zs2RwMfxau3E7E1yyk7PlbKD7zFsJWHgDVkSQ3PzaDmlB69xWl4BdHDmbf4Z3ZkE7JUg7uulXEa0upfPcxCk/8PYbpIrToayK5/Xj6Ry9fzS2tv3a/rplccfDp1H01BdOfjbvbYNxFfYl9/yHVs9+jcPKNRKz8HboZ8qsISeUm6ViNZn9GUm4ycjuTMeJAost+IP/QcwnOfo/iE35P2dT7yDvoLKo/f5no0jnkHXkxoZXziMz9FEjvFNP14gcJprZ95mj97BJvISnHWF+/KCoeJOYtatZlLLajUPn9KTjhKipeuYvYih8ByDnobFTvvdYv/xWibakKJ/njP78gZacHy1rDtwvK+XFJJXdeti85Prk1bG1er5cDDjigtavRobTduYhitxVz3GTscxq+fmNxonXUfjkF0OQd8Svsgi3n51DaJlVbho5HqXr3X9S+eR+Vbz6ATsZIVa/F0KmtXl8pxfKSugbBEIA15SE+mrWKT2avISXBkFbjMhW5mU1PCezdJRtDyRRkIUT7k1Qu/P3GYPizKJ58E7nH/g7fgD1xFfVAWx60hqQD9z03uz4YAukblv+89RNV4UR9maGT2KFKkpVr0KkEZS/9lZrPXyKy+Fvm1uU0CIYALF5Tx3tLTDLGHEvtzDcpn3IXtW/eR+3nL2JH63DCNagdyLnhVxFq33kItfp7PJaDL1FBxQs344uVYBjpWRkxK5uMYQdQMPECKt5+hPjqBVid+tL1wvtxUimiS+cAUPX2w/XBEFAUHHcFEXvbp4e7dYTwly+w7j/XYpXPxzIc/CpK8KN/U/LUdbhrlmEazdy5a8BpOO7Qdopdkb9EiO2lFTz99k/1wZBNJVIOz3+wMB2BFaKDkYCIaBVJPPj6jW1Q5uk6CFtteUmKrQ2c4iHkH/trgPonMnkTL0J3HUVKbz2yrQzFO9OXN3ns63kldM4PEIptPbAiWobPZXLWkYMalVumwWF7dsduoiMXQoi2LqldmH32ousv7yLuKyLseMk66FxyJm5cKloXTbKytK7J9389rxTLSg/bEnig81BcRb3IGjMRtENs1U/QZzzvfFfT5Pvf/2YdtWYO2fucnH79ynkAFJ78RxI5vbY7hYlpGuiqVcRW/EDlm/8gMftNyp6/mWTVOoIzXsNDDNPQWFXLKHnhNkpf+itOLIROJah4/X5StsY1YG8Cww5sdO6C436LXTx0m5fLaMcmtXwO4R8+Bu1Q/srdGGu+I/jRv4ku+hqcFOUv30nAiG3fL7ml39/QWBULqJh6HwC+vnuAMqj99DmcxV/gUi2/m48Q2yOadPhuUcVmj389r4RYUsZYouORgIjY5SyVwij5kap3HgHADOQAUPrcn/HFy1BbjU7r9U9gNimxk2zrExnFFgLg6w9IfLz12LbD8N75/P6MPSjO82MoGNonn9sv2ZtsmcophGjHUsqFK7uwfmlKRPuJsG27yxg/65gUgFJox25cvoX3/7z/xE6hdmBCg2072Hl9yTvyEgCC01/BiQTx9h5J5v5nEXU8uHWcum/fBjtF1l7H0/lX92Nm5BJfNR/CVShDre+/G9JOartmrCjDxNVzFP5BEzacgMo3/p4OhqRfQMGJVxF2mm8dvqMNzOwizEAWuYeeR9YRl1J40tUotxd3537YSpbMiDZGb3kCiKr/P0J0LBIQEbuc0g52JMiGZTLF5/wVX78x6FQCndpyYMNSNsa6H6l66/8A8PXbA1BUv/9vWPkNLmVv9r0bOI7DkRN6NXls/NBOlFSGCXjlxrs1WQqG98rlll/txT//cBBXnjqKwkw3Wh5cCCF2Y5k+F706ZzV5bOzgYlKp9B9BD3H0mh9JrF1E3ez3wbDw9RoBi6dz5KjcJt9/+PgeeNbNIfjlFDBMfH1GAelcHa7qJY0CLtsipVx4ug5g07soX/9xJFV6qUtUp2fBFBxzOZ6RR+KYXopOu4GiU69DZxRS99mzRH76otF5K998ELX2+23q0zeIG34yD/gFvgHjGh0rPPkaknn9mzWHiNaaiKuA4rNvx+i7N5GURapgAF0uuI9YRvftSvIuxK7gc5uMHlC42ePjh3XCKzv5iQ5IvvVil0vixuizF53Pvwd67UldykPWIefT6ezbiAW6bDGZqaMsrPyuGN4M8o+6lKzDL6Ng0hUojx93YU9sZW71+lpDz+JMjtmnd4Pynp0yOWCPbhwwuhuWRMhbXXo7ZvAYCgMtSW6FELs9lwFXTB5NfvbGmQyGobjguGHkZmxcUpoy3Jg5RXg69UG5vBSfei1ZE44nMHgCgwOVHDC6a4PzDu2dxxF79cKTnY9yeSk65VqyJl5OzoFnYmbkYGQVbnfWC6UUvkQFpc/eBGjMjBwAqt97DLX6O1wqPRMlov3Y3cdhYlPz1j9IVq1BF/TBKV1E5MdPNpyN/GN+TcbIQ+vPXzntn/jMBNtL200EUeztm3GyzdfSmjonUJ9ANeUYBFPbt+OdELuK0pqzJg7GbTW+/fO4TU47ZECzbf8tRHuidAfcX8m2Haqqmt7FQmyeZRnk5gaorg7XP6XaGtPUOI6qv5l1WZBcP1tXKRrc5P78583ZuO2um6S2cCkbn5EgpLdvEOIAdbEUlcEYHpdJpt+Nz2XiNpt/e77N2ZE2FVsn7dr8pE2b365u08LCzGY5j/ShO25bPnOlFDHboSoYJ5G0yc/2EnCbjWaym4YmYMQBTdj2YpHATRKNIqgD1EaS1IYSZPhd5ATcWApMAwJGlLDjwXYMPCqBSyUJ68B2B50NQ+GLrKP0+T/j6TqQvCMvIbbsO6refojcg89B9dubJOmZIn7C1Lz9IPFVPwGQf9xv8XbpT3DmG9R9+x75h/8SV+d+WIFsIgtnUvXR0xSd+ifM7CIcTCLav9U2jVSWUfvhvzcuk2nQqAaFJ15FqnBQ/e4zYvPk733zayttqpSiOpLk+Q8W8vW8EhTpmSGnHTKAbL8L3c4CIu21HxVtiwRExDbb3j86bpVClczFKupFxMjGR5Tk8m+xeu1BVG/7NnotyadimKQIk4HWECCEo8xdVr+20kHubqRdm5+0afNrrwM56UN33O7278gwwJ+oxHH5iGg/bpXCk6olbmWS0BtntHhVlOhXUwh998HG93ozyBxxEL6+owgv/gZ/n9GUvvRXCo66GHfn/mhlUPHqXZiBXLKPuHizQRHLMsjJ9hKc8xGVbz+cLlQGBcf/jshPXxCZPz1d5PLQ5Vf3b9c2vh3V7vY9bQvaXJsqlU6gqkgvk2lngZAN2ms/KtoWCZOLFmGaCqN8PhWv3UfFS3eQQR3Bj5+i6t1/Efl6Kh5j+6fBNjefihH56mXKX7wNvxMkoOuofOUOwl88j09FW7t6QgghRJuj1MbEjI4DYVc+MZVODJvQFiErv0EwBCCmffj3OrnBkhgnFqJ25huUT/s/ssdMpOKth8BJUfHmg0QWf03Fq3eRLF9FbPn3pFbPxdrCilhlmFi9RpMx+vD0bJBT/kiqeCiZB/wC/6AJKNNF0Sl/IuRIMEQIALTGaym8pmq3wRAhmotkjhQtwrY13oJeuIt6kShbztpH0tvkGt4AGSMOIYqHbd0VpqUYOkV83SJS1euoePFWMBSp6lJAkam3PZGbEEII0dpM00Cp9Ayelpr7q5TCn6oEFFFXHo6j8RJFhSpIZnQm6VibvXZUe8ne5+QGs0QAAgP2Im5mUnjKdZQ9fzNOJEjN/56pP5611/EY3UaQ2Eq3nFA+fHueSOboI3C8WdgpRQRfemvj/U4jbOZIbg8hhBCNyAwR0WLCZFB48jUNygomXUnM1wmnDUSjw2SQf/wfcOV3JVVbRqq6FCu3mPwTryFMRmtXTwghhNgqZSiCcZsPvl3DC/9bwvLyMMlm7mOVggBBMpJllD9/M+Uv3EIgUUamESH0+XOUPnMDas33uIzUZs8RIET5y3c2Kg/OmoazcjYpTx5FJ13d4Ji7uBf+PY4mpj3bVM+Y9qJdHkIf/4eADmKaBkSqqZvzPh4d275fWgghRIcgM0REi/GrKFUfPtWgrGblEqJWN8prE2QG3ORneXG15o4uWqOdTR47ORq0RhnbluC1rbIMGy+J+unBSqUT6UV1OpGeEEKI9s8wFCvKw9zy+Azs9UGQaV8sY88hxZx/zBBc27iXrk/FMHWSsMpcn0+rDkdZ9fm0Ak6Q2s+ex9ttAHa4FoDSF2/HldeF2Mq5AIS+/4icLoNINjG0DBCmaurdJMqWA6DcPtydehNfOQ+AqrcfpvPZf6H8nUcavC9Rupzkyu9xdR1JUm99yOo1U9R99iLheZ+TKFlG7mHnUTr1XnQ8gruwJ1bP8aTsdty5CyGEaHZyZyRahGUp7LXziC6YjuENUHzGn3EdejkvrOrM7x74kjuemsWfHvqSW5+cSayVBicBFaLy1TtJVZdg5XWunylS8fIdBAi1Sp2ag2XYmCXzqJhyOwFdh2Eo/HYN5c/9GXf1UkxD5gwLIcTuIJZy+MeLc+qDIRvMnFfKuqpIfa6PLUnn03qJ8pdu35hPa8qdDfJpacPErqskvmYhuQdMBsAOVdcHQzw9h5E78dLNJj61lYW3zyggHQwpnnwjOUdfUZ9TpPCYyyh/80GS5asA8A+agOHPAqDyzQcwy+ZjbsOINWZbZO59Cq7C7iSr1lD2wq3oeAT/kH0xuw+XYIgQQohGJCAiWkQqpVFdhpG990kUTb6JRE4fVrj78vH3FQ1et6o0xIsfLkJt41Os5mRj4e05AldBNwpO/hP5J12Lq6gn3p7DSLXTyVNKgTdZQ8XUe0mWr6Ly1TvxxUqoePE2UjWllL10BwEtu0MIIcTuIBRNUVnb9FKQmXNL00tGtiKdT2txOp/WC3+h4qVbSVauIVGyBGN9Pq2wDpB37BXE1yzCXdAdK7uwwTnyDjmHCIHNXiOmPXhGHkn2vqdRPPlGov7ORGw3/r1OJmv8cZgF3ckcezSQzhmScdAvKZp8E4Y/Cyu3M2ZBj23O+xgzs8k95NwGZbn7n95mdrcTQgjRtkhARLSYmPZgDZ9I1FuM7cC06SubfN1nc9YQTe76WQsx7cU7dhL5J/6RMJn1OUV8408ipr27vD7NQWtIWhlk7X0SAMmKNZQ8eQ2pYDkAuQf9ghjt83cTQgjRkMsyNjsLJD/bu01LPxvk0wqWk6ppnE/LNDR2zToyxxxB3Q+fkKotb3COshdvx5+qQm1hSkpMe7CGHkrU37k+uWlUe3GPPpaIlY/qMZZO59yBZ+SRRG0XUXcBRaffRMHJ1xIxsrbpdzEMhTeylvJX72lUv4AObv0EQgghOhwJiIgWldCudAJVBQZND5S2ZUpvS4lpb4MEqmEy2m0wZIO49uAZcTgZIw5uUJ611/GY/fchoV2tVDMhhBDNKcNrMX5op0blpqEYM7gY297Ghw1N5NPSWuOo9TvLOEFCc95HJ6JEFs4EwNNtENkTjgfSy2cqX72LgLHlLevTY4KGZXEnPU5IaIuor0t9AlXH0USsfMJq24IhAC4dJzL/y/plMl0v+b/65TN2xUrMVpiNKoQQom1rn+sCRPvjaI7apxffL6lodOjAPbrjcxnoNrDzzO5AKTBTEWLLf2hQHl38Nf7hhxBXma1UMyGEEM1Jac25Rw0GYMbcErSGvCwvvz51JFlea5uygwdUiMopG/NpoQxSlWuoeOkOkgdfQdjKpmeuHyu/G96eQ/GsnAeGSfaYIzAy8jCzi6j+6Cnyj/kNEe0Ddrwv//kOdNub3Dyu3XhHHUVBYQ+MrkMJ2j7yT7gau2IlduHARrlWdnc+I0FMe9DrG9JFApSxTQlqhRCio5C/iGKX0FrTp3MWE/fqyTtfragv79s1m5MO6rtLgyFKqfrBQfrn9r2jzM/57Zp0zpD1y2RcBd1IVqwmWbGGylfvrF8iJIQQov1zG4pfHTuU0w8bSDJlk+Fz4bWMbd7efkM+LZTCd/TvWVMeJmfmo1DUj3mrQjz+3lzuunw/Og89hBSQe+TlaAVgEFNerF6d6HL+KEI6UH/Nn/ezzWlr545pL1b3ccTXJ1ANk4lZNKzFgyGWtWHStUYpg1TKbjC22NVjjQBhaj98guz9zyRi5eEigbN4OoYvE1e3ESSdrd8CKKVIaQjHUyjA6za367slhBDtQbsIiNTU1HDvvffy8ccfEwqFGDhwIL///e8ZO3Zsa1dNbAdLwckH9uWI8T2pDsUJeC1yMzxYCgzDIGk7WKaB/vl82p1gGIpYyiEYSWIaijy/IpCoJubOx8bA79SCbROx8lts8LbLKQNluQHIPeRcvIP2ITz7XYJfvoxy+daPylq5jkIIIZqN0ppMjwkeE2g802JLYtqLd9wk/GOP5vePz6O8OsINp13IiooYj72bfoDx+udL+eWRg3AcTRxQgM9M4nViEK0l7s3FpaOYlonjaMxoFUlvfrMv0XSrBK5YFUlvHgmd7ufcOkps7TosbwEpTCxT8/OVQi0ZDEk6UF4b5eufykimbIb0zsfnsTAN6JQXwG2kgxMkIkQ9hY2WDLWEgIpQ9fp9JNYtJrFuCcWn/5no0jlUf/gEAAUnXIVZPBTbabyEaMO4acW6IKFokmlfLOWzOWvT78vxcsrBAxjVvwCXrD4SQuwmlG4Hd4G//OUvKS8v56abbiI/P5+nn36aKVOm8Oqrr9KnT5/tPp9tO1RV7Z47bfhUDJMUYTLQGjIIYStzp7OrK6WIJG3KqyPYGnIyPURiSXIDLnI8un5gkq5DFEPbhMlAKQgQwsYiqr0YBmSoKFHHRVJbuI0UNTHNm1+uxDQNxgwqIp6w8XktinK8WIZmXWWcRMqmOM9PptcigxAJ7SKu3WSoMKapCDl+NJBhrD+3Y6EMRVltjLuf/Zby6vS65t6ds7hy8ghi0QQ1EZvCLIus8EoyCjsRNnJ3qo12hGUZ5OYGqK4Ok0o13ygpoIMk1y2EriNIaDceFcdZMRt3z2GEdcbWT9DOtVS7dmTSps1vV7dpYWHzzAzbnfvQ7eFWKbxGgpD24zjgV1HU+r5vczb9zG1bE07alNdEsW1Nca6PDK+FaRjYtrNNQXqlFBkqREJbxLUHt2njV3FieHCTIGkrLGXjGBaGk2JxjUVdOMGQTgaWgrAKEI7blFZFsCyTipoor/xvMesqG36+fbtmc+3ZYzHQ6X7drqHmf0+Rs8+JlPz3ZgpPvIrY0tn4+owiWVdJ1Tv/IvfQ8zD67t04KKIgnHAoq45gKEVhro+Ay9zq7+tWCewFn1Lz8TPkHvwLjP77YihNfPY0gjNeJ//oyzC6j0CvnYfVqS+R7cg98nM2UBdNUl4dJcPvJj/Lg8dUjc4XszV/+++3LFtb26A8N9PDhScM56OvV3HhsQNJTbuTZOVqiiff1CCp7PZShiKSsCmviZGyHYpyfWR4Gi+NcqsUesXXVL3zSKNzmFkFFJ56PREzp9Hvk9Iwd3kVz767gPKaKF63yYFjujOwRy7/N+U7kuv/To3sX8ClJ4zAJZkIt5n0oS2jvfajom1p8wGRFStWcPjhh/Pss88yZswYIL384vDDD+eYY47ht7/97Xafc3cdzPlUjMj0F4mt+omCU64FDZVT7sTddQCBvU/b4aCIUorF6+r469OzSK1/7OKyDC4+cQTTvljKUeM6MX5wEUntxqeihD5/jmTpEvJP/CNoh4qX7sDbaxj+CaegQpWUPX8LeYefj9VrNGU1Ua55dDYThncmO8PD1E8W13fQORkeLjlpBA++NIe6SBJDwaUnDmdw6TQChV3IGLof8aWzqfzgSYpPuRY8fkr/eyN5R1yE7jqC2qTBHx74nGg81eD36VIQ4JBxPXj67Z8AOGxMZ844tC9audnVWvIPuWXApqe0LEilNv/63YkMPJqftGnza68Dud21D90ebpVCr5xF9YdPUjz5JgjkUfvRk6Sq15F//FWbDYrUf+Y1YVaWh7n13zOJJdLJTE1DcdkpI6kLxSnI9dOnSxaeTZKAeoijcIiR7sv9KorhxCl77s8ERhyCf/REdNliyl65l8Ljr0DbSRIly3GSMazsImq/fAXn8D9QFrPoPP9FzMKe/JSzPw9O+aF+Ronfa3HpySP5z7R59Q8SAE48sC+T9umNbTtkqBBlz96EXVeJu6gnBRN/Re037xCe+zmYFkWTrqDy/X9j11XR+by7CLuL64MdWsH8VbXc++y39bM2PG6TG87bk675/s0unzUMhS+8mpKnr6svy9n/dJxYHcGZb9aXdf3lXax95kasjDzyT72esOPf7s82peGVT5Y0WN7bOT/A9eftic9SDV5393OzWbiyusnzZGe4OWviYLxOmN6z7sMOVWMGcij+xZ3U2dufvF0pKKmJc8u/Z9SPawxD8ZtTRzG8V26jtPVulcJZOp3q9x+vLzMD2RSefnOTwRCt4INZq3nu/YWNrt27SxYH7tGNJ96cV1924fHD2Gdop21P3NvBSR/aMtprPyraljYf283NzeXRRx9l+PDh9WVKKZRSBIOyhdqmDJ0iXrKEVPU6Kl64lYoXbyVZtZZEyRIMbW/9BJsRTtjc9czGYAhAMuXw6Ks/cPQ+fXhw6kI2jJsMbZMsXUKyYg0VL91K+Qu3kqopIbF2MaadJFW9Dp2MUTntn4RmTePNL1eSSNqM6l/Iqx8vbtBB14TiPPvufCZO6AWAo+HBKT8Q63MgtZ88S+WbD1Dxzr/QqQTxtQsJfjUVnYwTXzMfE5vVZaFGwRCAtRVh8rI2Dkbe/2Ydi0qirbrbTUv4eb/QUYIhQgjR0gydJL7qJ3QiRunzN1M19W9EF0zHDpZDMrbV/iQct7njP7PqgyGQXtbx4ItzyM3y8bdnvuG2J78mtj4PhkfFSc77kOiMl/GpGAEVpuatf5AqWYK7uA/BL6cQnfMusVXz0XaSslfuITjrHWq/moqVWUBs1U84sRDGe3+j8+x/Ya/8jmiXsfzjpe8bLK+JxFI8/tqPHLvvxtm3WQE3h4zpWn/jm8JFYNBeACTKVrD2qevTwRDAXdQTnYhih4PkHHQ2CXdOg5kf4bjNPZsEQwDiCZs7/vM10eTmb2YcR5PyF5K972n1ZTWfPtcgGJK7/2nUTJ+KTsTJ3u80Eut3q9keSsHKslCDYAjAusowT739E3qTD7YmnNhsMASgNpQgnrD5ZnkUd+f+KJeHghP/QHgHd7KLpTR3PPV1g3GN42j+/sJs6uJNjfE0OpVsWKL1+tkkjb+g4bjNCx8uavLay9YG8botAt6NK+1f/mgx0eSOjy2FEKKtaPM5RLKysjjggAMalL377rusWLGCP/3pTzt83o3Jr3YfcbIoOOEPlL90O6mq9HpPK68zBSdeQ8zM2uEPu7w8XD9NssH1NukI568KMmFIMXGdRcFJf6T8xVtJVZcC4MrvRv4JfyBmZmL2GEXekRdT9fbDxGyDeavC9O6SzbzlVU1ee0VJHcft37dB2cJaNyOyComtTD+pyN5rEsnKtUTmTycw4mACe51E0vARjoU2+zulfvZE4+3pKxk8edQu3+nGNI0G/180D2nX5idt2vzac5vujn3o9kgRIHPf09F2ishPX5BYtxhluSk6/SaSgWLMzfQlGz7r6ro44Wiy0XFHpx8GBLwWq8tCzJpfysGju+JJpaic8To6GcNJxLCDFcTXLKCqpoxOp9/AmiXfUvvFy2SOPozsCcdTO30q8dXzATDyu7HGO5iCRBJnxRyIhbDyu/JTbdMBg+q6OEW5Pvp3z2Fk7yz2623gmzsV/5jjSCgvKXz4xh6Hdmzqvnmn/n2uwh5kj5lI+VuPkLPvKbgH7U9SeRqMPVavrm0yv0k4lqK6Lkb3gsBm29zGi2f4IWQ7SWq/fKXBsZx9TyFRvorwT1+SOWYiZo+R2Lax3eMewzR4d8aKJo/NnFfCL44cTKbXRCnFkjW1Tb5uUz8urWREn2z06ijFk28kkdUdQ4OxA/98SoNRguFEo3KtYemaWsYNLKh/qGTpBKlFX1Lzv6fW/2IWOCmcSJDyF26haPKNxD35DR5CVVaEt5h75rvF5QzomcvsBemE7VXBGNG4jT9z18+ubY/a89/7tkzaVTSHNh8Q+blvv/2Wa6+9lsMPP5wDDzxwh85hGIrc3M13uu1ZsroOnE0i9raNZTb+fctrIqwpCxFP2HQvzqRL4ebXPBtlW58abZoGOTnpqanJqiB6k4CD1k59HZx4hDonPQg0QqV0L+hFWTCBsR2zMwyl0JtkBdV2CuVa3yHbSTxuk0BGgH7dmp4S4XGbGD+7oGEoAgEPLsvc9oo0o6ysncvxIpom7dr8pE2bX3tr0925D90eqbo42A2DGgaarCwfaitTRIwt3BFvmvf609lrOXx8L9xZRXQ+8ybW/fdmIj99AYCZmUfnM24kGdy4nb0yXY1mBeDYuC0D7E36RO1scRZLtgpxRd+FGBXLSC5cSeaZf8aTm0dg/ZtS4STh1M9uzh0bjHSwADuJz+ciw9fwe2Ks2nwQwTTNrX6v7IhNzG7ct+tkHOVKB3hC331E5tB9yek6AGVsX5+esp3NfnYKcLmM+jqa2zBwUQpGdvcS+/InFA7ZWd7trtMGJbXxzR4zTUVOzsa2SwWjlC34Kn0sq4AuZ/6Z6PIfqHj7EexQDU5tKdl9u6DMjbcBWxvrKRonZN+wXEFsu/b29769kHYVO6NdBUQ++OADrrrqKvbYYw/uvvvuHT6P42iCwUgz1qxt8NpBKl66nVRNKVZeZ5QySFauYd1zt1J46nXEzCwAIgmH25/6mpUldUB6zfCdl+5Djr/pbPAFWR7clkHiZ7NEvO50EjSlYEDXDKqrw/jsIGUv3IodLMeV3w2tbVJVayl58TYKT/4T8RU/Uvnu44DCcpKcMC6PPz2zkEn79+WtL5c3unafrtmsKd8400Mp6JeVfjrm67sH0aVzCH49jZx9TyEwbH/CP34KhknGPpPJ9Po49dD+vPjBogbvP3viYN6Z3vBaR03oQTgU2+Xb75qmQVaWj2AwKutwm5G0a/OTNm1+u7pNm+vGZXftQ7eH24kQ/Pg/RBfOxPAGcBX2JL5qHuv+exOdzvwLcX9xk/3Jhs88N8NNVsDd6Im/YSiyAh4isfRNf3aGm3g8SSKWwOvLwczIIVVdAoCrqDdOKknp87cBkHvgmdjhGoJfTwPDwtdzKNFl36GDZRQsfY/Y6h8x/FkY2Z1IrVtI/6xYk1vBFuR4yahbQer79OyPwpOuJh7oQrQm/Zm7dZTI9JcIfffR+kqnZx8kK9dQ+9VrFBx9CRXTHkIrA8/wQ0mqjUtEuhUEMA3VaNeXTL+LnICL6urN35S7dIzY7LcIzni90bHaGa+Te+AZ5B91CZVvPUTpq/fS6ezbibD9OUQm7tWTmXNLGpXvNbwzblPV17FPl+ytnmvvYcWo2a+Ak6Lk2Vsomnw9qZze7Mhk1Gy/i5xMDzV1DQMjhkonjG/Ydj5yj/41wU+fJWufUwgbWZi99yR/IhjeDOyigdQE48DGc+VlerBMRcpuunIj+xc0yCFSkOPFbRlb/MzERtKHtoz22o+KtqXdBESeeeYZbrvtNiZOnMhf//pX3O6dm6K3OyY0SikLb6+RYJrkn3A1AJVT78bTbRApLFKp9BOhFaV19cEQSK8ZfuPzZZx1+ADsJtrF7zb407l7csdTXxNfv97Z57G46IThTP1kCVeeNJhcryKRctbXYRiJtV7yjr8K0FS+cife3qNJ4sJV1BPD4ydv4kUY3YbhLVnMzWcO5NvVQU47dAAvfbSofspmQY6X0w4dwD9emA2AZSp+c8oIfItfJeOQ8/APHE985Q9Uvvc43l4j8Lq8RBbNwtd3TDqrvdYcNqY7YwYWM3thGV6XwfC+ebw3czWLVtXU/37H7t2dXkV+kltYv9zSbNvZLb+TrU3atflJmza/9tim7a2+zU0ZFv5+44gv/56iyTehfTmEPvsvyao1aPfW+xO/2+BP54zjL0/MrF8647IMLjhuGG9PX1b/uuMP6IudtAmoMFVvPUiqugTDG0CnksSWfEMwI5vcg87CsVN4hh4EFcuom/MhRSdciR0J4uk2iETVOvz9x5EoXYZ92FWsqjPo4Z2KZ903/G7yQfz9xe/ql5FmBdxcc8pA1Hu31deh+v0nKDj1eiJmNlqDVyWJLv8BAHfnvuQfei6h7/9H3Xcfkaxah7LcGL4AtZ+/SOf+Y4ltklTV7za45uyx3P3fb+ofsgS8Fn86Z0+8ltrs98owFEa4nOBXU+vLcg89DydaR+0XL6fr+fFzdP3VvWTvewq+/nsScnw4O7CdS7eCAMcf0JepnyypL+vRKZOzjhiEk3LYcMbsgIshvfOYt6zpJb95WV4GdPah51UCoO0kFVPvo/gXd1Bnb//TbI+puPaccdz67xnURdLfGcs0uPL00QQ8ZqO2C+HHf8A5hB0XOumQxMTVYywpZZBKKqDh6wNukzMOH8RT6xPOb6p/9xzqIskG+UtOPWQAHnPzn5loWnv8e98eSLuKndHmd5kBePbZZ7n55ps5++yzue6667Y6FXVrducM+V4Vw9Sp+gz3AZXe8ja2PomXYShmLazgwZe/a/C+0QMKueKUkZuNrioDYkmHimB6FkWG300sbpPjN8j2QNzZOLuk6Tq4iGkPSkGmESXquElqE5dK4TWT1Np+bMchmnCoqInidpkU5niwFJTWxEnZmvxsLxlukwwVIq7dJLSLDBXBNKHO9oNKb7sbcdyknIZTUjesLXQ7YaKORVnIIRJLUZDpIstn4OjWiQ1K1vGWIe3a/KRNm197zY6/O/eh28NlpPCqJGHtx3F0gy3nN2fTz9xxHCIJTWVdDNtOz7Z89t35LFhZQ8Brcd4xQxnVLx+D9Pb1la/+FScWpvC0G9HxCGXP34K313DyDjqLuPIR125cpiagokSUD6+OkbQNTFLpbXd1imW1LiLxJP3zwVIQVQFCCYfK2hiWZVDgiWO/dit2LETRSVdT/cl/SaxdjL//ODIOvZCo7Upvu+sECX7+PNnjjmbtMzdRdPLVxFfOw9drGMlgJZVvPUTekRejeowl8bP+VSlFOGFTGYxhGIr8LC9+l7HF/BUAbpXEWfoV1e8/Tt4Rv4Jee2KgSc77kNrPXqTguN/idB6OwiGl3Fs935Y4QCiWoqoujt9jpWdPNDH0jDuav78wh/krGiZXLcz1ccM5e5Ad8OJ1wlS/9QDJ8pUUTb6RqLfTDtdNKYimNFXBGClbU5Dtxe82G0/z2UEpDUvWBnnmnfmsKQ8R8Lk4dFwPuhVl8Mir39fPHtlzSDHnHzsU126WjL4lSR/aMtprPyraljYfEFm2bBnHHnssBx54IDfddFODY16vl8zM7f9idvTBXF3c5vf/+KxBYtEbfrknfYoz2dzXIUCIxIrvyBy6D4lQHYlV86DHaBJ6x2bq+FQEQzuEyUgPrgiR2iRw01FIB9kypF2bn7Rp82uvA7mO3ofujC195spQhOI2sUQKv8dFwGPgbLJ8IUAdyrEJmzkoBf5kJY7lJ6Kbb+28V8VJzP0IX59RRP1d8OkQoa9eIWP8CQ0CPUqBz0yBTmEmwsStTNDpXBaOBncySNzKbhQM2VlulcSTChKzskjq9IMYn5nAlQqRcOUQS+36xIopDVWhON8tqiBlOwzvnUeXXAuX24u9/vMLqAikokRdBTsVqNkVDEOR0pB0NKFIkjc+W8Knc9KJ+rsUBDjt0AEM6pkrwZDtJH1oy2iv/ahoW9p8QOThhx/mvvvua/LYCSecwJ133rnd5+zwgzkFlaEkL3ywgLpIkhMP6EufLllsLs2XZYK5+lsq3vgHGaMOJb5yHna4hk7n/Y06Z/vX0vlVlOBH/8YOVpJ3/O/BTlL+wl/wD94H7+ijOlRQRDrIliHt2vykTZtfex3Idfg+dCdsy2euVPr/pGyN2zI2P3OzifwfzcGtEutnWKR/9popYvbmAxtN1aOl6tbUudvK36YNM1Ft29nlbdLcNrRpTU2YaNJJbw+tweMy8Fhbn80jGmsr39PdTXvtR0Xb0uZziFx88cVcfPHFrV2N3YuG/ICLy04YjgOYsNnOTa0flJldh5O11/GEvv8IJxKk07l/Xf+0aPs7RUOnSJatIFVbRuXLt+PEI9ihahJrFuAfdcRO/WpCCCFEe+UA66qivPLxYqpqY4wf1okDRnXD71KNbqZb6uY6od0NuvYtBUM2V4/N1c0yHPxGnLDjxXYUXhXHIkmYjG3+fdpqUMFusLte4+Nttd5bonX6RiHDvfGRmQRDhBC7G9m0uQPTjkY5erOdm0cl8MfW4VYJLDuKp6gnhUddgquwO5GFM3Hp2A5dN6wyKTj1OszMPJKVa7BD1bg79SX3mN8QQbI3CyGE2D0pld4qfgPT0PV50QxDMW9FNTc8Mp3ZC8pZUVLHix8s4s+PfUU01f5vQi3lYJUvYO0jv8FdvRS/lST27RuUPXsTfrtmi9sACyGEEC1FAiKiSW4SpBZ8Ssl//oiz5EtM5RD89l3Kpt5H/sG/ILrkW9wqueMX0Bo2yf6u7VSjxyc/T567s8l0hRBCiNailMITryS2dhEmNpbh4KpYSIauxTAU0aTD42/MbfS+8pooc5dWYRjtuw80dJJEyVK0naTspTuoef0e6r5+EycSREeDrV09IYQQHZQERESTHMPCldcZlEH1B0+y7qnria+ej+H1Y2TmUXji1YTZsXV0AV1H+Qu3YIdrcBX1wsoqJFm+gqrX7iVAel26WyXXz05JB138KoI/XoIh31ghhBDtUIYKY1euJrb8R1x1azBL5xFfNofowq/IsKuIJmxqQ4km3ztnUXl9jor2KoEH17BDyRo/CZwU8dXzASg67Xrimd3b5ZISIYQQ7V/77l1Fi0k5BqmiweQfeQkATiwEQOezbiHmKaTO9m3XOtJNZ3fYyoW31wg8XQeSf8IfKDjteqycYrx99yClLFwksBd9Rsl//oi98FMyXXFq332E0qevx1u3UoIiQggh2h8nSfWnz1P96fOEfvwE01CgFNUfP0vpy38l4HLweZrO19GvW3ar5G4wTYOEo4mmHGx2fqamArTdcHbppkuIhBBCiF2tzSdVFa3HrWPUzP2kQVlkyWzMfnuTxLXN5/GrKCpWS8xXjKMVhhMne/xxOKaHsA6gDCg87UaSWMS1B0s5uHI7gTKo+d/TBKe/ihMLYQayUZ4AWit2JJmrEEII0VrSu8ekI/p1s98nuvQ7VCAHc8wJuAxNrjvBKQf356m3f2rwPp/HYuzg4s3uNtNSUhpmLyrnv+8soCoYo3fnLC6YNIzOud4d6oI9xIl/9xZ1s95CmS48PYYSWzaHspfuoHjy9cSyem26klYIIYTYJeRZu2iSz0hQ9+kzxFf8iJmRQ86BZ4IyqHr/CShbhGlu21MiHxHqPnmKkqevw1W1mIATpOLFWyl94VZY/5RIawjpAHHtASClDVKFg8g/+nKs3E64Crph+LMoOv3PRFwFtPGdooUQQohGYiqTwmMvx1XQHcObgb3fr/g49yTu+qELDy3vy4JKg31GdObSk0aQn+3FMBRjBhVz+yV7k+nZtcM10zT4cVkVD7z4HVXBdAL1ZeuC3PDodKrDO5Y/LGW48fYcjnJ5KTrterKPvJysvU/GyspHBXJlyYwQQohWITNERJPieMiacBLJitXkH3cFSU8uhXldCH33IWZhb2L2to1cHGXiKuwB86dT/tIdKJcHnYji7twPjM3PMnGToMzdie/7XcDqygTDx/lwhZJkZCdIbMfsFCGEEKK1WSZ4VZzQ/K/w9hpOuPMe/OW1csprogCsLKlj9oJyrjx9NBOGFDOibz4acJsGSutdPnMimrR55p35jcodRzPty+X84oiBONs5Y8V2FIncvnT51X3pbXdTCs/wwwgMP4gwAQmICCGEaBUSEBFNchxN1F1A/sl/IuL40CmNp9MQCrsNpC7lZltHZ3HtwTvsUDLqKgnN+QCdiGJm5JI/6XeEHH+T7/EaSdZUhLn+6cVE4+m1xe/Mgp6dAvzpNC/eDDf2NgZkhBBCiNYUIERyxTycHsMwfJl4uw/im9IA5TUrG7328dfnMuDSffBsmIXZSlEC29H1M0N+bnVZCPSORWhsRxF0fPU/x7WHOJ4dOpcQQgjRHGTJjNgsx9GEbW/9EhUbEyszd7vOoRSYqQixZd/Vl9mRIKmqNZhG0wO9qHbz7w9W1QdDNlhREmbOqqYHaEIIIURbEzCiVL1xP5Vv/R/ReZ/iyimibs5HzFlc1eTrg+EE0YS9i2vZmNsy6NMlq1G5oWCPPhn4raZ3wxFCCCHaGwmIdCBulSDTCNdv3edXEQKEdzhrfIAQPpWe7msYkGWGyTLDGIaqP3+mEaLi5TtJ1Zbj7tyPzHFHg2NT/vKd+O1amrp0LGkzd2nTg8VPZq+lPUwOMQxFphHGo9KDRstwyLKimw0CCSGE2P3EtIfsfU9NJwn/9HnKXrmbZNVa+nXazAxJt4nHle6jlVLEbc2aqigL1wapjaWI2pplZSFWVobxE8Kr4gCYSpNlRbGM5llbYynFBZOG1ffnBTleLjlxBJefOopePYpZW2dKavMWYhiKTDOCW6VztbiMFFlWVHbYE0KIFiJLZjoIt0pgL/yMkumvUjz5OgxvJpXvPIpOxik46mJiRgYJve25OQLUUfnqXbgKupN14DmoWJDwopkEv55G0eQbwZ9D7XuPo7wB8o+4gJrPXyL3qF+TMlwY3gx0Mk7S8DU5G9hQCp/HajRDBCAn04upFHYbHooppfAlKih5/mYyxxyFf/ihOCULWPv63yk8+Y8kcnpjOzu3daEQQoi2z9YGZuEAsvc9hdrPXgDAidYxfmQPXvx0FYU5Xn51eHf++vJiQtEkV08eSr4rRhQ/wViKmx+f0WDpytH79MY0FPv3tah4/n68/fckY/wJ6KpVrH3pDgqOvxIKB5JyzJ2qt9aaTjle7vn1PnwwYzmjh3ThHy/MIRhOB/mVgnOOGsI+wzuxc1cSmzIMhS9WQslzN5O932n4B+xDauX3rH33EYpOu55YRnfZiUcIIZqZBER2Q14zSdxxoXW6c3XrOEqniKyejxMLUfr8bZiZeSTLV2IGsklVrcUJ1eDqtSfJbQiKKAUko6SClSTLV5GqKSMwcE8Spctw4hHKnr8FK6eYROkyDF8mOfucRM4xVxB2vOCAZ/DBgCamm1437HebTNq/D8+/v7DRsWP36b3Ltx7cXgoHJ1yNEw1R+9nzxJZ/T3z1fNAOyYrVGNndsSUxrBBCtGmGoYjbDikbXKbCbSocZ9uC8X4VRmmIGgFc4RKqZrxef8wO15C1ajp3X743rtqVpD7+B7eecTkJK5NO1bMJfvQjmQf/kjte/qlRHo9pXyzjd6fvgY9K7HAt4W/eIlW6lPjaxeCkSJQsxcrvC80QpgjoMPEP/84xI4/jL6/PrQ+GQDq1yZPT5jG0dx75Ge6dvpZIU9rGDlbixKNUf/AE3oUzia2cC0CqqgQj0BlHhu5CCNGsZALebiZAmMjHT+J3ajFNA1+slOiMl1BKkX3wL/H1HoUTC5EsX4nh8ZN/xAVUvPsYVlYhzjYOoLSGqKeY4sk3oSw3iXWLqf74WTKGH4h/wDiceIRE6TKU20vR5JsIGzlEHG/9++N4iOPd7Plt2+GgPbpxzD69sdYnlsv0u7hy8mgKs9t+8jVHpzPpF550DQDxVfNAO+QceBZG3722KegkhBCi9dga5q6s4fpHv+Kyu//HLU/MZHlZeJvmJgZUhJp3HqL67QfJVGEq33wAnYgSGLw3hSf8HpRB9fuPUewOo7+dSrJqHdYH91Kw/D2qP3iC6KJZEKqgJhRv8vxzFpXz6lwb48g/AKQD7k6KzPGTcA07jESzJSl10LEwdSrA2opwk6/4dkFZ/TJcsfNsbZAqHETBpCsA6oMheUdcCN1Hk9ISDBFCiOYmf1l3Ix7TJvTVVMI/fUF87SLyJl5I2Wv34cTCuAt74Om/J46TrH+91ho05E28iFReP2y9PYMajXZS6PpM8woU6GRyk5docHYsOZxLwUkH9OGI8T2IJWwCPhd+t4HTHhKIAAqNtpMNypxkXP7BCSFEG2cYisVrgvztmW/qy1aXhbj58a+445J9KMracsBBOUlSVWux66oof/NB8g48k8jS2Xi6D8Iq7kenU68lGQ4SJUDOERdR/eY/iK9ZQN3XbwKKguN/R9DTibLqRU2fXylMI32dTelkHNWMy0nDZJJ/0jXEI25gWdN1MWT5Z3NTykGnGiatbe7PVgghxEYS1t+NxG2TjHGTcHfqS6q2jLIXbsWJhfENGI+3zyiq3/on8RVzMQPZeDr3RSeiVLz9CKbbg5tt371FKfDFSil7/hawU3h7DCPv0HOo++Y9osvmYPgy8XQbjE7GKXv+ZnyJiiaTp26NdjQBt0l+hhuvqdp0MGRDUlm3SmAaYFUshkSEwuN+g2/AnqAMgl+8RGrBJ7hUcusnFEII0SoStubpd+Y3KtcaXv7fovRWK1sQNnIoPO0GDF8m8VU/Uf72w1i5nTA7DyZmBPD2Go7qPoqktkgqD95eI+rfqywXrsIeWC4XQ3rlNXn+0QMKmDRYk3rnXgB8fUajTBehb98hPvstPNvRn29NWGUR8HvpUZzZ5PE9Bha1+WWs7YmlHIx1c6mc9k8AfP3HAorqj/6DXj4Tl2qcW00IIcTOkYDIbiZmZpJ7yDkNynIPPJO48uEfOB4zkE3+EReQOfIQfP3G4C7sQap6HeHpU/Aa23ajrjXgCeDK70bGyEPIPvo3eHoOx9t7BIYvk+LTbyLn2CvwD94bV1FPcDWdPHV3YRjgDa9h7WO/w174GRZJ3HlF1M1+n9qvXifvoLMpPPValNuLp+sgyR8ihBBtmO1oyqoiTR5bWx4muZUAgFKA48D6GZROJEh4wQw2hFEMy4WtXLhUEmfxF9R+8RKgMDNy0KkEZc/fQoZdw6Unj6A4b+NuNIaCkw7qxw9LKqnTfsysAjInnEjWkZdRdNr1KLcXb+8RpIzmzenhMuB3p48mL2vjUlfTUFx84nBy/NKfNSdHmVj5XTH8WeQdeQmZh19CwQm/R3n8uIv7YCuZZyqEEM1Nab0736o2zbYdqqqaXg/bnqWzk5dS9vzNOLGNv5+VXUTBqdeRMAP4iVH1v6cJjDgEK78byo5T/tr95B97BRErjy19HSzLIDc3QHV1mFTKIUAIR1lEtRfDUGSo9DVDOoDjaHwqitIOEQIt/ru3poAZo/Ll20iWrwIga8IJxFfNJ776JwBy9j8d17DDcBMnZPvYNCffz9tUNA9p1+Ynbdr8dnWbFhY2/ZR/e+2ufegGWin+8fJ3fLeootGxiXv1ZPIh/bY4YzFD11D63xvx9x2Np9sgaj57ETtcS+Exl2F1HYQvvxPV1WHMVJTEj+8T/HIKBcf/DlfnflS9fj/JqrUUnX4TUXcB8RRU1cWIJW3ys7y4LIPymhiGoeiXk8JRbmLajWFAhhEl7HiwneZ/1qWUImY7VAXjJFI2BVleAh6LtvC0Y3f722QYioAKE3fcJLSFpRz8RpyQ9u2yHWZ2tzZtC6RNW0Z77UdF2yKh5t2IpRNEF8+qXyaTd+i5lL9yN4mSJaRKl6K7jKLWySDzwHOJ4yHmGBhmgPyTriXi+LYYDGlKmAw2LGl1HE2QDU+y0oVR7WvG367tijhe8o+/ioqXbidVU0pw+qv1xzJGHIx78AFEUwYxOkZ7CCFEe6a05uwjBzNv2RckNxlg+70WR+3de6vLNx3DTfb4SehUnOjSORSf+WcSqxdQ98OnBJIJ3BnZQDrBuGf4YXQZvDdRK4e4bZB7zG9QqTgRVz6Oo3EZUJzdMAl5t7x0XxKBTfpgCDot18dorfEYis453k0LW+x6HZnjaOrYODMopQ2CtowfhBCipUhAZDeS0C68Qw+hILcTZpfBBFM+8o67Ert8OU7RIFJOesJuZJNAheNownhBknXtMK0hYmRTdPIfWfvYlfXlZmYeWftNpi4pWxIKIUR7kp/h4m+/3pd3pq9g6dogQ/vkcfCY7mR6zK1uvRvRfrIHjmftk9fgxMI4tg2pOLHlP5AoW4a/32hYf8Mb1x4Slqc+thDWATADsI3b+wohhBBi50hAZDcT0x7MbmOIr3+CFSYDs9Nw7PU/G0Z6S8C44yKhXbhUCp+ZJOTsuqmYuyM/YSrffbRBmV1XRWTeZ7gH7EdCS1BECCHaC+1Alsdi8iH9sbXGUgrbdrYaDNmgjkyKJt9E2fM3E1s8C1/vkXQ553a0248ruxBfZQlK2YRUFo4DAUJoZTZ4YCGEEEKIlidJVXdD9s+m8274WSnwRUtY9/jvcZZ+hd9KoVbNZu2/rsAbWo0h34Yd4ldRqt/+J/FV6Zwhvn5jsbKLAKj539Po5V/jMiTaJIQQ7Y1jOyhHb/dOKo6jwZuFlVWIr/cI/P3GsO6/f0aHq0kGKwh+8RKlz99KIFVFQIWpnPo3gv97Er+KttBvIoQQQoimyAyRDsTAwQ5WoBMxqt9/HO+C6cRWzgMgVVuG4e+EI1+J7ZZQHrLGHkP5qvlkDD8Q/96nYdgxKl68DW0ncXcbQkSbyLIkIYToGPwqQs17j5IoW07mnkeTqFiFTiUoeeE2PJ36EF+zEOXykKpaS+3MN0iWrUAnExjabu2qCyGEEB2K3P12ILY2MIoHk3/sb6h84+/1wZC8Iy9GdxlBSsvXYUekHAOKBtH5nDuwPdlEHQ/K8FBw6nXgOFvdvUcIIcTuRWkHJxbG8GcRGHYwhqHQyQShHz8hvmYhKIPC435N9cfPkaxcg5lVSMEp1xJWGRI7F7s1B0VdLEk8aZPld+FzmWjJmSOEaEVyB9zRaI1OxRsWJeMYMgLbKSnHIOzpVB/40BrCKhtlIcEQIYToYMJkkHfsFfU7xniI8vN1qdpOoSxX+gcnld4qxmyFygqxi8QdzaOv/cDsBeUAZPhcXH7ySAZ0y5Zdi4QQrUayRnQglmGj1n5P1dsPA+DrPxZQVH/wBHrFN7iUTNXdGU0FPqR/F0KIjimsA4TMPNxOlMiMVwh9/z+Uy4O390jQDhVv/JOcfU/G23skdqiaihdvI0CotastRMswFP9566f6YAhAKJrkr8/MojqSaMWKCSE6OgmIdCAOFq6C7hi+DPKPvozMwy6hYNKVGB4/7uJepOTRlBBCCNGsUsqNr+8eKLeP4sk3UHTs5WSOmYiVU4SV142cwy/C3aU/nh5DsHeiH046UFIbY/7qWirDCWwJyIs2JBRNMWNuSaNyrWH6DyVYltySCCFahyyZ6UAcRxP1FNHp3LuIOW6iKRNX56F0Pv8e6myfzGYQQgghmllKG5A/gC4X3EtUBfBnBsgYdxxZY4+kjmy0hrxjfoujTKI7uO1u3NHc9cy3LFtbW1+217BOnHf0EFyquX4TIXZcynY2O86sCcVRSr6oQojWIeHYDsZxNHW2n+T6BKpJxySYkmCIEEII0VJS2mjQ18aMDII6u/7nMBk7HAwxTMVrny5tEAwB+OrHEuYuq8Iw5EZTtL6A10XngkCTx/YZ3plUSpZtCyFahwREhBBCCCHaqWjS4fPv1mI2Efh4e/pyUs6ur5Nrk/nHhqEwDXnq0tF5LMVvTh2F+2dLY/Ye3pkuBQF5MCeEaDWyZEYIIYQQrUIpsCwT23ZwmnHrzZSGqlCcqtoY+Tk+cgNurK1MlFBK1SfHNgzVrPVpKRqIJx3OOnIQlmmgNUz53yJKKiNA+ndSSu/SrXwDKkxiyRy8vcaQUD58iXLsYAWqYEB6m3rRITmOplO2l7t/sx8/raimsibK8H4FFOX4ZFmXEKJVSUBECCGEELtcSsPK0hBf/rCOAd1zGNmvAI+583dGcQceeGkO85ZV1ZcN71vAZSeNwL2Z+3HDAF90HXgziSs/nshatC+HiPbvdH1aigPMWlDOo1N/YEPsJuC1uOTkkTz55lwqamIcvU8vTKVwdtHjd58Ro+a9x4gtnU3mmDVkjDyE0udvwYmGKD7zZpyMHu0i0CRahtaaDLfJ+IGFKKWw7VaYviSEED8jAREhhBBC7FKGqZjxQwmPvz4XgI9mrWJA9xyuOmOPrc7k2Np5P/12dYNgCMAPSyqY/uM6Dh7dBbuJ7VcyjCjrnr8FV2EPMsceRcnrfydn75NwDz+ShN02H18Ho0kefvWHBmXhWIon3pjLsfv1YXVpHYO65+7SAEQcL9kTTiC+ci5137xF3TdvAeDtMxoC+RIMEQDrvwfyXRBCtA0yd1EIIYQQu1Qs6fDiBwsblC1cVUNNOLFT540nNe/NWNHksXe+WkEs1fRNWMjxUXjSNcRXz6di6r14ug3CM/TANhsMMQzVKOizQWVtjAHdczntkP64dvEoz3Egmd2LvMN+WV+mLDf5R13SpmfbCCGE6LgkICKEEEKIXUw1ufvJzocf9GZ3VdnSbisKjbaTG8+SSqDa+BNsw9j8EM4yFOYurMsGhqFwx8qp/uTZ+jKdShCcPhWvirVCjYQQQogtk4CIEEIIIXYpn0tx5hGDGpQN65NPdoZ7p87rdRkcNaFXk8eO3qc3XqvpYY/fiFHx2n14e4+k6JQ/kSxdTmzeJ7jNthkUcRzN4F65qCZiPMV5/p1uxx3lVTGq330UJxLE22c0Radeh7Lc1H3zFkaoVLYAFkII0eZIDhEhhBBC7FK2rRndr4BbL5rANwvK6N05i/7dcnZ6UGLbmgnDOjF3WSWzfiqrL99raCfGDizcbBLHsOOn+IybcVx+4spPp3PuwHEFiLTRJTMAWV6LK04bzQMvzSG1Pi9KTqaHq88ag9vYuGPOrhR1POQedRnhb6bhHzeJuPJTdNr1JMpWkMroLDlEhBBCtDkSEBFCCCHELmcq6JLro8e+vbFt3Ww38G5DcdGkYUw+LEldOEFWwE2Wz8WWNrBxHE3YVYBen+ux/n+3YQoY3juX+644gKraGJZlkJvpwe8yWi3woDVEjCw8408hYlugIZbRAzPQmYR2tUqdhBBCiC2RgIgQQgghWk0q1fxbb5pAnt9Fnn/bb8I3DYC09WBIPQ0Bl0GgYGPC0taehaE1xO2Nw0tHg4MEQ4QQQrRNkkNECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhSEBECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhSEBECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhSEBECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhSEBECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhSEBECCGEEEIIIYQQHY4ERIQQQgghhBBCCNHhKK21bu1K7Gpaaxynw/3azcI0DWzbae1q7FakTVuGtGvzkzZtfruyTU2zeZ6BSB+6c+TfUfOTNm1+0qbNT9q0ZbTHflS0LR0yICKEEEIIIYQQQoiOTcJcQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiYoseeeQRzj777AZlP/30E2eddRajRo3i4IMP5qmnnmql2rUfNTU13Hjjjey///7ssccenH766cyaNav++PTp0znxxBMZOXIkEydOZNq0aa1Y2/ajsrKSP/zhD+y1116MHj2aCy+8kCVLltQfl+/qzlm2bBmjR4/mlVdeqS+TNt1+paWlDBw4sNF/G9pV2nT3Jv1o85B+tPlJH9qypA9tPtKPipYkARGxWf/973+5//77G5RVV1dz3nnn0aNHD6ZMmcJll13G3XffzZQpU1qnku3E7373O2bPns29997LlClTGDx4MOeffz5Lly5lyZIlXHTRRey333688sornHLKKVx99dVMnz69tavd5l122WWsWLGCRx99lJdffhmv18u5555LNBqV7+pOSiaTXHXVVUQikfoyadMdM3/+fDweD5999hmff/55/X9HHXWUtOluTvrR5iP9aPOTPrTlSB/avKQfFS3Jau0KiLantLSUm266iRkzZtCrV68Gx1588UVcLhe33HILlmXRt2/f+s70pJNOap0Kt3ErVqzgiy++4Nlnn2XMmDEA3HDDDXz22We88cYbVFZWMnDgQK688koA+vbty7x583jssceYMGFCa1a9TautraVr165cdNFFDBgwAIBLL72USZMmsWjRIqZPny7f1Z3wwAMPkJGR0aBM/v3vmIULF9KrVy+KiooaHfvPf/4jbbobkn60eUk/2vykD21Z0oc2L+lHRUuSGSKikblz5+JyuXj99dcZOXJkg2OzZs1izz33xLI2xtL22msvli9fTkVFxa6uaruQm5vLo48+yvDhw+vLlFIopQgGg8yaNavRgG2vvfbim2++QWu9q6vbbmRnZ3PPPffUD+Sqqqp48skn6dSpE/369ZPv6k74+uuveeGFF7jzzjsblEub7pgFCxbQt2/fJo9Jm+6epB9tXtKPNj/pQ1uO9KHNT/pR0ZIkICIaOfjgg3nggQfo3r17o2MlJSV06tSpQdmGaO26det2Sf3am6ysLA444ADcbnd92bvvvsuKFSvYb7/9NtumG6asiq274YYbmDBhAtOmTeO2227D7/fLd3UHBYNBrr76aq6//no6d+7c4Ji06Y5ZuHAhVVVVnHnmmey9996cfvrpfPrpp4C06e5K+tHmJf1oy5I+tPlIH9oypB8VLUkCImK7xGKxBgMSAI/HA0A8Hm+NKrU73377Lddeey2HH344Bx54YJNtuuHnRCLRGlVsd8455xymTJnCMcccw2WXXcbcuXPlu7qD/vznPzN69GiOPfbYRsekTbdfKpVi6dKl1NbW8utf/5pHH32UUaNGceGFFzJ9+nRp0w5IPvOdJ/1o85I+tPlIH9r8pB8VLU1yiIjt4vV6Gw0uNvyx8fv9rVGlduWDDz7gqquuYo899uDuu+8G0n+0f96mG372+Xy7vI7tUb9+/QC47bbb+O6773jmmWfku7oDpk6dyqxZs3jjjTeaPC5tuv0sy2LGjBmYponX6wVg2LBhLFq0iMcff1zatAOSz3znSD/a/KQPbR7Sh7YM6UdFS5OAiNgunTp1oqysrEHZhp+Li4tbo0rtxjPPPMNtt93GxIkT+etf/1ofze7cuXOTber3+8nMzGyNqrYLVVVVTJ8+nSOOOKJ+3ahhGPTr14+ysjL5ru6AKVOmUFlZyYEHHtig/KabbuKtt96SNt1BgUCgUVn//v35/PPPpU07IPnMd5z0o81H+tDmJ31oy5F+VLQkWTIjtsu4ceP45ptvsG27vuyrr76id+/e5Ofnt2LN2rZnn32Wv/zlL5x55pnce++9Dab2jR07lpkzZzZ4/VdffcUee+yBYcg/0c2pqKjgd7/7XYNtFZPJJPPmzaNv377yXd0Bd999N2+99RZTp06t/w/gN7/5Dbfddpu06Q5YtGgRe+yxBzNmzGhQ/uOPP9KvXz9p0w5IPvMdI/1o85I+tPlJH9oypB8VLU4LsQXXXHONPuuss+p/rqio0OPGjdPXXHONXrRokZ4yZYoePny4fuWVV1qxlm3b0qVL9dChQ/Vll12my8rKGvwXDAb1woUL9dChQ/Xf/vY3vXjxYv3444/rIUOG6C+//LK1q97mXXDBBfrwww/XM2fO1AsWLNC/+93v9Lhx4/SaNWvku9pMBgwYoKdMmaK1ln//O8K2bX3SSSfpo446Sn/99dd68eLF+vbbb9fDhg3TCxYskDbtAKQf3XnSj7YM6UNbnvShO0/6UdHSlNayH5nYvD/+8Y+sWbOGp59+ur7s+++/57bbbmPevHkUFhbyy1/+krPOOqsVa9m2Pfzww9x3331NHjvhhBO48847+fTTT/nb3/7G8uXL6datG7/+9a856qijdnFN25+6ujruuecePvjgA+rq6hg7dix//OMf6d+/PyDf1eYwcOBA7rjjDk488URA2nRHVFRUcM899/DZZ58RDAYZMmQIV111FWPHjgWkTXd30o/uPOlHW4b0oS1P+tDmIf2oaEkSEBFCCCGEEEIIIUSHIwsrhRBCCCGEEEII0eFIQEQIIYQQQgghhBAdjgREhBBCCCGEEEII0eFIQEQIIYQQQgghhBAdjgREhBBCCCGEEEII0eFIQEQIIYQQQgghhBAdjgREhBBCCCGEEEII0eFIQESIDkxrvUveI4QQQuyOpB8VQoj2TQIiQnRQH374Iddcc812veell17ir3/963a9Z8aMGQwcOJAZM2Y0+3sGDhzIAw88AMArr7zCwIEDWb16NQBnn302Z5999nbVVQghhNhW0o8KIUT7Z7V2BYQQrePJJ5/c7vc89NBD7Lnnns1fmR30wgsv0KlTp9auhhBCiA5I+lEhhGj/JCAihGi3Ro0a1dpVEEIIIdot6UeFEB2dLJkRogM6++yzmTlzJjNnzqyfUltWVsa1117LAQccwIgRIzj55JP58MMP699z8MEHs2bNGl599dUGU2q//vprzj//fMaNG8ewYcM4+OCDeeCBB3AcZ6fruXjxYs444wyGDx/OYYcdxtNPP93g+KZTfYUQQohdRfpRIYTYPUhARIgO6KabbmLIkCEMGTKEF154gW7dunHyyScza9YsrrzySh544AG6du3KZZddxuuvvw7Agw8+SGFhIQcccAAvvPACRUVFzJ8/n3PPPZecnBzuu+8+HnroIcaOHcuDDz7I22+/vdP1vOOOOxg1ahQPPfQQ++23H7feeiv/+c9/dvq8QgghxM6QflQIIXYPsmRGiA6oX79+ZGRkAOnpsn/729+oqqri3XffpWvXrgAccMABnHvuudx1110cc8wxDBkyBLfbTV5eXv0U2/nz57P33nvzt7/9DcNIx1f32WcfPvroI2bMmMHRRx+9U/U89dRTufrqqwHYd999KS0t5ZFHHuHss8+uv54QQgixq0k/KoQQuwf5SyiEYObMmYwePbp+ELfBcccdR3l5OUuXLm3yfccffzz/+te/SCaTzJ8/n3fffZd//OMf2LZNMpnc6XodddRRDX4+7LDDqKys3Gx9hBBCiNYg/agQQrRPMkNECEFtbS3du3dvVF5QUABAMBhs8n2xWIy//OUvvPbaa6RSKbp168bo0aOxLAut9U7Xa8P1N8jPz6+vrxBCCNFWSD8qhBDtkwREhBBkZ2dTXl7eqHxDWW5ubpPvu+2223j33Xe5//772XvvvfH7/QBMmDChWer18wFbRUUFsHFAJ4QQQrQF0o8KIUT7JEtmhOigNl07PG7cOGbPns2aNWsavOb111+nsLCQnj17NnoPwDfffMP48eM59NBD6wdxP/74I1VVVc2SHf/jjz9u8PO0adPo3LlzfX2EEEKI1iL9qBBCtH8yQ0SIDiorK4vZs2czffp0zj33XF5//XXOPfdcLr/8cnJycpg6dSpfffUVt99+e/0ALisri3nz5jFz5kxGjBjBiBEjePvtt3nuuefo27cv8+fP56GHHkIpRTQa3ek6Pv300wQCAYYMGcK0adP47LPPuOuuu1BK7fS5hRBCiJ0h/agQQrR/EhARooM688wz+fHHH/nVr37FHXfcwXPPPcc999zDrbfeSjKZZNCgQfzf//0fhxxySP17fvnLX3L77bdz/vnn88QTT/DHP/6RZDLJ/fffTyKRoFu3blxyySUsXryYjz76CNu2d6qOt956K4899hj3338/3bt35957793pjPtCCCFEc5B+VAgh2j+lmyNjkxBCCCGEEEIIIUQ7IjNEhBC7jG3bW82ar5TCNM1dVCMhhBCi/ZB+VAghmpfMEBFC7DIHH3xwo4RzP7fnnnvy9NNP76IaCSGEEO2H9KNCCNG8JCAihNhlFixYQCKR2OJrAoEAffr02UU1EkIIIdoP6UeFEKJ5SUBECCGEEEIIIYQQHY6x9ZcIIYQQQgghhBBC7F4kICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogORwIiQgghhBBCCCGE6HAkICKEEEIIIYQQQogO5/8BsqtlcDmUj+UAAAAASUVORK5CYII=", + "text/plain": [ + "
        " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Import seaborn\n", + "import seaborn as sns\n", + "\n", + "# Apply the default theme\n", + "sns.set_theme()\n", + "\n", + "# Load an example dataset\n", + "tips = sns.load_dataset(\"tips\")\n", + "\n", + "# Create a visualization\n", + "sns.relplot(\n", + " data=tips,\n", + " x=\"total_bill\", y=\"tip\", col=\"time\",\n", + " hue=\"smoker\", style=\"smoker\", size=\"size\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
        \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        total_billtipsexsmokerdaytimesize
        016.991.01FemaleNoSunDinner2
        110.341.66MaleNoSunDinner3
        221.013.50MaleNoSunDinner3
        323.683.31MaleNoSunDinner2
        424.593.61FemaleNoSunDinner4
        \n", + "
        " + ], + "text/plain": [ + " total_bill tip sex smoker day time size\n", + "0 16.99 1.01 Female No Sun Dinner 2\n", + "1 10.34 1.66 Male No Sun Dinner 3\n", + "2 21.01 3.50 Male No Sun Dinner 3\n", + "3 23.68 3.31 Male No Sun Dinner 2\n", + "4 24.59 3.61 Female No Sun Dinner 4" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tips.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Equations\n", + "\n", + "The following is an example of a simple equation using LaTeX.\n", + "\n", + "$$\n", + "E = mc^2\n", + "$$" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/themes/hextra/exampleSite/assets/images/space.jpg b/themes/hextra/exampleSite/assets/images/space.jpg new file mode 100644 index 0000000000..9ca1f29dfc Binary files /dev/null and b/themes/hextra/exampleSite/assets/images/space.jpg differ diff --git a/themes/hextra/exampleSite/content/_index.fa.md b/themes/hextra/exampleSite/content/_index.fa.md new file mode 100644 index 0000000000..5c6da1df7b --- /dev/null +++ b/themes/hextra/exampleSite/content/_index.fa.md @@ -0,0 +1,76 @@ +--- +title: تم هگزترا +layout: hextra-home +--- + +{{< hextra/hero-badge >}} +
        + آزاد، متن‌باز + {{< icon name="arrow-circle-left" attributes="height=14" >}} +{{< /hextra/hero-badge >}} + +
        +{{< hextra/hero-headline >}} + ساخت وب‌سایت‌های مدرن  
        با مارک‌داون و هیوگو +{{< /hextra/hero-headline >}} +
        + +
        +{{< hextra/hero-subtitle >}} + تم هیوگو سریع و دارای امکانات کامل 
        برای ایجاد وب‌سایت‌های استاتیک زیبا +{{< /hextra/hero-subtitle >}} +
        + +
        +{{< hextra/hero-button text="شروع کنید" link="docs" >}} +
        + +
        + +{{< hextra/feature-grid >}} + {{< hextra/feature-card + title="سریع و با امکانات کامل" + subtitle="ساده و آسان برای استفاده، در عین حال قدرتمند و غنی از ویژگی‌ها متنوع." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/hextra-doc.webp" + imageClass="hx-top-[40%] hx-left-[24px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="مارک‌داون تنها چیزی است که شما نیاز دارید" + subtitle="فقط با مارک‌داون بنویسید. تکمیل و کامل با کامپوننت‌های کد کوتاه." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-lg:hx-min-h-[340px]" + image="/images/hextra-markdown.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="جستجوی کامل متن" + subtitle="جستجوی متن کامل داخلی با FlexSearch، بدون نیاز به نصب موارد اضافی." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/hextra-search.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="سبک مانند یک پر" + subtitle="برای استفاده از هگزترا به هیچ وابستگی یا Node.js نیاز نیست. با پشتیبانی از هیوگو، یکی از سریع‌ترین تولیدکنندگان سایت استاتیک، سایت شما را تنها در چند ثانیه با یک باینری می‌سازد." + >}} + {{< hextra/feature-card + title=" واکنش‌گرا با حالت تیره" + subtitle="در اندازه‌های مختلف صفحه نمایش عالی به نظر می‌رسد. پشتیبانی از حالت تیره داخلی، با تغییر خودکار براساس اولویت سیستم کاربر." + >}} + {{< hextra/feature-card + title="ساخت و میزبانی رایگان" + subtitle="با گیت‌هاب Actions بسازید و به صورت رایگان در گیت‌هاب Pages میزبانی کنید. یا می‌توانید آن را در هر سرویس میزبانی استاتیک میزبانی کنید." + >}} + {{< hextra/feature-card + title="چند زبانه آسان" + subtitle="فقط با افزودن پسوند محلی به پرونده مارک‌داون صفحات وب‌سایت چند زبانه ایجاد کنید. افزودن پشتیبانی i18n به سایت شما بصری است." + >}} + {{< hextra/feature-card + title="و خیلی بیشتر..." + icon="sparkles" + subtitle="برجسته‌کردن سینتکس / فهرست مطالب / سئو / RSS / LaTeX / Mermaid / سفارشی‌سازی / و موارد دیگر…" + >}} +{{< /hextra/feature-grid >}} diff --git a/themes/hextra/exampleSite/content/_index.md b/themes/hextra/exampleSite/content/_index.md new file mode 100644 index 0000000000..7c53d38f55 --- /dev/null +++ b/themes/hextra/exampleSite/content/_index.md @@ -0,0 +1,76 @@ +--- +title: Hextra Theme +layout: hextra-home +--- + +{{< hextra/hero-badge >}} +
        + Free, open source + {{< icon name="arrow-circle-right" attributes="height=14" >}} +{{< /hextra/hero-badge >}} + +
        +{{< hextra/hero-headline >}} + Build modern websites 
        with Markdown and Hugo +{{< /hextra/hero-headline >}} +
        + +
        +{{< hextra/hero-subtitle >}} + Fast, batteries-included Hugo theme 
        for creating beautiful static websites +{{< /hextra/hero-subtitle >}} +
        + +
        +{{< hextra/hero-button text="Get Started" link="docs" >}} +
        + +
        + +{{< hextra/feature-grid >}} + {{< hextra/feature-card + title="Fast and Full-featured" + subtitle="Simple and easy to use, yet powerful and feature-rich." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="images/hextra-doc.webp" + imageClass="hx-top-[40%] hx-left-[24px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="Markdown is All You Need" + subtitle="Compose with just Markdown. Enrich with Shortcode components." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-lg:hx-min-h-[340px]" + image="images/hextra-markdown.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="Full Text Search" + subtitle="Built-in full text search with FlexSearch, no extra setup required." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="images/hextra-search.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="Lightweight as a Feather" + subtitle="No dependency or Node.js is needed to use Hextra. Powered by Hugo, one of *the fastest* static site generators, building your site in just seconds with a single binary." + >}} + {{< hextra/feature-card + title="Responsive with Dark Mode Included" + subtitle="Looks great on different screen sizes. Built-in dark mode support, with auto-switching based on user's system preference." + >}} + {{< hextra/feature-card + title="Build and Host for Free" + subtitle="Build with GitHub Actions, and host for free on GitHub Pages. Alternatively it can be hosted on any static hosting service." + >}} + {{< hextra/feature-card + title="Multi-Language Made Easy" + subtitle="Create multi-language pages by just adding locales suffix to the Markdown file. Adding i18n support to your site is intuitive." + >}} + {{< hextra/feature-card + title="And Much More..." + icon="sparkles" + subtitle="Syntax highlighting / Table of contents / SEO / RSS / LaTeX / Mermaid / Customizable / and more..." + >}} +{{< /hextra/feature-grid >}} diff --git a/themes/hextra/exampleSite/content/_index.zh-cn.md b/themes/hextra/exampleSite/content/_index.zh-cn.md new file mode 100644 index 0000000000..d825babd2c --- /dev/null +++ b/themes/hextra/exampleSite/content/_index.zh-cn.md @@ -0,0 +1,76 @@ +--- +title: Hextra 主题 +layout: hextra-home +--- + +{{< hextra/hero-badge >}} +
        + 免费 开源 + {{< icon name="arrow-circle-right" attributes="height=14" >}} +{{< /hextra/hero-badge >}} + +
        +{{< hextra/hero-headline >}} + 创建现代化网站 
        由 Markdown 和 Hugo 驱动 +{{< /hextra/hero-headline >}} +
        + +
        +{{< hextra/hero-subtitle >}} + 极速且全能的 Hugo 主题框架 
        为构建现代化的静态网站而生 +{{< /hextra/hero-subtitle >}} +
        + +
        +{{< hextra/hero-button text="现在开始" link="docs" >}} +
        + +
        + +{{< hextra/feature-grid >}} + {{< hextra/feature-card + title="快速且功能全面" + subtitle="简单易用,功能强大丰富。" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/hextra-doc.webp" + imageClass="hx-top-[40%] hx-left-[24px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="Markdown 写作" + subtitle="只需使用 Markdown 进行编辑。多样的 Shortcode 组件开箱即用。" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-lg:hx-min-h-[340px]" + image="/images/hextra-markdown.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[180%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="全文搜索" + subtitle="内置 FlexSearch 全文搜索,无需额外设置。" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/hextra-search.webp" + imageClass="hx-top-[40%] hx-left-[36px] hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="轻如羽毛" + subtitle="使用 Hextra 无需依赖 Node.js。由 Hugo 提供支持,Hugo 是最快的静态网站生成器之一,只需一个二进制文件即可在数秒内创建网站。" + >}} + {{< hextra/feature-card + title="响应式布局,暗黑模式" + subtitle="适应不同的屏幕尺寸。内置暗黑模式支持,并根据用户的系统偏好自动切换。" + >}} + {{< hextra/feature-card + title="免费构建和托管" + subtitle="使用 GitHub Actions 进行构建,并在 GitHub Pages 上免费托管。也可以托管在任何静态托管服务上。" + >}} + {{< hextra/feature-card + title="多语言轻松实现" + subtitle="仅需通过在 Markdown 文件后添加语言代码即可创建多语言页面。向您的站点添加 i18n 支持直观易行。" + >}} + {{< hextra/feature-card + title="还有更多..." + icon="sparkles" + subtitle="代码高亮 / 目录 / SEO / RSS / LaTeX 公式 / Mermaid 图标 / 自定义 / 等等..." + >}} +{{< /hextra/feature-grid >}} diff --git a/themes/hextra/exampleSite/content/about/index.fa.md b/themes/hextra/exampleSite/content/about/index.fa.md new file mode 100644 index 0000000000..ceb6b8339a --- /dev/null +++ b/themes/hextra/exampleSite/content/about/index.fa.md @@ -0,0 +1,22 @@ +--- +title: درباره ما +toc: false +--- + +هگزترا به گونه‌ای طراحی شده است که یک موضوع ساده، سریع و انعطاف پذیر برای ساخت وب‌سایت‌های استاتیک مدرن باشد. این به ویژه برای وب‌سایت‌های مستندسازی مناسب است اما می‌تواند برای انواع مختلف سایت‌ها مانند وبلاگ‌ها، نمونه‌کار و موارد دیگر نیز استفاده شود. + +Hugo مانند Jekyll، یک ایجادکننده سایت استاتیک است. چیزی که Hugo را متمایز می‌کند این است که یک باینری واحد است و نصب و اجرای آن بر روی پلتفرم‌های مختلف را آسان می‌کند. همچنین بسیار سریع و قابل اعتماد است و می‌تواند یک سایت را با هزاران صفحه در میلی‌ثانیه ارائه دهد. + +هگزترا با ذهنیتی ساخته شده است که بر داشتن حداقل ردپا متمرکز شده است. برای شروع، هیچ وابستگی اضافی مانند بسته‌های Node.js لازم نیست. تنها چیزی که نیاز دارید یک پرونده پیکربندی YAML به همراه محتوای مارک‌داون شما است. بنابراین، شما می‌توانید به جای تنظیم ابزار، روی نوشتن محتوای با کیفیت تمرکز کنید. + +## اعتبار + +ترجمه فارسی مستندات توسط [گودرز جعفری](https://goudarzjafari.com/) انجام شده است. + +هگزترا بدون ابزار و الهامات زیر ساخته نمی‌شود: + +- [هیوگو](https://gohugo.io/) +- [Tailwind CSS](https://tailwindcss.com/) +- [Heroicons](https://heroicons.com/) +- [Nextra](https://nextra.vercel.app/) +- [Next.js](https://nextjs.org/) diff --git a/themes/hextra/exampleSite/content/about/index.md b/themes/hextra/exampleSite/content/about/index.md new file mode 100644 index 0000000000..440a14eb27 --- /dev/null +++ b/themes/hextra/exampleSite/content/about/index.md @@ -0,0 +1,20 @@ +--- +title: About +toc: false +--- + +Hextra is designed to be a simple, fast, and flexible theme for building modern static websites. It is especially well-suited for documentation websites but can also be used for various types of sites, such as blogs, portfolios, and more. + +Hugo, like Jekyll, is a static site generator. What sets Hugo apart is that it is a single binary, making it easy to install and run on various platforms. It is also extremely fast and reliable, capable of rendering a site with thousands of pages in milliseconds. + +Hextra is built with a mindset focused on having a minimal footprint. To get started, no extra dependencies like Node.js packages are required; all you need is a single YAML configuration file, along with your Markdown content. Thus, we can focus on writing quality content instead of setting up tooling. + +## Credits + +Hextra cannot be built without the following tools and inspirations: + +- [Hugo](https://gohugo.io/) +- [Tailwind CSS](https://tailwindcss.com/) +- [Heroicons](https://heroicons.com/) +- [Nextra](https://nextra.vercel.app/) +- [Next.js](https://nextjs.org/) diff --git a/themes/hextra/exampleSite/content/about/index.zh-cn.md b/themes/hextra/exampleSite/content/about/index.zh-cn.md new file mode 100644 index 0000000000..196fbce428 --- /dev/null +++ b/themes/hextra/exampleSite/content/about/index.zh-cn.md @@ -0,0 +1,20 @@ +--- +title: 关于 +toc: false +--- + +Hextra 是一款简洁、快速、灵活的主题,适用于构建现代化静态站点。Hextra 特别适用于文档网站,但也可用于构建博客、个人网站等各种类型的网站。 + +Hugo 和 Jekyll 类似,是一个静态网站生成器。但与其他生成器不同,Hugo 只有单个可执行文件,这使得它可以轻松地在各种平台上安装和运行。Hugo 的运行速度非常快且可靠性高,能够在几毫秒内渲染数千页的网站。 + +Hextra 被设计为轻量级,具有最小化的内存占用。使用 Hextra 无需安装繁杂的依赖,比如 Node.js;相反,你只需要一个简单的 YAML 配置文件和 Markdown 内容。因此,我们可以专注于内容而非在配置环境上浪费精力。 + +## 鸣谢 + +Hextra 的设计离不开这些项目的支持和其提供的灵感: + +- [Hugo](https://gohugo.io/) +- [Tailwind CSS](https://tailwindcss.com/) +- [Heroicons](https://heroicons.com/) +- [Nextra](https://nextra.vercel.app/) +- [Next.js](https://nextjs.org/) diff --git a/themes/hextra/exampleSite/content/blog/_index.fa.md b/themes/hextra/exampleSite/content/blog/_index.fa.md new file mode 100644 index 0000000000..daf2cf6cdf --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/_index.fa.md @@ -0,0 +1,10 @@ +--- +title: "وبلاگ" +--- + +
        +{{< hextra/hero-badge link="index.xml" >}} + خوراک RSS + {{< icon name="rss" attributes="height=14" >}} +{{< /hextra/hero-badge >}} +
        diff --git a/themes/hextra/exampleSite/content/blog/_index.md b/themes/hextra/exampleSite/content/blog/_index.md new file mode 100644 index 0000000000..b9906659f9 --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/_index.md @@ -0,0 +1,10 @@ +--- +title: "Blog" +--- + +
        +{{< hextra/hero-badge link="index.xml" >}} + RSS Feed + {{< icon name="rss" attributes="height=14" >}} +{{< /hextra/hero-badge >}} +
        diff --git a/themes/hextra/exampleSite/content/blog/_index.zh-cn.md b/themes/hextra/exampleSite/content/blog/_index.zh-cn.md new file mode 100644 index 0000000000..3389c286bb --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/_index.zh-cn.md @@ -0,0 +1,10 @@ +--- +title: "博客" +--- + +
        +{{< hextra/hero-badge link="index.xml" >}} + RSS 订阅 + {{< icon name="rss" attributes="height=14" >}} +{{< /hextra/hero-badge >}} +
        diff --git a/themes/hextra/exampleSite/content/blog/markdown.fa.md b/themes/hextra/exampleSite/content/blog/markdown.fa.md new file mode 100644 index 0000000000..7eb06973b7 --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/markdown.fa.md @@ -0,0 +1,166 @@ +--- +title: راهنمای استفاده سینتکس مارک‌داون +date: 2024-03-03 +authors: + - name: imfing + link: https://github.com/imfing + image: https://github.com/imfing.png + - name: Octocat + link: https://github.com/octocat + image: https://github.com/octocat.png + - name: Goudarz Jafari + link: https://github.com/Goudarz + image: https://github.com/Goudarz.png +tags: + - Markdown + - مثال + - راهنمای +excludeSearch: true +--- + +این مقاله نمونه‌ای از سینتکس ابتدایی مارک‌داون را آموزش می‌دهد، که می‌توانید در پرونده‌های محتوای Hugo استفاده کنید. + + +## سینتکس ابتدایی + +### سرتیترها + +``` +# سرتیتر ۱ +## سرتیتر ۲ +### سرتیتر ۳ +#### سرتیتر ۴ +##### سرتیتر ۵ +###### سرتیتر ۶ +``` + +## سرتیتر ۲ +### سرتیتر ۳ +#### سرتیتر ۴ +##### سرتیتر ۵ +###### سرتیتر ۶ + +### تاکید + +```text +*این متن کج خواهد بود* +_این متن هم کج خواهد بود_ + +**این متن توپر خواهد بود** +__این متن هم توپر خواهد بود__ + +_شما **می‌توانید** آنها را ترکیب کنید_ +``` + +*این متن کج خواهد بود* + +_این متن هم کج خواهد بود_ + +**این متن توپر خواهد بود** + +__این متن هم توپر خواهد بود__ + +_شما **می‌توانید** آنها را ترکیب کنید_ + +### فهرست‌ها + +#### مرتب نشده + +``` +* مورد ۱ +* مورد ۲ + * مورد ۱الف + * مورد ۲ب +``` + +* مورد ۱ +* مورد ۲ + * مورد ۱الف + * مورد ۲ب + +#### مرتب شده + +``` +1. مورد ۱ +2. مورد ۲ +3. مورد ۳ + 1. مورد ۳الف + 2. مورد ۳ب +``` + +1. مورد ۱ +2. مورد ۲ +3. مورد ۳ + 1. مورد ۳الف + 2. مورد ۳ب + +### عکس‌ها + +```markdown +![آرم گیت‌هاب](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) +``` + +![آرم گیت‌هاب](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) + +### پیوندها + +```markdown +[هیوگو](https://gohugo.io) +``` + +[هیوگو](https://gohugo.io) + +### بلوک نقل‌قول + +```markdown +همانطور که نیوتن گفت: + +> اگر فاصله دورتری را دیده‌ام با ایستادن بر شانه‌های غول‌ها بوده است. +``` + +> اگر فاصله دورتری را دیده‌ام با ایستادن بر شانه‌های غول‌ها بوده است. + +### کد درون‌خطی + +```markdown +`کد` درون‌خطی دارای `بک‌-تیک در اطراف` خود است. +``` + +`کد` درون‌خطی دارای `بک‌-تیک در اطراف` خود است. + +### بلوک‌های کد + +#### برجسته‌کردن سینتکس(Syntax) + +````markdown +```go +func main() { + fmt.Println("Hello World") +} +``` +```` + +```go +func main() { + fmt.Println("Hello World") +} +``` + +### جدول‌ها + +```markdown +| عنوان | توضیحات | +| --------- | ----------- | +| سرتیتر | عنوان | +| پاراگراف | متن | +``` + +| عنوان | توضیحات | +| --------- | ----------- | +| سرتیتر | عنوان | +| پاراگراف | متن | + +## منابع + +- [سینتکس مارک‌داون](https://www.markdownguide.org/basic-syntax/) +- [مارک‌داون هیوگو](https://gohugo.io/content-management/formats/#markdown) diff --git a/themes/hextra/exampleSite/content/blog/markdown.md b/themes/hextra/exampleSite/content/blog/markdown.md new file mode 100644 index 0000000000..9831fa79db --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/markdown.md @@ -0,0 +1,157 @@ +--- +title: Markdown Syntax Guide +date: 2020-01-01 +authors: + - name: imfing + link: https://github.com/imfing + image: https://github.com/imfing.png + - name: Octocat + link: https://github.com/octocat + image: https://github.com/octocat.png +tags: + - Markdown + - Example + - Guide +excludeSearch: true +--- + +This article offers a sample of basic Markdown syntax that can be used in Hugo content files. + + +## Basic Syntax + +### Headings + +``` +# Heading 1 +## Heading 2 +### Heading 3 +#### Heading 4 +##### Heading 5 +###### Heading 6 +``` + +## Heading 2 +### Heading 3 +#### Heading 4 +##### Heading 5 +###### Heading 6 + +### Emphasis + +```text +*This text will be italic* +_This will also be italic_ + +**This text will be bold** +__This will also be bold__ + +_You **can** combine them_ +``` + +*This text will be italic* + +_This will also be italic_ + +**This text will be bold** + +__This will also be bold__ + +_You **can** combine them_ + +### Lists + +#### Unordered + +``` +* Item 1 +* Item 2 + * Item 2a + * Item 2b +``` + +* Item 1 +* Item 2 + * Item 2a + * Item 2b + +#### Ordered + +``` +1. Item 1 +2. Item 2 +3. Item 3 + 1. Item 3a + 2. Item 3b +``` + +### Images + +```markdown +![GitHub Logo](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) +``` + +![GitHub Logo](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) + +### Links + +```markdown +[Hugo](https://gohugo.io) +``` + +[Hugo](https://gohugo.io) + +### Blockquotes + +```markdown +As Newton said: + +> If I have seen further it is by standing on the shoulders of Giants. +``` + +> If I have seen further it is by standing on the shoulders of Giants. + +### Inline Code + +```markdown +Inline `code` has `back-ticks around` it. +``` + +Inline `code` has `back-ticks around` it. + +### Code Blocks + +#### Syntax Highlighting + +````markdown +```go +func main() { + fmt.Println("Hello World") +} +``` +```` + +```go +func main() { + fmt.Println("Hello World") +} +``` + +### Tables + +```markdown +| Syntax | Description | +| --------- | ----------- | +| Header | Title | +| Paragraph | Text | +``` + +| Syntax | Description | +| --------- | ----------- | +| Header | Title | +| Paragraph | Text | + +## References + +- [Markdown Syntax](https://www.markdownguide.org/basic-syntax/) +- [Hugo Markdown](https://gohugo.io/content-management/formats/#markdown) diff --git a/themes/hextra/exampleSite/content/blog/markdown.zh-cn.md b/themes/hextra/exampleSite/content/blog/markdown.zh-cn.md new file mode 100644 index 0000000000..ad414c81be --- /dev/null +++ b/themes/hextra/exampleSite/content/blog/markdown.zh-cn.md @@ -0,0 +1,137 @@ +--- +title: Markdown 语法指南 +date: 2020-01-01 +authors: + - name: John Doe + link: https://example.com/johndoe +excludeSearch: true +--- + +这篇文章提供了一些基础的 Markdown 语法样例,这些可以在 Hugo 的内容文件中使用。 + + + +## 基础语法 + +### 标题 + +``` +# 一级标题 +## 二级标题 +### 三级标题 +#### 四级标题 +##### 五级标题 +###### 六级标题 +``` + +## 二级标题 +### 三级标题 +#### 四级标题 +##### 五级标题 +###### 六级标题 + +```text +*这段文字将是斜体* +_这也将是斜体_ + +**这段文字将是粗体** +__这也将是粗体__ + +_你 **可以** 组合它们_ +``` + +*这段文字将是斜体* +_这也将是斜体_ + +**这段文字将是粗体** +__这也将是粗体__ + +_你 **可以** 组合它们_ + +### 列表 + +#### 无序列表 + +* 项目 1 +* 项目 2 + * 项目 2a + * 项目 2b + +#### 有序列表 + +1. 项目 1 +2. 项目 2 +3. 项目 3 + 1. 项目 3a + 2. 项目 3b + +### 图片 + +```markdown +![GitHub Logo](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) +``` + +![GitHub Logo](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) + +### 链接 + +```markdown +[Hugo](https://gohugo.io) +``` + +[Hugo](https://gohugo.io) + +### 块引用 + +```markdown +牛顿曾说: + +> 如果我看得更远,那是因为我站在巨人的肩膀上。 +``` + +> 如果我看得更远,那是因为我站在巨人的肩膀上。 + +### 行内代码 + +```markdown +行内 `代码` 有 `反引号` 包围。 +``` + +行内 `代码` 有 `反引号` 包围。 + +### 代码块 + +#### 语法高亮 + +````markdown +```go +func main() { + fmt.Println("Hello World") +} +``` +```` + +```go +func main() { + fmt.Println("Hello World") +} +``` + +### 表格 + +```markdown +| Syntax | Description | +| --------- | ----------- | +| Header | Title | +| Paragraph | Text | +``` + +| Syntax | Description | +| --------- | ----------- | +| Header | Title | +| Paragraph | Text | + +## 参考 + +- [Markdown Syntax](https://www.markdownguide.org/basic-syntax/) +- [Hugo Markdown](https://gohugo.io/content-management/formats/#markdown) diff --git a/themes/hextra/exampleSite/content/docs/_index.fa.md b/themes/hextra/exampleSite/content/docs/_index.fa.md new file mode 100644 index 0000000000..7e6483b830 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/_index.fa.md @@ -0,0 +1,41 @@ +--- +linkTitle: "مستندات" +title: معرفی +--- + +👋 سلام! به مستندات هگزترا خوش آمدید! + + + +## هگزترا چیه؟ + +هگزترا یک تم [Hugo][hugo] مدرن و سریع است که با [Tailwind CSS][tailwind-css] ساخته شده است. + طراحی شده برای ساخت وب‌سایت‌های زیبا برای مستندات، وبلاگ‌ها و وب‌سایت‌ها، ویژگی‌های خارج از جعبه و انعطاف‌پذیری را برای پاسخگویی نیازهای مختلف فراهم می‌کند. + +## ویژگی‌ها + +- **طراحی زیبا** - با الهام از Nextra، هگزترا از Tailwind CSS برای ارائه یک طراحی مدرن که سایت شما را برجسته می‌کند، استفاده می‌کند. +- **طراحی واکنش‌گرا و حالت تیره** - در تمام دستگاه‌ها، از تلفن همراه، تبلت تا دسکتاپ، عالی به نظر می‌رسد. حالت تیره نیز برای انطباق با شرایط مختلف روشنایی پشتیبانی می‌شود. +- **سریع و سبک** - طراحی شده توسط Hugo، یک ایجادکننده سایت استاتیک سریع مثل رعد و برق که در یک فایل باینری قرار گرفته است، هگزترا ردپای خود را به حداقل می‌رساند. برای استفاده از آن به جاوااسکریپت یا Node.js نیازی ندارید. +- **جستجوی متن کامل** - جستجوی متن کاملا آفلاین داخلی طراحی شده توسط FlexSearch، بدون نیاز به پیکربندی اضافی. +- **امکانات کامل** - برای بهتر کردن محتوای شما مارک‌داون، برجسته‌کردن سینتکس، فرمول‌های ریاضی LaTeX، نمودارها و عناصر Shortcodeها را شامل میشه. فهرست مطالب، بردکرامب، صفحه‌بندی، پیمایش نوار کناری و موارد دیگر همه به صورت خودکار تولید می‌شوند. +- **چند زبانه و سئو آماده** - سایت‌های چند زبانه با حالت چند زبانه Hugo راحت ساخته می‌شوند. پشتیبانی خارج از جعبه برای برچسب‌های سئو، Open Graph و کارت‌های توییتر گنجانده شده است. + +## سوال یا بازخورد؟ + +{{< callout emoji="❓" >}} + هگزترا هنوز در حال توسعه است. + سوال یا بازخوردی دارید؟ با خیال راحت [یک موضوع را باز کنید](https://github.com/imfing/hextra/issues)! +{{< /callout >}} + +## بعدی + +برای شروع کردن به بخش زیر مراجعه کنید: + +{{< cards >}} + {{< card link="getting-started" title="شروع کنید" icon="document-text" subtitle="یادگیری نحوه ایجاد وب‌سایت با استفاده از هگزترا" >}} +{{< /cards >}} + +[hugo]: https://gohugo.io/ +[flex-search]: https://github.com/nextapps-de/flexsearch +[tailwind-css]: https://tailwindcss.com/ diff --git a/themes/hextra/exampleSite/content/docs/_index.md b/themes/hextra/exampleSite/content/docs/_index.md new file mode 100644 index 0000000000..2e12fc5afa --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/_index.md @@ -0,0 +1,41 @@ +--- +linkTitle: "Documentation" +title: Introduction +--- + +👋 Hello! Welcome to the Hextra documentation! + + + +## What is Hextra? + +Hextra is a modern, fast and batteries-included [Hugo][hugo] theme built with [Tailwind CSS][tailwind-css]. +Designed for building beautiful websites for documentation, blogs, and websites, it provides out-of-the-box features and flexibility to meet various requirements. + +## Features + +- **Beautiful Design** - Inspired by Nextra, Hextra utilizes Tailwind CSS to offer a modern design that makes your site look outstanding. +- **Responsive Layout and Dark Mode** - It looks great on all devices, from mobile, tablet to desktop. Dark mode is also supported to accommodate various lighting conditions. +- **Fast and Lightweight** - Powered by Hugo, a lightning-fast static-site generator housed in a single binary file, Hextra keeps its footprint minimal. No JavaScript or Node.js are needed to use it. +- **Full-text Search** - Built-in offline full-text search powered by FlexSearch, no additional configuration required. +- **Battery-included** - Markdown, syntax highlighting, LaTeX math formulae, diagrams and Shortcodes elements to enhance your content. Table of contents, breadcrumbs, pagination, sidebar navigation and more are all automatically generated. +- **Multi-language and SEO Ready** - Multi-language sites made easy with Hugo's multilingual mode. Out-of-the-box support is included for SEO tags, Open Graph, and Twitter Cards. + +## Questions or Feedback? + +{{< callout emoji="❓" >}} + Hextra is still in active development. + Have a question or feedback? Feel free to [open an issue](https://github.com/imfing/hextra/issues)! +{{< /callout >}} + +## Next + +Dive right into the following section to get started: + +{{< cards >}} + {{< card link="getting-started" title="Getting Started" icon="document-text" subtitle="Learn how to create website using Hextra" >}} +{{< /cards >}} + +[hugo]: https://gohugo.io/ +[flex-search]: https://github.com/nextapps-de/flexsearch +[tailwind-css]: https://tailwindcss.com/ diff --git a/themes/hextra/exampleSite/content/docs/_index.zh-cn.md b/themes/hextra/exampleSite/content/docs/_index.zh-cn.md new file mode 100644 index 0000000000..7915eac47f --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/_index.zh-cn.md @@ -0,0 +1,40 @@ +--- +linkTitle: "文档" +title: 介绍 +--- + +👋 你好!欢迎来到 Hextra 文档! + + + +## Hextra 是什么? + +Hextra 是一款现代、快速且内置丰富功能的 [Hugo][hugo] 主题,它是用 [Tailwind CSS][tailwind-css] 构建的。该主题旨在创建美观的文档、博客和网站,提供了开箱即用的功能和灵活性以满足各种需求。 + +## 功能特点 + +- **优美的设计** - 受到 Nextra 的启发,Hextra 利用 Tailwind CSS 提供了一种现代设计,使您的网站看起来出色。 +- **响应式布局和深色模式** - 无论是在移动设备、平板还是桌面上,都表现出色。同时支持深色模式以适应各种光线条件。 +- **快速和轻量级** - 由 Hugo 驱动,一个轻量级且超快的静态网站生成器,封装在一个单一的二进制文件中,Hextra 保持其占用极小。使用它不需要 Javascript 或 Node.js。 +- **全文搜索** - 内置的离线全文搜索由 FlexSearch 提供支持,无需额外配置。 +- **功能全面** - 支持 Markdown、语法高亮、LaTeX 数学公式、图表以及 Shortcodes 元素以增强您的内容。目录、面包屑、分页、侧边栏导航等都会自动生成。 +- **多语言和 SEO 支持** - Hugo 的多语言模式轻松支持多语言网站。对于 SEO 标签、Open Graph 和 Twitter 卡片,也提供了开箱即用的支持。 + +## 有问题或反馈? + +{{< callout emoji="❓" >}} + Hextra 仍在积极开发中。 + 有问题或反馈?请随时[提出问题](https://github.com/imfing/hextra/issues)! +{{< /callout >}} + +## 接下来 + +直接进入以下部分开始: + +{{< cards >}} + {{< card link="getting-started" title="入门指南" icon="document-text" subtitle="学习如何使用 Hextra 创建网站" >}} +{{< /cards >}} + +[hugo]: https://gohugo.io/ +[flex-search]: https://github.com/nextapps-de/flexsearch +[tailwind-css]: https://tailwindcss.com/ diff --git a/themes/hextra/exampleSite/content/docs/advanced/_index.fa.md b/themes/hextra/exampleSite/content/docs/advanced/_index.fa.md new file mode 100644 index 0000000000..9bd6991093 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/_index.fa.md @@ -0,0 +1,16 @@ +--- +linkTitle: پیشرفته +title: موضوعات پیشرفته +prev: /docs/guide/shortcodes/steps +next: /docs/advanced/multi-language +--- + +این بخش برخی از موضوعات پیشرفته تم را پوشش می‌دهد. + + + +{{< cards >}} + {{< card link="multi-language" title="چند زبانه" icon="translate" >}} + {{< card link="customization" title="سفارشی‌سازی" icon="pencil" >}} + {{< card link="comments" title="سیستم نظردهی" icon="chat-alt" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/advanced/_index.md b/themes/hextra/exampleSite/content/docs/advanced/_index.md new file mode 100644 index 0000000000..cdcaed219d --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/_index.md @@ -0,0 +1,16 @@ +--- +linkTitle: Advanced +title: Advanced Topics +prev: /docs/guide/shortcodes/tabs +next: /docs/advanced/multi-language +--- + +This section covers some advanced topics of the theme. + + + +{{< cards >}} + {{< card link="multi-language" title="Multi-language" icon="translate" >}} + {{< card link="customization" title="Customization" icon="pencil" >}} + {{< card link="comments" title="Comments System" icon="chat-alt" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/advanced/_index.zh-cn.md b/themes/hextra/exampleSite/content/docs/advanced/_index.zh-cn.md new file mode 100644 index 0000000000..f6f2061b0c --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/_index.zh-cn.md @@ -0,0 +1,15 @@ +--- +linkTitle: 高级配置 +title: 高级配置 +prev: /docs/guide/shortcodes/tabs +next: /docs/advanced/multi-language +--- + +此部分提供了 Hextra 的一些高级配置。 + + + +{{< cards >}} + {{< card link="multi-language" title="多语言" icon="translate" >}} + {{< card link="customization" title="定制化" icon="pencil" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/advanced/comments.fa.md b/themes/hextra/exampleSite/content/docs/advanced/comments.fa.md new file mode 100644 index 0000000000..852f40260c --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/comments.fa.md @@ -0,0 +1,39 @@ +--- +title: سیستم نظردهی +linkTitle: نظردهی +--- + +هگزترا از افزودن سیستم نظردهی به سایت شما پشتیبانی می‌کند. + در حال حاضر [giscus](https://giscus.app/) پشتیبانی می‌شود. + + + +## giscus + +[giscus](https://giscus.app/) یک سیستم نظردهی است که توسط [GitHub Discussions](https://docs.github.com/en/discussions) طراحی شده است. رایگان و متن باز است. + +برای فعال کردن giscus، باید موارد زیر را به پرونده پیکربندی سایت اضافه کنید: + +```yaml {filename="hugo.yaml"} +params: + comments: + enable: false + type: giscus + + giscus: + repo: + repoId: + category: + categoryId: +``` + +تنظیمات giscus را می توانید از وب‌سایت [giscus.app](https://giscus.app/) ساخت. جزئیات بیشتر را نیز می‌توانید در آنجا ببینید. + +دیدگاه‌ها را می‌توانید برای یک صفحه خاص در بالای همان صفحه فعال یا غیرفعال کرد: + +```yaml {filename="content/docs/about.md"} +--- +title: درباره ما +comments: true +--- +``` diff --git a/themes/hextra/exampleSite/content/docs/advanced/comments.md b/themes/hextra/exampleSite/content/docs/advanced/comments.md new file mode 100644 index 0000000000..3327ee77ad --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/comments.md @@ -0,0 +1,39 @@ +--- +title: Comments System +linkTitle: Comments +--- + +Hextra supports adding comments system to your site. +Currently [giscus](https://giscus.app/) is supported. + + + +## giscus + +[giscus](https://giscus.app/) is a comments system powered by [GitHub Discussions](https://docs.github.com/en/discussions). It is free and open source. + +To enable giscus, you need to add the following to the site configuration file: + +```yaml {filename="hugo.yaml"} +params: + comments: + enable: false + type: giscus + + giscus: + repo: + repoId: + category: + categoryId: +``` + +The giscus configurations can be constructed from the [giscus.app](https://giscus.app/) website. More details can also be found there. + +Comments can be enabled or disabled for a specific page in the page front matter: + +```yaml {filename="content/docs/about.md"} +--- +title: About +comments: true +--- +``` diff --git a/themes/hextra/exampleSite/content/docs/advanced/comments.zh-cn.md b/themes/hextra/exampleSite/content/docs/advanced/comments.zh-cn.md new file mode 100644 index 0000000000..9a5065811a --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/comments.zh-cn.md @@ -0,0 +1,39 @@ +--- +title: 评论系统 +linkTitle: Comments +--- + +Hextra 支持在你的网站中添加评论系统。 +目前已经支持 [giscus](https://giscus.app/). + + + +## giscus + +[giscus](https://giscus.app/) 是由 [GitHub Discussions](https://docs.github.com/en/discussions)驱动的评论系统。Giscus 免费并且开源。 + +如需启用 Giscus, 你需要在配置文件中添加以下内容: + +```yaml {filename="hugo.yaml"} +params: + comments: + enable: false + type: giscus + + giscus: + repo: + repoId: + category: + categoryId: +``` + +Giscus 配置可以参考 [giscus.app](https://giscus.app/),还可以在那里找到更多详细信息。 + +可以在 front matter 中启用或禁用特定页面的评论: + +```yaml {filename="content/docs/about.md"} +--- +title: About +comments: true +--- +``` diff --git a/themes/hextra/exampleSite/content/docs/advanced/customization.fa.md b/themes/hextra/exampleSite/content/docs/advanced/customization.fa.md new file mode 100644 index 0000000000..8c5306594f --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/customization.fa.md @@ -0,0 +1,73 @@ +--- +title: سفارشی‌سازی هگزترا +linkTitle: سفارشی‌سازی +--- + +هگزترا برخی از گزینه‌های سفارشی‌سازی پیش‌فرض را در پرونده `hugo.yaml` برای پیکربندی تم ارائه می‌کند. + این صفحه گزینه‌های موجود و نحوه سفارشی‌سازی بیشتر تم را توضیح می‌دهد. + + + +## CSS سفارشی + +برای افزودن CSS سفارشی، باید یک پرونده `assets/css/custom.css` در سایت خود ایجاد کنیم. هگزترا به طور خودکار این پرونده را بارگیری خواهد کرد. + +### خانواده فونت + +خانواده فونت برای محتوا را می‌توانید با استفاده از این سفارشی کنید: + +```css {filename="assets/css/custom.css"} +.content { + font-family: "Times New Roman", Times, serif; +} +``` + +### عنصر کد درون‌خطی + +رنگ متن ترکیب شده با `متن دیگر` را می‌توانید با موارد زیر سفارشی کرد: + +```css {filename="assets/css/custom.css"} +.content code:not(.code-block code) { + color: #c97c2e; +} +``` + +### رنگ اصلی + +رنگ اصلی تم را می‌توانید با تنظیم متغیرهای `--primary-hue` و `--primary-saturation` سفارشی کرد: + +```css {filename="assets/css/custom.css"} +:root { + --primary-hue: 100deg; + --primary-saturation: 90%; +} +``` + +### برجسته‌کردن سینتکس + +فهرست تم‌های برجسته‌کردن سینتکس در دسترس [گالری Chroma Styles](https://xyproto.github.io/splash/docs/all.html) موجود است. شیوه‌نامه را می‌توانید با استفاده از دستور زیر تولید کرد: + +```shell +hugo gen chromastyles --style=github +``` + +برای نادیده گرفتن طرح زمینه برجسته‌کردن سینتکس پیش‌فرض، می‌توانید استایل‌های تولید شده را به پرونده CSS سفارشی اضافه کنیم. + +## اسکریپت‌های سفارشی + +با افزودن پرونده زیر می‌توانید اسکریپت‌های سفارشی را برای هر صفحه به انتهای اون اضافه کنید: + +``` +layouts/partials/custom/head-end.html +``` + +## طرح‌بندی‌های سفارشی + +با ایجاد پرونده‌ای با همین نام در دایرکتوری `layouts` سایت خود، می‌توانید طرح‌های تم را نادیده بگیرید. + به عنوان مثال، برای لغو طرح‌بندی `single.html` برای مستندات، یک پرونده`layouts/docs/single.html` در سایت خود ایجاد کنید. + +برای اطلاعات بیشتر، به [Templateهای هیوگو](https://gohugo.io/templates/) مراجعه کنید. + +## سفارشی‌سازی بیشتر + +چیزی را که دنبالش بودید پیدا نکردید؟ با خیال راحت [بحثی را باز کنید](https://github.com/imfing/hextra/discussions) یا به موضوع کمک کنید! diff --git a/themes/hextra/exampleSite/content/docs/advanced/customization.md b/themes/hextra/exampleSite/content/docs/advanced/customization.md new file mode 100644 index 0000000000..5c37b79812 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/customization.md @@ -0,0 +1,74 @@ +--- +title: Customizing Hextra +linkTitle: Customization +--- + +Hextra offers some default customization options in the `hugo.yaml` config file to configure the theme. +This page describes the available options and how to customize the theme further. + + + +## Custom CSS + +To add custom CSS, we need to create a file `assets/css/custom.css` in our site. Hextra will automatically load this file. + +### Font Family + +The font family of the content can be customized using: + +```css {filename="assets/css/custom.css"} +.content { + font-family: "Times New Roman", Times, serif; +} +``` + +### Inline Code Element + +The color of text mixed with `other text` can customized with: + +```css {filename="assets/css/custom.css"} +.content code:not(.code-block code) { + color: #c97c2e; +} +``` + +### Primary Color + +The primary color of the theme can be customized by setting the `--primary-hue`, `--primary-saturation` and `--primary-lightness` variables: + +```css {filename="assets/css/custom.css"} +:root { + --primary-hue: 100deg; + --primary-saturation: 90%; + --primary-lightness: 50%; +} +``` + +### Syntax Highlighting + +List of available syntax highlighting themes are available at [Chroma Styles Gallery](https://xyproto.github.io/splash/docs/all.html). The stylesheet can be generated using the command: + +```shell +hugo gen chromastyles --style=github +``` + +To override the default syntax highlighting theme, we can add the generated styles to the custom CSS file. + +## Custom Scripts + +You may add custom scripts to the end of the head for every page by adding the following file: + +``` +layouts/partials/custom/head-end.html +``` + +## Custom Layouts + +The layouts of the theme can be overridden by creating a file with the same name in the `layouts` directory of your site. +For example, to override the `single.html` layout for docs, create a file `layouts/docs/single.html` in your site. + +For further information, refer to the [Hugo Templates](https://gohugo.io/templates/). + +## Further Customization + +Didn't find what you were looking for? Feel free to [open a discussion](https://github.com/imfing/hextra/discussions) or make a contribution to the theme! diff --git a/themes/hextra/exampleSite/content/docs/advanced/customization.zh-cn.md b/themes/hextra/exampleSite/content/docs/advanced/customization.zh-cn.md new file mode 100644 index 0000000000..bb3f9d795e --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/customization.zh-cn.md @@ -0,0 +1,58 @@ +--- +title: 自定义 Hextra +linkTitle: 自定义 +--- + +Hextra 在 `hugo.yaml` 中提供了一些自定义选项来配置主题。 +本页介绍了可用选项以及如何进一步自定义主题。 + + + +## 自定义 CSS + +要添加自定义 CSS,我们需要在站点中创建一个文件 `assets/css/custom.css`。Hextra 将自动加载该文件,比如自定义字体: + +```css {filename="assets/css/custom.css"} +.content { + font-family: "Times New Roman", Times, serif; +} +``` + +### 主题色 + +主题色可以通过设置 `--primary-hue` 变量来自定义: + +```css {filename="assets/css/custom.css"} +:root { + --primary-hue: 100deg; +} +``` + +### 代码高亮 + +代码高亮风格的详细信息可在 [Chroma Styles Gallery](https://xyproto.github.io/splash/docs/all.html) 中找到。可以使用以下命令生成样式表: + +```shell +hugo gen chromastyles --style=github +``` + +可将生成的样式添加到自定义 CSS 文件中以覆盖默认代码高亮样式。 + +## 自定义 Script + +你可以添加以下文件以自定义 `script` 添加到每页的 `head` 最后: + +``` +layouts/partials/custom/head-end.html +``` + +## 自定义布局 + +可以在站点的 `layouts` 目录中创建同名文件来覆盖主题的默认布局。 +例如,要覆盖文档的 `single.html` 布局,在站点中创建文件 `layouts/docs/single.html`。 + +如需或许更多信息,转至 [Hugo Templates](https://gohugo.io/templates/)。 + +## 进一步定制 Hextra + +没有找到你想修改的内容?在 GitHub 上[创建 Discussion](https://github.com/imfing/hextra/discussions) 或为 Hextra 贡献你的智慧! diff --git a/themes/hextra/exampleSite/content/docs/advanced/multi-language.fa.md b/themes/hextra/exampleSite/content/docs/advanced/multi-language.fa.md new file mode 100644 index 0000000000..37957a5b60 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/multi-language.fa.md @@ -0,0 +1,83 @@ +--- +title: "چند زبانه" +weight: 1 +prev: /docs/advanced +--- + +هگزترا از ایجاد سایت با چندین زبان با استفاده از [حالت چند زبانه](https://gohugo.io/content-management/multilingual/) Hugo پشتیبانی می‌کند. + + + +## فعال‌سازی چند زبانه + +برای اینکه سایت ما چند زبانه شود، باید زبان‌های پشتیبانی شده را به Hugo بگوییم. باید به پرونده پیکربندی سایت اضافه کنیم: + +```yaml {filename="hugo.yaml"} +defaultContentLanguage: en +languages: + en: + languageName: English + weight: 1 + fa: + languageName: فارسی + weight: 2 + ja: + languageName: 日本語 + weight: 3 +``` + +## مدیریت ترجمه‌ها بر اساس نام پرونده + +Hugo از مدیریت ترجمه با نام پرونده پشتیبانی می‌کند. به عنوان مثال، اگر یک پرونده `content/docs/_index.md` به زبان انگلیسی داشته باشیم، می توانیم یک پرونده `content/docs/_index.fa.md` برای ترجمه فارسی ایجاد کنیم. + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="_index.fa.md" >}} + {{< filetree/file name="_index.ja.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +توجه: Hugo همچنین از ت[ترجمه توسط دایرکتوری محتوا](https://gohugo.io/content-management/multilingual/#translation-by-content-directory) پشتیبانی می‌کند. + +## ترجمه آیتم‌های منو + +برای ترجمه آیتم‌های منو در نوار پیمایش، باید فیلد `identifier` را تنظیم کنیم: + +```yaml {filename="hugo.yaml"} +menu: + main: + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 1 + - identifier: blog + name: Blog + pageRef: /blog + weight: 2 +``` + +و آنها را در پرونده i18n مربوطه ترجمه کنید: + +```yaml {filename="i18n/fa.yaml"} +documentation: مستندات +blog: وبلاگ +``` + +## ترجمه رشته‌ها + +برای ترجمه رشته‌ها در مکان‌های دیگر، باید ترجمه را به پرونده i18n مربوطه اضافه کنیم: + +```yaml {filename="i18n/fa.yaml"} +readMore: ادامه مطلب +``` + +فهرستی از رشته‌های استفاده شده در تم را می‌توان در پرونده `i18n/en.yaml` پیدا کرد. + +## بیشتر بخوانید + +- [حالت چند زبانه هیوگو](https://gohugo.io/content-management/multilingual/) +- [هیوگو چند زبانه قسمت ۱: ترجمه محتوا](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/) +- [هیوگو چند زبانه قسمت ۲: بومی‌سازی رشته‌ها](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-2-i18n-string-localization/) diff --git a/themes/hextra/exampleSite/content/docs/advanced/multi-language.md b/themes/hextra/exampleSite/content/docs/advanced/multi-language.md new file mode 100644 index 0000000000..963ee954da --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/multi-language.md @@ -0,0 +1,83 @@ +--- +title: "Multi-language" +weight: 1 +prev: /docs/advanced +--- + +Hextra supports creating site with multiple languages using Hugo's [multilingual mode](https://gohugo.io/content-management/multilingual/). + + + +## Enable Multi-language + +To make our site multi-language, we need to tell Hugo the supported languages. We need to add to the site configuration file: + +```yaml {filename="hugo.yaml"} +defaultContentLanguage: en +languages: + en: + languageName: English + weight: 1 + fr: + languageName: Français + weight: 2 + ja: + languageName: 日本語 + weight: 3 +``` + +## Manage Translations by Filename + +Hugo supports managing translations by filename. For example, if we have a file `content/docs/_index.md` in English, we can create a file `content/docs/_index.fr.md` for French translation. + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="_index.fr.md" >}} + {{< filetree/file name="_index.ja.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Note: Hugo also supports [Translation by content directory](https://gohugo.io/content-management/multilingual/#translation-by-content-directory). + +## Translate Menu Items + +To translate menu items in the navigation bar, we need to set the `identifier` field: + +```yaml {filename="hugo.yaml"} +menu: + main: + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 1 + - identifier: blog + name: Blog + pageRef: /blog + weight: 2 +``` + +and translate them in the corresponding i18n file: + +```yaml {filename="i18n/fr.yaml"} +documentation: Documentation +blog: Blog +``` + +## Translate Strings + +To translate strings on the other places, we need to add the translation to the corresponding i18n file: + +```yaml {filename="i18n/fr.yaml"} +readMore: Lire la suite +``` + +A list of strings used in the theme can be found in the `i18n/en.yaml` file. + +## Read More + +- [Hugo Multilingual Mode](https://gohugo.io/content-management/multilingual/) +- [Hugo Multilingual Part 1: Content translation](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/) +- [Hugo Multilingual Part 2: Strings localization](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-2-i18n-string-localization/) diff --git a/themes/hextra/exampleSite/content/docs/advanced/multi-language.zh-cn.md b/themes/hextra/exampleSite/content/docs/advanced/multi-language.zh-cn.md new file mode 100644 index 0000000000..ccf0246381 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/advanced/multi-language.zh-cn.md @@ -0,0 +1,74 @@ +--- +title: "多语言" +weight: 1 +prev: /docs/advanced +--- + +Hextra 支持使用 Hugo 的[多语言模式](https://gohugo.io/content-management/multilingual/) 创建多语言的网站。 + + + +## 启用多语言支持 + +为了使我们的网站支持多语言,我们需要告诉 Hugo 需要支持的语言。 在站点配置文件中添加: + +```yaml {filename="hugo.yaml"} +defaultContentLanguage: en +languages: + en: + languageName: English + weight: 1 + fr: + languageName: Français + weight: 2 + ja: + languageName: 日本語 + weight: 3 +``` + +## 按文件名管理翻译 + +Hugo 支持按文件名管理翻译。例如,如果我们有一个英文文件 `content/docs/_index.md`,我们可以创建一个翻译为法语的文件 `content/docs/_index.fr.md`。 + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="_index.fr.md" >}} + {{< filetree/file name="_index.ja.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +注意:Hugo 还支持[按内容目录管理翻译](https://gohugo.io/content-management/multilingual/#translation-by-content-directory)。 + +## 翻译菜单项 + +要翻译导航栏中的菜单项,我们需要设置 `identifier` 字段: + +```yaml {filename="hugo.yaml"} +menu: + main: + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 1 + - identifier: blog + name: Blog + pageRef: /blog + weight: 2 +``` + +## 翻译字符串 + +要翻译其他地方的字符串,我们需要将翻译添加到相应的 `i18n` 文件中: + +```yaml {filename="i18n/fr.yaml"} +readMore: Lire la suite +``` + +## 更多参考 + +- [Hugo Multilingual Mode](https://gohugo.io/content-management/multilingual/) +- [Hugo Multilingual Part 1: Content translation](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/) +- [Hugo Multilingual Part 2: Strings localization](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-2-i18n-string-localization/) diff --git a/themes/hextra/exampleSite/content/docs/getting-started.fa.md b/themes/hextra/exampleSite/content/docs/getting-started.fa.md new file mode 100644 index 0000000000..e2cc26a398 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/getting-started.fa.md @@ -0,0 +1,190 @@ +--- +title: شروع کنید +weight: 1 +next: /docs/guide +prev: /docs +--- + +## شروع سریع از طریق Template + +{{< icon "github" >}} [imfing/hextra-starter-template](https://github.com/imfing/hextra-starter-template) + +با استفاده از template در بالای صفحه‌ای مخزن می‌توانید به سرعت شروع به کار کنید. + + + +ما یک [گردش کاری GitHub Actions](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) ارائه کرده‌ایم که می‌تواند به ساخت و به‌کاراندازی خودکار سایت شما در گیت‌هاب Pages، برای میزبانی رایگان کمک کند. برای گزینه‌های بیشتر، [به‌کاراندازی سایت](../guide/deploy-site) را بررسی کنید. + +[🌐 نسخه‌ي نمایشی ↖](https://imfing.github.io/hextra-starter-template/) + +## شروع به عنوان پروژه جدید + +دو راه اصلی برای اضافه کردن تم هگزترا به پروژه Hugo وجود دارد: + +1. **ماژول‌های Hugo (توصیه می‌شود)**: ساده‌ترین و توصیه شده‌ترین. [ماژول‌های Hugo](https://gohugo.io/hugo-modules/) به شما امکان می‌دهند تم را مستقیما از منبع آنلاین آن وارد کنید. تم به صورت خودکار دانلود و توسط Hugo مدیریت می‌شود. +2. **ساب‌ماژول گیت**: در عوض، هگزترا را به عنوان یک [ساب‌ماژول گیت](https://git-scm.com/book/en/v2/Git-Tools-Submodules) اضافه کنید. تم توسط گیت دانلود شده و در پوشه `themes` پروژه شما ذخیره می‌شود. + +### هگزترا را به عنوان ماژول Hugo راه‌اندازی کنید + +#### پیش‌نیازها + +قبل از شروع، باید این نرم‌افزارها را نصب کنید: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) +- [Go](https://go.dev/) + +#### مراحل + +{{% steps %}} + +### راه‌انداختن یک سایت جدید Hugo + +```shell +hugo new site my-site --format=yaml +``` + +### پیکربندی تم هگزترا از طریق ‌ماژول + +```shell +# مقداردهی اولیه ماژول هیوگو +cd my-site +hugo mod init github.com/username/my-site + +# افزودن تم هگزترا +hugo mod get github.com/imfing/hextra +``` + +با افزودن موارد زیر، `hugo.yaml` را برای استفاده از تم هگزترا پیکربندی کنید: + +```yaml +module: + imports: + - path: github.com/imfing/hextra +``` + +### اولین صفحه‌های محتوای خود را ایجاد کنید + +ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### پیش‌نمایش سایت به صورت محلی + +```shell +hugo server --buildDrafts --disableFastRender +``` + +پیش‌نمایش سایت جدید شما در `http://localhost:1313/` در دسترس است. + +{{% /steps %}} + + +{{% details title="چگونه تم را به‌روز کنیم؟" %}} + +برای به‌روزرسانی همه ماژول‌های Hugo در پروژه خود به آخرین نسخه‌هایشان، دستور زیر را اجرا کنید: + +```shell +hugo mod get -u +``` + +برای به‌روزرسانی هگزترا به [آخرین نسخه منتشر شده](https://github.com/imfing/hextra/releases)، دستور زیر را اجرا کنید: + +```shell +hugo mod get -u github.com/imfing/hextra +``` + +برای جزئیات بیشتر به [ماژول‌های هیوگو](https://gohugo.io/hugo-modules/use-modules/#update-all-modules) مراجعه کنید. + +{{% /details %}} + +### هگزترا را به عنوان ساب‌ماژول Git راه‌اندازی کنید + +#### پیش‌نیازها + +قبل از شروع، باید این نرم‌افزارها را نصب کنید: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) + +#### مراحل + +{{% steps %}} + +### راه‌انداختن یک سایت جدید Hugo + +```shell +hugo new site my-site --format=yaml +``` + +### افزودن تم هگزترا به عنوان یک ساب‌ماژول Git + +```shell +git submodule add https://github.com/imfing/hextra.git themes/hextra +``` + +با افزودن موارد زیر، `hugo.yaml` را برای استفاده از تم هگزترا پیکربندی کنید: + +```yaml +theme: hextra +``` + +### اولین صفحه‌های محتوای خود را ایجاد کنید + +ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### پیش‌نمایش سایت به صورت محلی + +```shell +hugo server --buildDrafts --disableFastRender +``` + +پیش‌نمایش سایت جدید شما در `http://localhost:1313/` در دسترس است. + +{{% /steps %}} + + +هنگام استفاده از [CI/CD](https://en.wikipedia.org/wiki/CI/CD) برای به‌کاراندازی وب‌سایت Hugo، از اجرای دستور زیر قبل از اجرای دستور `hugo` مطمئن شوید و ضروری است. + +```shell +git submodule update --init +``` + +اجرا نشدن این دستور باعث می‌شود که پوشه تم با پرونده‌های تم هگزترا پر نشود و منجر به خرابی ساخت شود. + + +{{% details title="چگونه تم را به‌روز کنیم؟" %}} + +برای به‌روزرسانی تمام ساب‌ماژول‌های در مخزن خود به آخرین commitها که موجود هست، دستور زیر را اجرا کنید: + +```shell +git submodule update --remote +``` + +برای به‌روزرسانی هگزترا به آخرین commit، دستور زیر را اجرا کنید: + +```shell +git submodule update --remote themes/hextra +``` + +برای جزئیات بیشتر به [ساب‌ماژول‌های Git](https://git-scm.com/book/en/v2/Git-Tools-Submodules) مراجعه کنید. + +{{% /details %}} + +## بعدی + +برای شروع اضافه کردن مطالب بیشتر، بخش‌های زیر را کاوش کنید: + +{{< cards >}} + {{< card link="../guide/organize-files" title="سازماندهی پرونده‌ها" icon="document-duplicate" >}} + {{< card link="../guide/configuration" title="پیکربندی" icon="adjustments" >}} + {{< card link="../guide/markdown" title="مارک‌داون" icon="markdown" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/getting-started.md b/themes/hextra/exampleSite/content/docs/getting-started.md new file mode 100644 index 0000000000..e25ca5cfa3 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/getting-started.md @@ -0,0 +1,192 @@ +--- +title: Getting Started +weight: 1 +next: /docs/guide +prev: /docs +--- + +## Quick Start from Template + +{{< icon "github" >}} [imfing/hextra-starter-template](https://github.com/imfing/hextra-starter-template) + +You could quickly get started by using the above template repository. + + + +We have provided a [GitHub Actions workflow](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) which can help automatically build and deploy your site to GitHub Pages, and host it for free. +For more options, check out [Deploy Site](../guide/deploy-site). + +[🌐 Demo ↗](https://imfing.github.io/hextra-starter-template/) + +## Start as New Project + +There are two main ways to add the Hextra theme to your Hugo project: + +1. **Hugo Modules (Recommended)**: The simplest and recommended method. [Hugo modules](https://gohugo.io/hugo-modules/) let you pull in the theme directly from its online source. Theme is downloaded automatically and managed by Hugo. + +2. **Git Submodule**: Alternatively, add Hextra as a [Git Submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules). The theme is downloaded by Git and stored in your project's `themes` folder. + +### Setup Hextra as Hugo module + +#### Prerequisites + +Before starting, you need to have the following software installed: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) +- [Go](https://go.dev/) + +#### Steps + +{{% steps %}} + +### Initialize a new Hugo site + +```shell +hugo new site my-site --format=yaml +``` + +### Configure Hextra theme via module + +```shell +# initialize hugo module +cd my-site +hugo mod init github.com/username/my-site + +# add Hextra theme +hugo mod get github.com/imfing/hextra +``` + +Configure `hugo.yaml` to use Hextra theme by adding the following: + +```yaml +module: + imports: + - path: github.com/imfing/hextra +``` + +### Create your first content pages + +Create new content page for the home page and the documentation page: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### Preview the site locally + +```shell +hugo server --buildDrafts --disableFastRender +``` + +Voila, your new site preview is available at `http://localhost:1313/`. + +{{% /steps %}} + + +{{% details title="How to update theme?" %}} + +To update all Hugo modules in your project to their latest versions, run the following command: + +```shell +hugo mod get -u +``` + +To update Hextra to the [latest released version](https://github.com/imfing/hextra/releases), run the following command: + +```shell +hugo mod get -u github.com/imfing/hextra +``` + +See [Hugo Modules](https://gohugo.io/hugo-modules/use-modules/#update-all-modules) for more details. + +{{% /details %}} + +### Setup Hextra as Git submodule + +#### Prerequisites + +Before starting, you need to have the following software installed: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) + +#### Steps + +{{% steps %}} + +### Initialize a new Hugo site + +```shell +hugo new site my-site --format=yaml +``` + +### Add Hextra theme as a Git submodule + +```shell +git submodule add https://github.com/imfing/hextra.git themes/hextra +``` + +Configure `hugo.yaml` to use Hextra theme by adding the following: + +```yaml +theme: hextra +``` + +### Create your first content pages + +Create new content page for the home page and the documentation page: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### Preview the site locally + +```shell +hugo server --buildDrafts --disableFastRender +``` + +Your new site preview is available at `http://localhost:1313/`. + +{{% /steps %}} + + +When using [CI/CD](https://en.wikipedia.org/wiki/CI/CD) for Hugo website deployment, it's essential to ensure that the following command is executed before running the `hugo` command. + +```shell +git submodule update --init +``` + +Failure to run this command results in the theme folder not being populated with Hextra theme files, leading to a build failure. + + +{{% details title="How to update theme?" %}} + +To update all submodules in your repository to their latest commits, run the following command: + +```shell +git submodule update --remote +``` + +To update Hextra to the latest commit, run the following command: + +```shell +git submodule update --remote themes/hextra +``` + +See [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) for more details. + +{{% /details %}} + +## Next + +Explore the following sections to start adding more contents: + +{{< cards >}} + {{< card link="../guide/organize-files" title="Organize Files" icon="document-duplicate" >}} + {{< card link="../guide/configuration" title="Configuration" icon="adjustments" >}} + {{< card link="../guide/markdown" title="Markdown" icon="markdown" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/getting-started.zh-cn.md b/themes/hextra/exampleSite/content/docs/getting-started.zh-cn.md new file mode 100644 index 0000000000..1e4c813032 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/getting-started.zh-cn.md @@ -0,0 +1,142 @@ +--- +title: 快速开始 +weight: 1 +next: /docs/guide +prev: /docs +--- + +## 使用模板快速开始 + +{{< icon "github" >}} [imfing/hextra-starter-template](https://github.com/imfing/hextra-starter-template) + +通过使用上面的模板仓库,您将能够快速地开始。 + + + +我们提供了一个 [GitHub Actions 工作流](https://docs.github.com/cn/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow),它可以帮助您自动构建并部署您的网站到 GitHub Pages,并免费托管。 + +[🌐 演示 ↗](https://imfing.github.io/hextra-starter-template/) + +## 作为新项目开始 + +### 前提条件 + +在开始之前,请确保我们已经安装了 [Hugo](https://gohugo.io/)。 +请参考 Hugo 的[官方安装指南](https://gohugo.io/installation/)以获取更多详情。 + +[Hugo 模块](https://gohugo.io/hugo-modules/)是管理 Hugo 主题的推荐方式。要使用 Hugo 模块,我们需要安装 [Git](https://git-scm.com/) 和 [Go](https://go.dev/)。 + +### 初始化 Hugo 站点 + +```shell +hugo new site my-site --format=yaml +``` + +### 通过 Hugo Module 安装 + +```shell +# 初始化 Hugo 模块 +cd my-site +hugo mod init github.com/username/my-site + +# 添加 Hextra +hugo mod get github.com/imfing/hextra +``` + +编辑 `hugo.yaml` 以启用 Hextra: + +```yaml +module: + imports: + - path: github.com/imfing/hextra +``` + +### 通过 Git Submodule 安装 + +#### 先决条件 + +在我们开始之前,你必须先确保以下软件已经安装: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) + +#### 步骤 + +{{% steps %}} + +### 初始化 Hugo 站点 + +```shell +hugo new site my-site --format=yaml +``` + +### 将 Hextra 添加为 Git Submodule + +```shell +git submodule add https://github.com/imfing/hextra.git themes/hextra +``` + +添加以下内容来配置 `hugo.yaml` 以使用 Hextra: + +```yaml +theme: hextra +``` + +### 创建你的第一个内容页 + +让我们为主页和文档页面创建一个新的内容页面: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### 在本地预览站点 + +```shell +hugo server --buildDrafts --disableFastRender +``` + +瞧!你现在可以在 `http://localhost:1313/` 看到你的新站点。 + +{{% /steps %}} + + + + +使用 [CI/CD](https://en.wikipedia.org/wiki/CI/CD) 进行部署时,必须确保在运行 `hugo` 命令之前执行以下命令。 + +```shell +git submodule update --init +``` + +如果不运行此命令,theme 中将不会存在 Hextra 文件,进而导致构建失败。 + + +{{% details title="如何更新主题?" %}} + +如需把项目中所有的 Hugo Modules 都升级到最新,在终端中运行此命令: + +```shell +hugo mod get -u +``` + +如需把 Hextra 升级到[最新的发行版本](https://github.com/imfing/hextra/releases), 在终端中运行此命令: + +```shell +hugo mod get -u github.com/imfing/hextra +``` + +如果你需要获得更多信息,参见 [Hugo Modules](https://gohugo.io/hugo-modules/use-modules/#update-all-modules). + +{{% /details %}} + +## 接下来 + +探索这些文档以便添加更多内容: + +{{< cards >}} + {{< card link="../guide/organize-files" title="Organize Files" icon="document-duplicate" >}} + {{< card link="../guide/configuration" title="Configuration" icon="adjustments" >}} + {{< card link="../guide/markdown" title="Markdown" icon="markdown" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/_index.fa.md b/themes/hextra/exampleSite/content/docs/guide/_index.fa.md new file mode 100644 index 0000000000..f85d763c9e --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/_index.fa.md @@ -0,0 +1,23 @@ +--- +title: راهنما +weight: 2 +prev: /docs/getting-started +next: /docs/guide/organize-files +sidebar: + open: true +--- + +برای یادگیری نحوه استفاده از هگزترا، بخش‌های زیر را کاوش کنید: + + + +{{< cards >}} + {{< card link="organize-files" title="سازماندهی پرونده‌ها" icon="document-duplicate" >}} + {{< card link="configuration" title="پیکربندی" icon="adjustments" >}} + {{< card link="markdown" title="مارک‌داون" icon="markdown" >}} + {{< card link="syntax-highlighting" title="برجسته‌کردن سینتکس" icon="sparkles" >}} + {{< card link="latex" title="LaTeX" icon="variable" >}} + {{< card link="diagrams" title="نمودارها" icon="chart-square-bar" >}} + {{< card link="shortcodes" title="کدهای کوتاه" icon="template" >}} + {{< card link="deploy-site" title="به‌کاراندازی سایت" icon="server" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/_index.md b/themes/hextra/exampleSite/content/docs/guide/_index.md new file mode 100644 index 0000000000..2fd2a3f9a7 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/_index.md @@ -0,0 +1,23 @@ +--- +title: Guide +weight: 2 +prev: /docs/getting-started +next: /docs/guide/organize-files +sidebar: + open: true +--- + +Explore the following sections to learn how to use Hextra: + + + +{{< cards >}} + {{< card link="organize-files" title="Organize Files" icon="document-duplicate" >}} + {{< card link="configuration" title="Configuration" icon="adjustments" >}} + {{< card link="markdown" title="Markdown" icon="markdown" >}} + {{< card link="syntax-highlighting" title="Syntax Highlighting" icon="sparkles" >}} + {{< card link="latex" title="LaTeX" icon="variable" >}} + {{< card link="diagrams" title="Diagrams" icon="chart-square-bar" >}} + {{< card link="shortcodes" title="Shortcodes" icon="template" >}} + {{< card link="deploy-site" title="Deploy Site" icon="server" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/_index.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/_index.zh-cn.md new file mode 100644 index 0000000000..c388146e03 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/_index.zh-cn.md @@ -0,0 +1,22 @@ +--- +title: 指南 +weight: 2 +prev: /docs/getting-started +next: /docs/guide/organize-files +sidebar: + open: true +--- + +探索以下各节以学习如何使用 Hextra 编写内容: + + + +{{< cards >}} + {{< card link="organize-files" title="目录结构" icon="document-duplicate" >}} + {{< card link="configuration" title="配置" icon="adjustments" >}} + {{< card link="markdown" title="Markdown" icon="markdown" >}} + {{< card link="syntax-highlighting" title="代码高亮" icon="sparkles" >}} + {{< card link="latex" title="LaTeX 公式" icon="variable" >}} + {{< card link="diagrams" title="图表" icon="chart-square-bar" >}} + {{< card link="shortcodes" title="短代码" icon="template" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/configuration.fa.md b/themes/hextra/exampleSite/content/docs/guide/configuration.fa.md new file mode 100644 index 0000000000..4b5ce34089 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/configuration.fa.md @@ -0,0 +1,271 @@ +--- +title: پیکربندی +weight: 2 +--- + +Hugo پیکربندی خود را از `hugo.yaml` در ریشه سایت Hugo شما می‌خواند. + پرونده پیکربندی جایی است که می‌توانید تمام جنبه‌های سایت خود را پیکربندی کنید. + پرونده پیکربندی این سایت [`exampleSite/hugo.yaml`](https://github.com/imfing/hextra/blob/main/exampleSite/hugo.yaml) را در گیت‌هاب بررسی کنید تا ایده‌ای جامع از تنظیمات موجود و بهترین شیوه‌ها بدست آورید. + + + +## ناوبری + +### منو + +منوی سمت چپ بالا در قسمت `menu.main` در پرونده پیکربندی تعریف شده است: + +```yaml {filename="hugo.yaml"} +menu: + main: + - name: مستندات + pageRef: /docs + weight: 1 + - name: وبلاگ + pageRef: /blog + weight: 2 + - name: درباره ما + pageRef: /about + weight: 3 + - name: جستجو + weight: 4 + params: + type: search + - name: گیت‌هاب + weight: 5 + url: "https://github.com/imfing/hextra" + params: + icon: github +``` + +انواع مختلفی از آیتم‌های منو وجود دارد: + +1. پیوند به صفحه‌ای در سایت با `pageRef` + ```yaml + - name: مستندات + pageRef: /docs + ``` +2. پیوند به یک نشانی اینترنتی با `url` + ```yaml + - name: گیت‌هاب + url: "https://github.com" + ``` +3. نوار جستجو با `type: search` + ```yaml + - name: جستجو + params: + type: search + ``` +4. آیکون + ```yaml + - name: گیت‌هاب + params: + icon: github + ``` + +این آیتم‌های منو را می‌توانید با تنظیم پارامتر `weight` مرتب کنید. + +### آرم و عنوان + +برای تغییر آرم پیش‌فرض، `hugo.yaml` را ویرایش کنید و مسیر را به پرونده آرم خود در دایرکتوری `static` اضافه کنید. + به صورت اختیاری، می‌توانید پیوندی را که کاربران هنگام کلیک کردن روی آرم شما به آن هدایت می‌شوند، تغییر دهید، همچنین عرض و ارتفاع آرم را به پیکسل تنظیم کنید. + +```yaml {filename="hugo.yaml"} +params: + navbar: + displayTitle: true + displayLogo: true + logo: + path: images/logo.svg + dark: images/logo-dark.svg + link: / + width: 40 + height: 20 +``` + +## نوار کناری + +### نوار کناری اصلی + +برای نوار کناری اصلی، به طور خودکار از ساختار دایرکتوری محتوا تولید می‌شود. + برای جزئیات بیشتر به صفحه [سازماندهی پرونده‌ها](/fa/docs/guide/organize-files) مراجعه کنید. + +برای حذف یک صفحه از نوار کناری سمت راست، پارامتر`sidebar.exclude` را در قسمت بالایی صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +sidebar: + exclude: true +--- +``` + +### پیوندهای اضافی + +پیوندهای اضافی نوار کناری در زیر بخش `menu.sidebar` در پرونده پیکربندی تعریف شده است: + +```yaml {filename="hugo.yaml"} +menu: + sidebar: + - name: بیشتر + params: + type: separator + weight: 1 + - name: "درباره ما" + pageRef: "/about" + weight: 2 + - name: "مستندات هیوگو ↖" + url: "https://gohugo.io/documentation/" + weight: 3 +``` + +## نوار کناری سمت چپ + +### فهرست مطالب + +فهرست مطالب به طور خودکار از سرتیرهای موجود در پرونده محتوا تولید می‌شود. می‌توان آن را با تنظیم `toc: false` در قسمت بالایی صفحه غیرفعال کرد. + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +toc: false +--- +``` + +### پیوند ویرایش صفحه + +برای پیکربندی پیوند ویرایش صفحه، می‌توانیم پارامتر `params.editURL.base` را در پرونده پیکربندی تنظیم کنیم: + +```yaml {filename="hugo.yaml"} +params: + editURL: + enable: true + base: "https://github.com/your-username/your-repo/edit/main" +``` + +پیوندهای ویرایش به طور خودکار برای هر صفحه براساس نشانی اینترنتی ارائه شده به عنوان دایرکتوری ریشه ایجاد می‌شود. + اگر می‌خواهید پیوند ویرایش را برای یک صفحه خاص تنظیم کنید، می‌توانید پارامتر `editURL` را در قسمت بالای صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +editURL: "https://example.com/edit/this/page" +--- +``` + +## پاورقی + +### کپی‌رایت + +برای تغییر متن کپی‌رایت نمایش داده شده در پاورقی وب‌سایت خود، باید پرونده‌ای به نام `i18n/fa.yaml` ایجاد کنید. + در این پرونده متن کپی‌رایت جدید خود را مطابق شکل زیر مشخص کنید: + +```yaml {filename="i18n/fa.yaml"} +copyright: "© ۲۰۲۴ متن شما در اینجا" +``` + +برای مرجع شما، یک مثال [`i18n/en.yaml`](https://github.com/imfing/hextra/blob/main/i18n/en.yaml) را می‌توانید در مخزن گیت‌هاب پیدا کنید. علاوه بر این، می‌توانید از فرمت مارک‌داون در متن کپی‌رایت استفاده کنید. + +## سایر موارد + +### Favicon + +برای سفارشی کردن [favicon](https://en.wikipedia.org/wiki/Favicon) برای سایت خود، پرونده‌های آیکون را درون پوشه `static` قرار دهید تا [faviconهای پیش‌فرض در تم](https://github.com/imfing/hextra/tree/main/static) جایگزین شود: + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/file name="android-chrome-192x192.png" >}} + {{< filetree/file name="android-chrome-512x512.png" >}} + {{< filetree/file name="apple-touch-icon.png" >}} + {{< filetree/file name="favicon-16x16.png" >}} + {{< filetree/file name="favicon-32x32.png" >}} + {{< filetree/file name="favicon-dark.svg" >}} + {{< filetree/file name="favicon.ico" >}} + {{< filetree/file name="favicon.svg" >}} + {{< filetree/file name="site.webmanifest" >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +هر دو پرونده `favicon.ico` و `favicon.svg` را در پروژه خود قرار دهید، تا از نمایش صحیح faviconهای سایت خود مطمئن شوید. + +در حالی که `favicon.ico` به طور کلی برای مرورگرهای قدیمی‌تر است، `favicon.svg` توسط مرورگرهای مدرن پشتیبانی می‌شود. favicon`favicon-dark.svg` اختیاری را می‌توانید برای یک تجربه سفارشی در حالت تیره اضافه کرد. + با خیال راحت از ابزارهایی مانند [favicon.io](https://favicon.io/) یا [favycon](https://github.com/ruisaraiva19/favycon) برای تولید این آیکون‌ها استفاده کنید. + +### پیکربندی تم + +از تنظیمات `theme` برای پیکربندی حالت پیش‌فرض تم و دکمه جابه‌جایی استفاده کنید و به بازدیدکنندگان اجازه دهید بین حالت روشن یا تیره جابجا شوند. + +```yaml {filename="hugo.yaml"} +params: + theme: + # light | dark | system + default: system + displayToggle: true +``` + +گزینه‌های `theme.default`: + +- `light` - همیشه از حالت روشن استفاده شود +- `dark` - همیشه از حالت تیره استفاده شود +- `system` - همگام‌سازی با تنظیمات سیستم‌عامل (پیش‌فرض) + +پارامتر `theme.displayToggle` به شما این امکان را می‌دهد که یک دکمه جابجایی برای تغییر حالت تم‌ها نمایش دهید. + وقتی روی `true` تنظیم شود، بازدیدکنندگان می‌توانند بین حالت روشن یا تیره جابه‌جا شوند و تنظیمات پیش‌فرض را نادیده بگیرند. + +### عرض صفحه + +عرض صفحه را می‌توان با پارامتر `params.page.width` در پرونده پیکربندی سفارشی کرد: + +```yaml {filename="hugo.yaml"} +params: + page: + # full (100%), wide (90rem), normal (1280px) + width: wide +``` + +سه گزینه در دسترس وجود دارد: `full`، `wide` و normal`. به طور پیش‌فرض، عرض صفحه روی normal` تنظیم شده است. + +به طور مشابه، عرض نوار ناوبری و پاورقی را می‌توان با پارامترهای `params.navbar.width` و `params.footer.width` سفارشی کرد. + +### فهرست جستجو + +جستجوی متن کامل توسط [FlexSearch](https://github.com/nextapps-de/flexsearch) پیاده‌سازی شده و به طور پیش‌فرض فعال است. + برای سفارشی کردن فهرست جستجو، پارامتر `params.search.flexsearch.index` را در پرونده پیکربندی تنظیم کنید: + +```yaml {filename="hugo.yaml"} +params: + # Search + search: + enable: true + type: flexsearch + + flexsearch: + # index page by: content | summary | heading | title + index: content +``` + +گزینه‌های `flexsearch.index`: + +- `content` - محتوای کامل صفحه (پیش‌فرض) +- `summary` - خلاصه صفحه، برای جزئیات بیشتر به [خلاصه مطالب Hugo](https://gohugo.io/content-management/summaries/) مراجعه کنید +- `heading` - سرتیترهای سطح ۱ و سطح ۲ +- `title` - فقط شامل عنوان صفحه است + +برای حذف یک صفحه از فهرست جستجو، `excludeSearch: true` را در قسمت بالای صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +excludeSearch: true +--- +``` + +### گوگل آنالیتیکس + +برای فعال کردن [گوگل آنالیتیکس](https://marketingplatform.google.com/about/analytics/)، پرچم `services.googleAnalytics.ID` را در `hugo.yaml` تنظیم کنید: + +```yaml {filename="hugo.yaml"} +services: + googleAnalytics: + ID: G-MEASUREMENT_ID +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/configuration.md b/themes/hextra/exampleSite/content/docs/guide/configuration.md new file mode 100644 index 0000000000..9c7a8f64f2 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/configuration.md @@ -0,0 +1,288 @@ +--- +title: Configuration +weight: 2 +--- + +Hugo reads its configuration from `hugo.yaml` in the root of your Hugo site. +The config file is where you can configure all aspects of your site. +Check out the config file for this site [`exampleSite/hugo.yaml`](https://github.com/imfing/hextra/blob/main/exampleSite/hugo.yaml) on GitHub to get a comprehensive idea of available settings and best practices. + + + +## Navigation + +### Menu + +Top right menu is defined under the `menu.main` section in the config file: + +```yaml {filename="hugo.yaml"} +menu: + main: + - name: Documentation + pageRef: /docs + weight: 1 + - name: Blog + pageRef: /blog + weight: 2 + - name: About + pageRef: /about + weight: 3 + - name: Search + weight: 4 + params: + type: search + - name: GitHub + weight: 5 + url: "https://github.com/imfing/hextra" + params: + icon: github +``` + +There are different types of menu items: + +1. Link to a page in the site with `pageRef` + ```yaml + - name: Documentation + pageRef: /docs + ``` +2. Link to an external URL with `url` + ```yaml + - name: GitHub + url: "https://github.com" + ``` +3. Search bar with `type: search` + ```yaml + - name: Search + params: + type: search + ``` +4. Icon + ```yaml + - name: GitHub + params: + icon: github + ``` + +These menu items can be sorted by setting the `weight` parameter. + +### Logo and Title + +To modify the default logo, edit `hugo.yaml` and add the path to your logo file under `static` directory. +Optionally, you can change the link that users are redirected to when clicking on your logo, as well as set the width & height of the logo in pixels. + +```yaml {filename="hugo.yaml"} +params: + navbar: + displayTitle: true + displayLogo: true + logo: + path: images/logo.svg + dark: images/logo-dark.svg + link: / + width: 40 + height: 20 +``` + +## Sidebar + +### Main Sidebar + +For the main sidebar, it is automatically generated from the structure of the content directory. +See the [Organize Files](/docs/guide/organize-files) page for more details. + +To exclude a single page from the left sidebar, set the `sidebar.exclude` parameter in the front matter of the page: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +sidebar: + exclude: true +--- +``` + +### Extra Links + +Sidebar extra links are defined under the `menu.sidebar` section in the config file: + +```yaml {filename="hugo.yaml"} +menu: + sidebar: + - name: More + params: + type: separator + weight: 1 + - name: "About" + pageRef: "/about" + weight: 2 + - name: "Hugo Docs ↗" + url: "https://gohugo.io/documentation/" + weight: 3 +``` + +## Right Sidebar + +### Table of Contents + +Table of contents is automatically generated from the headings in the content file. It can be disabled by setting `toc: false` in the front matter of the page. + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +toc: false +--- +``` + +### Page Edit Link + +To configure the page edit link, we can set the `params.editURL.base` parameter in the config file: + +```yaml {filename="hugo.yaml"} +params: + editURL: + enable: true + base: "https://github.com/your-username/your-repo/edit/main" +``` + +The edit links will be automatically generated for each page based on the provided url as root directory. +If you want to set edit link for a specific page, you can set the `editURL` parameter in the front matter of the page: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +editURL: "https://example.com/edit/this/page" +--- +``` + +## Footer + +### Copyright + +To modify the copyright text displayed in your website's footer, you'll need to create a file named `i18n/en.yaml`. +In this file, specify your new copyright text as shown below: + +```yaml {filename="i18n/en.yaml"} +copyright: "© 2024 YOUR TEXT HERE" +``` + +For your reference, an example [`i18n/en.yaml`](https://github.com/imfing/hextra/blob/main/i18n/en.yaml) file can be found in the GitHub repository. Additionally, you could use Markdown format in the copyright text. + +## Others + +### Favicon + +To customize the [favicon](https://en.wikipedia.org/wiki/Favicon) for your site, place icon files under the `static` folder to override the [default favicons from the theme](https://github.com/imfing/hextra/tree/main/static): + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/file name="android-chrome-192x192.png" >}} + {{< filetree/file name="android-chrome-512x512.png" >}} + {{< filetree/file name="apple-touch-icon.png" >}} + {{< filetree/file name="favicon-16x16.png" >}} + {{< filetree/file name="favicon-32x32.png" >}} + {{< filetree/file name="favicon-dark.svg" >}} + {{< filetree/file name="favicon.ico" >}} + {{< filetree/file name="favicon.svg" >}} + {{< filetree/file name="site.webmanifest" >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Include `favicon.ico`, `favicon.svg` and `favicon-dark.svg` files in your project to ensure your site's favicons display correctly. + +While `favicon.ico` is generally for older browsers, `favicon.svg` and `favicon-dark.svg` are supported by modern browsers. +Use tools like [favicon.io](https://favicon.io/) or [favycon](https://github.com/ruisaraiva19/favycon) to generate such icons. + +### Theme Configuration + +Use the `theme` setting to configure the default theme mode and toggle button, allowing visitors to switch between light or dark mode. + +```yaml {filename="hugo.yaml"} +params: + theme: + # light | dark | system + default: system + displayToggle: true +``` + +Options for `theme.default`: + +- `light` - always use light mode +- `dark` - always use dark mode +- `system` - sync with the operating system setting (default) + +The `theme.displayToggle` parameter allows you to display a toggle button for changing themes. +When set to `true`, visitors can switch between light or dark mode, overriding the default setting. + +### Page Width + +The width of the page can be customized by the `params.page.width` parameter in the config file: + +```yaml {filename="hugo.yaml"} +params: + page: + # full (100%), wide (90rem), normal (1280px) + width: wide +``` + +There are three available options: `full`, `wide`, and `normal`. By default, the page width is set to `normal`. + +Similarly, the width of the navbar and footer can be customized by the `params.navbar.width` and `params.footer.width` parameters. + +### Search Index + +Full-text search powered by [FlexSearch](https://github.com/nextapps-de/flexsearch) is enabled by default. +To customize the search index, set the `params.search.flexsearch.index` parameter in the config file: + +```yaml {filename="hugo.yaml"} +params: + # Search + search: + enable: true + type: flexsearch + + flexsearch: + # index page by: content | summary | heading | title + index: content +``` + +Options for `flexsearch.index`: + +- `content` - full content of the page (default) +- `summary` - summary of the page, see [Hugo Content Summaries](https://gohugo.io/content-management/summaries/) for more details +- `heading` - level 1 and level 2 headings +- `title` - only include the page title + +To customize the search tokenize, set the `params.search.flexsearch.tokenize` parameter in the config file: + +```yaml {filename="hugo.yaml"} +params: + # ... + flexsearch: + # full | forward | reverse | strict + tokenize: forward +``` + +Options for [`flexsearch.tokenize`](https://github.com/nextapps-de/flexsearch/#tokenizer-prefix-search): + +- `strict` - index whole words +- `forward` - incrementally index words in forward direction +- `reverse` - incrementally index words in both directions +- `full` - index every possible combination + +To exclude a page from the search index, set the `excludeSearch: true` in the front matter of the page: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +excludeSearch: true +--- +``` + +### Google Analytics + +To enable [Google Analytics](https://marketingplatform.google.com/about/analytics/), set `services.googleAnalytics.ID` flag in `hugo.yaml`: + +```yaml {filename="hugo.yaml"} +services: + googleAnalytics: + ID: G-MEASUREMENT_ID +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/configuration.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/configuration.zh-cn.md new file mode 100644 index 0000000000..d95289b0bd --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/configuration.zh-cn.md @@ -0,0 +1,258 @@ +--- +title: 配置文件 +weight: 2 +--- + +Hugo 从 Hugo 网站根目录下的 `hugo.yaml` 读取配置。 +在配置文件中,您可以配置站点的所有选项。 +你可以在 `exampleSite/hugo.yaml` 中找到此站点的配置文件作为开始。 + + + +## 导航栏 + +### 菜单 + +右上角的菜单在配置文件的 `menu.main` 中配置: + +```yaml {filename="hugo.yaml"} +menu: + main: + - name: Documentation + pageRef: /docs + weight: 1 + - name: Blog + pageRef: /blog + weight: 2 + - name: About + pageRef: /about + weight: 3 + - name: Search + weight: 4 + params: + type: search + - name: GitHub + weight: 5 + url: "https://github.com/imfing/hextra" + params: + icon: github +``` + +有几种不同类型的菜单项: + +1. Link to a page in the site with `pageRef` + ```yaml + - name: Documentation + pageRef: /docs + ``` +2. Link to an external URL with `url` + ```yaml + - name: GitHub + url: "https://github.com" + ``` +3. Search bar with `type: search` + ```yaml + - name: Search + params: + type: search + ``` +4. Icon + ```yaml + - name: GitHub + params: + icon: github + ``` + +这些菜单项可以通过设置 `weight` 进行排序。 + +## 侧边栏 + +### 主侧边栏 + +主侧边栏是自动从 `content` 目录结构生成的。 +有关更多详细信息,转至 [目录结构](/docs/guide/organize-files)。 + +### 额外链接 + +侧边栏的额外链接在配置文件的 `menu.sidebar` 部分中配置: + +```yaml {filename="hugo.yaml"} +menu: + sidebar: + - name: More + params: + type: separator + weight: 1 + - name: "About" + pageRef: "/about" + weight: 2 + - name: "Hugo Docs ↗" + url: "https://gohugo.io/documentation/" + weight: 3 +``` + +## 右侧边栏 + +### 目录 + +目录是根据内容文件中的标题自动生成的,可以在 `front matter` 设置 `toc:false` 来禁用它。 + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +toc: false +--- +``` + +### 编辑此页链接 + +要配置编辑此页链接,我们可以在配置文件中设置 `params.editURL.base`: +```yaml {filename="hugo.yaml"} +params: + editURL: + base: "https://github.com/your-username/your-repo/edit/main" +``` + +将为每个页面自动生成编辑链接。 +如需为特定页面设置编辑链接,可以在页面的 `front matter` 中设置 `editURL`: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +editURL: "https://example.com/edit/this/page" +--- +``` +## Footer + +### 版权声明 + +如需修改网站页脚中显示的版权文本,您需要创建一个名为“i18n/en.yaml”的文件。 +在此文件中,填写新的版权文本,像这样: + +```yaml {filename="i18n/en.yaml"} +copyright: "© 2024 YOUR TEXT HERE" +``` +你可以在 GitHub 存储库中找到示例 [`i18n/en.yaml`](https://github.com/imfing/hextra/blob/main/i18n/en.yaml) 文件。另外,你可以在版权文本中使用 Markdown 格式。 + +## 其他 + +### Favicon + +如需自定义 [favicon](https://en.wikipedia.org/wiki/Favicon),请将图标文件放在 `static` 文件夹下以覆盖 [主题中的默认 favicon](https://github.com/imfing/hextra/tree/main/static): + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/file name="android-chrome-192x192.png" >}} + {{< filetree/file name="android-chrome-512x512.png" >}} + {{< filetree/file name="apple-touch-icon.png" >}} + {{< filetree/file name="favicon-16x16.png" >}} + {{< filetree/file name="favicon-32x32.png" >}} + {{< filetree/file name="favicon-dark.svg" >}} + {{< filetree/file name="favicon.ico" >}} + {{< filetree/file name="favicon.svg" >}} + {{< filetree/file name="site.webmanifest" >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +在您的项目中包含 `favicon.ico` 和 `favicon.svg` 文件,以确保网站的网站图标正确显示。 + +虽然 `favicon.ico` 通常适用于较旧的浏览器,但 `favicon.svg` 受到现代浏览器的支持,所以更现代的做法是添加 `favicon-dark.svg` 以便在黑暗模式下提供较好的体验体验。 + +请随意使用 [favicon.io](https://favicon.io/) 或 [favycon](https://github.com/ruisaraiva19/favycon) 等工具来生成这些图标。 + +### 颜色主题配置 + +使用`theme`设置来配置默认主题模式和切换按钮,允许访问者在浅色或深色模式之间切换。 + +```yaml {filename="hugo.yaml"} +params: + theme: + # light | dark | system + default: system + displayToggle: true +``` + +`theme.default` 的可选项: + +- `light` - 仅使用浅色模式 +- `dark` - 仅使用神色模式 +- `system` - 跟随系统 + +`theme.displayToggle` 控制显示用于更改主题的切换按钮。 +当设置为“true”时,访问者可以在浅色或深色模式之间切换,覆盖默认设置。 + +### 页宽 + +页面的宽度可以通过配置文件中的`params.page.width`参数来调整: + +```yaml {filename="hugo.yaml"} +params: + page: + # full (100%), wide (90rem), normal (1280px) + width: wide +``` + +有三个可选项:`full`, `wide`, and `normal`. 默认的页宽模式是 `normal`. + +同样的,导航栏和 `footer` 的宽度也可通过 `params.navbar.width` 和 `params.footer.width` 调整。 + +### 搜索 + +默认情况下启用由 [FlexSearch](https://github.com/nextapps-de/flexsearch) 提供全文搜索。 +要自定义搜索索引,请在配置文件中设置 `params.search.flexsearch.index` : + +```yaml {filename="hugo.yaml"} +params: + # Search + search: + enable: true + type: flexsearch + + flexsearch: + # index page by: content | summary | heading | title + index: content +``` +`flexsearch.index` 的可选项: + +- `content` - 全内容搜索 +- `summary` - 概述 [Hugo Content Summaries](https://gohugo.io/content-management/summaries/) +- `heading` - 一级和二级标题 +- `title` - 仅搜索标题 + +要自定义检索分词,请在配置文件中设置`params.search.flexsearch.tokenize`: + +```hugo.yaml +params: + # ... + flexsearch: + # full | forward | reverse | strict + tokenize: forward +``` + +[`flexsearch.tokenize`](https://github.com/nextapps-de/flexsearch/#tokenizer-prefix-search)的可选项: + +- `strict` - 严格单词匹配 +- `forward` - 单词前缀匹配 +- `reverse` - 单词前后缀匹配 +- `full` - 单词子串匹配。 + +> 在默认的分词逻辑下,中文一句话就是一个“单词” + +要从搜索索引中排除页面,更改 front matter 中的 `excludeSearch: true`: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: Configuration +excludeSearch: true +--- +``` + +### Google Analytics + +要启用 [Google Analytics](https://marketingplatform.google.com/about/analytics/),设置 `services.googleAnalytics.ID`: + +```yaml {filename="hugo.yaml"} +services: + googleAnalytics: + ID: G-MEASUREMENT_ID +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/deploy-site.fa.md b/themes/hextra/exampleSite/content/docs/guide/deploy-site.fa.md new file mode 100644 index 0000000000..4635993e61 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/deploy-site.fa.md @@ -0,0 +1,162 @@ +--- +title: به‌کاراندازی سایت +prev: /docs/guide/shortcodes +next: /docs/advanced +--- + +Hugo وب‌سایت‌های استاتیک را ایجاد می‌کند و امکان گزینه‌های میزبانی انعطاف‌پذیر را فراهم می‌کند. + این صفحه راهنماهایی برای به‌کاراندازی سایت هگزترا شما در پلتفرم‌های مختلف ارائه می‌کند. + + + + + +## گیت‌هاب Pages + +[گیت‌هاب Pages](https://docs.github.com/pages) روشی توصیه شده برای به‌کاراندازی و میزبانی وب‌سایت شما به صورت رایگان است. + +اگر سایت را با استفاده از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) راه‌اندازی سریع پیاده‌سازی می‌کنید، گردش کار گیت‌هاب Actions را به صورت خارج از جعبه ارائه کرده‌ایم که به‌کاراندازی خودکار در گیت‌هاب Pages به شما کمک می‌کند. + +{{% details title="پیکربندی گیت‌هاب Actions" closed="true" %}} + +در زیر یک پیکربندی مثال از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) آورده شده است: + +```yaml {filename=".github/workflows/pages.yaml"} +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.117.0 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.117.0' + extended: true + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 +``` + +{{% /details %}} + + +{{< callout >}} + در تنظیمات مخزن خود، **Pages** > **Build and deployment** > **Source** را روی **GitHub Actions** تنظیم کنید: + ![](https://user-images.githubusercontent.com/5097752/266784808-99676430-884e-42ab-b901-f6534a0d6eee.png) +{{< /callout >}} + +به‌طور پیش‌فرض، گردش کار گیت‌هاب Actions بالا `.github/workflows/pages.yaml` فرض می‌کند که سایت در حال به‌کاراندازی در `https://.github.io//` است. + +اگر در حال استفاده از `https://.github.io/` هستید، سپس `--baseURL` را تغییر دهید: + +```yaml {filename=".github/workflows/pages.yaml",linenos=table,linenostart=54,hl_lines=[4]} +run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/" +``` + +اگر می‌خواهید روی دامنه شخصی خود استقرار پیدا کند، لطفا مقدار `--baseURL` را بر این اساس تغییر دهید. + + +## کلودفلر Pages + +1. کد منبع سایت خود را در یک مخزن Git (به عنوان مثال گیت‌هاب) قرار دهید +2. وارد [پیشخوان کلودفلر](https://dash.cloudflare.com/) شوید و حساب خود را انتخاب کنید +3. در صفحه اصلی حساب‌کاربری، **Workers & Pages** > **Create application** > **Pages** > **Connect to Git** را انتخاب کنید +4. مخزن را انتخاب کنید و در بخش Set up builds and Deployments اطلاعات زیر را وارد کنید: + +| Configuration | Value | +| ----------------- | -------------------- | +| Production branch | `main` | +| Build command | `hugo --gc --minify` | +| Build directory | `public` | + +برای جزئیات بیشتر، بررسی کنید: +- [یک سایت هیوگو راه‌اندازی کنید.](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/#deploy-with-cloudflare-pages). +- [پشتیبانی زبان و ابزار.](https://developers.cloudflare.com/pages/platform/language-support-and-tools/). + + +## Netlify + +1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید. +2. [وارد کردن پروژه](https://app.netlify.com/start) به Netlify +3. اگر از [hextra-starter-template][hextra-starter-template] استفاده نمی‌کنید، موارد زیر را به صورت دستی پیکربندی کنید: + - دستور Build را روی `hugo --gc --minify` پیکربندی کنید + - دایرکتوری Publish را برای `public` مشخص کنید + - `HUGO_VERSION` متغیر محیط استقرار را اضافه کنید و روی `0.119.0` تنظیم کنید +4. استقرار! + +برای جزئیات بیشتر [Hugo را در Netlify](https://docs.netlify.com/integrations/frameworks/hugo/) بررسی کنید. + + +## Vercel + +1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید. +2. به [پیشخوان Vercel](https://vercel.com/dashboard) بروید و پروژه Hugo خود را وارد کنید +3. پروژه را پیکربندی کنید، Hugo را به‌ عنوان چارچوب Preset انتخاب کنید +4. دستور Build و Install را لغو کنید: + 1. دستور Build را روی `hugo --gc --minify` تنظیم کنید + 2. دستور Install را روی `yum install golang` تنظیم کنید + +![پیکربندی استقرار Vercel](https://github.com/imfing/hextra/assets/5097752/887d949b-8d05-413f-a2b4-7ab92192d0b3) diff --git a/themes/hextra/exampleSite/content/docs/guide/deploy-site.md b/themes/hextra/exampleSite/content/docs/guide/deploy-site.md new file mode 100644 index 0000000000..57103f658a --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/deploy-site.md @@ -0,0 +1,164 @@ +--- +title: Deploy Site +prev: /docs/guide/shortcodes +next: /docs/advanced +--- + +Hugo generates static websites, allowing for flexible hosting options. +This page provides guides for deploying your Hextra site on various platforms. + + + + +## GitHub Pages + +[GitHub Pages](https://docs.github.com/pages) is the recommended way to deploy and host your website for free. + +If you bootstrap the site using [hextra-starter-template](https://github.com/imfing/hextra-starter-template), it has provided GitHub Actions workflow out-of-the-box that helps automatically deploy to GitHub Pages. + +{{% details title="GitHub Actions Configuration" closed="true" %}} + +Below is an example configuration from [hextra-starter-template](https://github.com/imfing/hextra-starter-template): + +```yaml {filename=".github/workflows/pages.yaml"} +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.131.0 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # fetch all history for .GitInfo and .Lastmod + submodules: recursive + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + - name: Setup Hugo + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc --minify \ + --baseURL "${{ steps.pages.outputs.base_url }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 +``` + +{{% /details %}} + + +{{< callout >}} + In your repository settings, set the **Pages** > **Build and deployment** > **Source** to **GitHub Actions**: + ![](https://user-images.githubusercontent.com/5097752/266784808-99676430-884e-42ab-b901-f6534a0d6eee.png) +{{< /callout >}} + +By default, the above GitHub Actions workflow `.github/workflows/pages.yaml` assumes that the site is deploying to `https://.github.io//`. + +If you are deploying to `https://.github.io/` then modify the `--baseURL`: + +```yaml {filename=".github/workflows/pages.yaml",linenos=table,linenostart=54,hl_lines=[4]} +run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/" +``` + +If you are deploying to your own domain, please change the `--baseURL` value accordingly. + + +## Cloudflare Pages + +1. Put your site source code in a Git repository (e.g. GitHub) +2. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/) and select your account +3. In Account Home, select **Workers & Pages** > **Create application** > **Pages** > **Connect to Git** +4. Select the repository, and in the **Set up builds and deployments** section, provide the following information: + +| Configuration | Value | +| ----------------- | -------------------- | +| Production branch | `main` | +| Build command | `hugo --gc --minify` | +| Build directory | `public` | + +For more details, check out: +- [Deploy a Hugo site](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/#deploy-with-cloudflare-pages). +- [Language support and tools](https://developers.cloudflare.com/pages/platform/language-support-and-tools/). + + +## Netlify + +1. Push your code to your Git repository (GitHub, GitLab, etc.) +2. [Import the project](https://app.netlify.com/start) to Netlify +3. If you are not using [hextra-starter-template][hextra-starter-template], configure the following manually: + - Configure the Build command to `hugo --gc --minify` + - Specify the Publish directory to `public` + - Add Environment variable `HUGO_VERSION` and set to `0.132.2` +4. Deploy! + +Check [Hugo on Netlify](https://docs.netlify.com/integrations/frameworks/hugo/) for more details. + + +## Vercel + +1. Push your code to your Git repository (GitHub, GitLab, etc.) +2. Go to [Vercel Dashboard](https://vercel.com/dashboard) and import your Hugo project +3. Configure the project, select Hugo as Framework Preset +4. Override the Build Command and Install command: + 1. Set Build Command to `hugo --gc --minify` + 2. Set Install Command to `yum install golang` + +![Vercel Deployment Configuration](https://github.com/imfing/hextra/assets/5097752/887d949b-8d05-413f-a2b4-7ab92192d0b3) diff --git a/themes/hextra/exampleSite/content/docs/guide/deploy-site.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/deploy-site.zh-cn.md new file mode 100644 index 0000000000..590ee0724e --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/deploy-site.zh-cn.md @@ -0,0 +1,164 @@ +--- +title: 部署站点 +prev: /docs/guide/shortcodes +next: /docs/advanced +--- + +Hugo 生成静态站点,允许多种托管方式,你可以自由选择 +本页将给出部署你的 Hextra 站点的方法 + + + + +## GitHub Pages + +[GitHub Pages](https://docs.github.com/pages) 是免费部署和托管网站的推荐方法 + +如果您使用以下方式引导该网站 [hextra-starter-template](https://github.com/imfing/hextra-starter-template), 它提供了开箱即用的 GitHub Actions 工作流程,有助于自动部署到 GitHub Pages + +{{% details title="GitHub Actions Configuration" closed="true" %}} + +以下是配置来自 [hextra-starter-template](https://github.com/imfing/hextra-starter-template) 的 Workflow 的示例: + +```yaml {filename=".github/workflows/pages.yaml"} +# 用于构建 Hugo 站点并将其部署到 GitHub Pages 的示例工作流程 +name: Deploy Hugo site to Pages + +on: + # 由默认分支触发 + push: + branches: ["main"] + + # 允许手动运行 + workflow_dispatch: + +# 设置 GITHUB_TOKEN 的权限以允许部署到 GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# 仅允许一项并发部署,跳过正在进行的运行和最新排队的运行之间排队的运行 +# 但是,不要取消正在进行的运行,因为我们希望完成这些生产部署 +concurrency: + group: "pages" + cancel-in-progress: false + +# 默认为 bash +defaults: + run: + shell: bash + +jobs: + # 开始构建 + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.121.2 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # 获取 .GitInfo 和 .Lastmod 的所有历史记录 + submodules: recursive + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + - name: Setup Hugo + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Build with Hugo + env: + # 最大程度地向后兼容 Hugo 模块 + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc --minify \ + --baseURL "${{ steps.pages.outputs.base_url }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./public + + # 开始部署 + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 +``` + +{{% /details %}} + + +{{< callout >}} + 在仓库设置中将 **Pages** > **Build and deployment** > **Source** 调整为 **GitHub Actions**: + ![](https://user-images.githubusercontent.com/5097752/266784808-99676430-884e-42ab-b901-f6534a0d6eee.png) +{{< /callout >}} + +默认情况下,上述 GitHub Actions 工作流程 `.github/workflows/pages.yaml` 假定站点部署到 `https://.github.io//` + +如需部署到 `https://.github.io/` 修改参数 `--baseURL`: + +```yaml {filename=".github/workflows/pages.yaml",linenos=table,linenostart=54,hl_lines=[4]} +run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/" +``` + +如需部署到自己的域,请对应修改 `--baseURL` + + +## Cloudflare Pages + +1. 将您的网站托管在 Git 存储库(例如 GitHub) +2. 登录到 [Cloudflare dashboard](https://dash.cloudflare.com/) 并选择你的账户 +3. 转至在账户主页面中 **Workers & Pages** > **Create application** > **Pages** > **Connect to Git** +4. 选择你的仓库 **Set up builds and deployments** 提供以下信息: + +| Configuration | Value | +| ----------------- | -------------------- | +| Production branch | `main` | +| Build command | `hugo --gc --minify` | +| Build directory | `public` | + +如需了解更多内容,见: +- [Deploy a Hugo site](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/#deploy-with-cloudflare-pages). +- [Language support and tools](https://developers.cloudflare.com/pages/platform/language-support-and-tools/). + + +## Netlify + +1. 将代码推送到 Git 存储库 (如 GitHub, GitLab) +2. [导入项目](https://app.netlify.com/start) +3. 如果您不使用[hextra-starter-template][hextra-starter-template], 手动配置以下内容: + - C 将构建命令配置为 `hugo --gc --minify` + - 指定发布目录为 `public` + - 添加环境变量 `HUGO_VERSION` 并设定为 `0.119.0` +4. 部署 + +转至 [Hugo on Netlify](https://docs.netlify.com/integrations/frameworks/hugo/) 获得更多信息 + + +## Vercel + +1. 将代码推送到 Git 存储库(GitHub、GitLab 等) +2. 转至 [Vercel Dashboard](https://vercel.com/dashboard) 并导入你的 Hugo 项目 +3. 配置项目,选择 Hugo 作为 Framework Preset +4. 覆盖构建命令和安装命令: + 1. 设置构建命令为 `hugo --gc --minify` + 2. 将安装命令设置为 `yum install golang` + +![Vercel Deployment Configuration](https://github.com/imfing/hextra/assets/5097752/887d949b-8d05-413f-a2b4-7ab92192d0b3) diff --git a/themes/hextra/exampleSite/content/docs/guide/diagrams.fa.md b/themes/hextra/exampleSite/content/docs/guide/diagrams.fa.md new file mode 100644 index 0000000000..83fff71f7d --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/diagrams.fa.md @@ -0,0 +1,53 @@ +--- +title: نمودارها +weight: 6 +next: /docs/guide/shortcodes +--- + +در حال حاضر، هگزترا از [Mermaid](#mermaid) برای نمودارها پشتیبانی می‌کند. + + + +## Mermaid + +[Mermaid](https://github.com/mermaid-js/mermaid#readme) یک ابزار نمودار و نمودار مبتنی بر جاوااسکریپت است که تعاریف متنی الهام گرفته از مارک‌داون را دریافت می‌کند و نمودارها را به صورت پویا در مرورگر ایجاد می‌کند. به عنوان مثال، Mermaid می‌تواند نمودارهای فلوچارت، نمودارهای توالی، نمودارهای دایره‌ای و موارد دیگر را رندر کند. + +استفاده از Mermaid در هگزترا به سادگی نوشتن یک بلوک کد با مجموعه زبان `mermaid` است: + +````markdown +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` +```` + +به صورت زیر رندر خواهد شد: + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +نمودار توالی: + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +برای اطلاعات بیشتر، لطفا به [مستندات Mermaid](https://mermaid-js.github.io/mermaid/#/) مراجعه کنید. diff --git a/themes/hextra/exampleSite/content/docs/guide/diagrams.md b/themes/hextra/exampleSite/content/docs/guide/diagrams.md new file mode 100644 index 0000000000..2c54354103 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/diagrams.md @@ -0,0 +1,53 @@ +--- +title: Diagrams +weight: 6 +next: /docs/guide/shortcodes +--- + +Currently, Hextra supports [Mermaid](#mermaid) for diagrams. + + + +## Mermaid + +[Mermaid](https://github.com/mermaid-js/mermaid#readme) is a JavaScript based diagramming and charting tool that takes Markdown-inspired text definitions and creates diagrams dynamically in the browser. For example, Mermaid can render flow charts, sequence diagrams, pie charts and more. + +Using Mermaid in Hextra is as simple as writing a code block with language set `mermaid`: + +````markdown +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` +```` + +will be rendered as: + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +Sequence diagram: + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +For more information, please refer to [Mermaid Documentation](https://mermaid-js.github.io/mermaid/#/). diff --git a/themes/hextra/exampleSite/content/docs/guide/diagrams.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/diagrams.zh-cn.md new file mode 100644 index 0000000000..4f7e6af525 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/diagrams.zh-cn.md @@ -0,0 +1,53 @@ +--- +title: 图表 +weight: 6 +next: /docs/guide/shortcodes +--- + +目前,Hextra 支持 [Mermaid](#mermaid) 的图表。 + + + +## Mermaid + +[Mermaid](https://github.com/mermaid-js/mermaid#readme) 是一个基于 JavaScript 的图表绘制工具,它的文本定义和 Markdown 类似,可在浏览器中动态创建图表。例如:流程图、序列图、饼图等。 + +在 Hextra 中使用 Mermaid 就像使用代码块一样简单: + +````markdown +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` +```` + +将呈现为: + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +Sequence diagram: + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
        prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +如需获取更多信息,转至 [Mermaid Documentation](https://mermaid-js.github.io/mermaid/#/)。 diff --git a/themes/hextra/exampleSite/content/docs/guide/latex.fa.md b/themes/hextra/exampleSite/content/docs/guide/latex.fa.md new file mode 100644 index 0000000000..e91d52e9af --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/latex.fa.md @@ -0,0 +1,60 @@ +--- +title: "LaTeX" +weight: 4 +math: true +--- + +$\KaTeX$ برای رندر کردن عبارت‌های ریاضی LaTeX استفاده می‌شود. می‌توان آن را در هر صفحه با تنظیم `math` روی `true` در قسمت بالای صفحه فعال کرد. + + + +```yaml {filename="Markdown"} +--- +title: "صفحه من با LaTeX" +math: true +--- + +``` + +وقتی فعال باشد، اسکریپت‌ها، شیوه‌نامه‌ها و فونت‌های KaTeX به طور خودکار در سایت شما قرار می‌گیرند. می‌توانید از عبارت‌های ریاضی LaTeX در محتوای مارک‌داون خود استفاده کنید. + +## مثال + +هر دو عبارت‌های ریاضی درون‌خطی و پاراگراف جداگانه LaTeX در محتوای مارک‌داون پشتیبانی می‌شوند. + +### درون‌خطی + +```markdown {filename="page.md"} +این $\sigma(z) = \frac{1}{1 + e^{-z}}$ درون‌خطی است. +``` + +این $\sigma(z) = \frac{1}{1 + e^{-z}}$ درون‌خطی است. + +### پاراگراف جداگانه + +```markdown {filename="page.md"} +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ +``` + +به صورت زیر رندر خواهد شد: + +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ + + +## توابع پشتیبانی شده + +برای مشاهده فهرست توابع پشتیبانی شده، به [توابع پشتیبانی شده KaTeX](https://katex.org/docs/supported.html) مراجعه کنید. + +## شیمی + +عبارت‌های شیمی از طریق افزونه [mhchem](https://mhchem.github.io/MathJax-mhchem/) پشتیبانی می‌شوند. + +درون‌خطی: $\ce{H2O}$ آب است. + +پاراگراف جداگانه: + +```markdown {filename="page.md"} +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ +``` + +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ diff --git a/themes/hextra/exampleSite/content/docs/guide/latex.md b/themes/hextra/exampleSite/content/docs/guide/latex.md new file mode 100644 index 0000000000..2faef00402 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/latex.md @@ -0,0 +1,60 @@ +--- +title: "LaTeX" +weight: 4 +math: true +--- + +$\KaTeX$ is used for rendering LaTeX math expressions. It can be enabled per page by setting `math` to `true` in the page front matter. + + + +```yaml {filename="Markdown"} +--- +title: "My Page with LaTeX" +math: true +--- + +``` + +When enabled, the scripts, stylesheets and fonts from KaTeX will be included automatically in your site. You can start using LaTeX math expressions in your Markdown content. + +## Example + +Both inline and separate paragraph LaTeX math expressions are supported in the Markdown content. + +### Inline + +```markdown {filename="page.md"} +This $\sigma(z) = \frac{1}{1 + e^{-z}}$ is inline. +``` + +This $\sigma(z) = \frac{1}{1 + e^{-z}}$ is inline. + +### Separate Paragraph + +```markdown {filename="page.md"} +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ +``` + +will be rendered as: + +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ + + +## Supported Functions + +For a list of supported functions, see [KaTeX supported functions](https://katex.org/docs/supported.html). + +## Chemistry + +Chemistry expressions are supported via [mhchem](https://mhchem.github.io/MathJax-mhchem/) extension. + +Inline: $\ce{H2O}$ is water. + +Separate paragraph: + +```markdown {filename="page.md"} +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ +``` + +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ diff --git a/themes/hextra/exampleSite/content/docs/guide/latex.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/latex.zh-cn.md new file mode 100644 index 0000000000..3f9441a893 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/latex.zh-cn.md @@ -0,0 +1,59 @@ +--- +title: "LaTeX 公式" +weight: 4 +math: true +--- + +$\KaTeX$ 用于呈现 LaTeX 数学表达式。可在 `frontmatter` 将 `math` 设置为 `true` 来启用。 + + + +```yaml {filename="Markdown"} +--- +title: "My Page with LaTeX" +math: true +--- +``` + +启用后,KaTeX 中的脚本,样式表和字体将自动包含在你的网站中。这样就可以在 Markdown 内容中使用 LaTeX 数学表达式。 + +## 示例 + +Markdown 内容支持行内和独立段落的 LaTeX 数学表达式。 + +### 行内 + +```markdown {filename="page.md"} +This $\sigma(z) = \frac{1}{1 + e^{-z}}$ is inline. +``` + +This $\sigma(z) = \frac{1}{1 + e^{-z}}$ is inline. + +### 独立段落 + +```markdown {filename="page.md"} +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ +``` + +将被渲染为: + +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ + + +## 支持的功能 + +有关支持的符号列表,转至 [KaTeX 支持的公式](https://katex.org/docs/supported.html)。 + +## 化学表达式 + +通过 [mhchem](https://mhchem.github.io/MathJax-mhchem/) 支持化学表达式。 + +行内:$\ce{H2O}$ 是水。 + +独立段落: + +```markdown {filename="page.md"} +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ +``` + +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ diff --git a/themes/hextra/exampleSite/content/docs/guide/markdown.fa.md b/themes/hextra/exampleSite/content/docs/guide/markdown.fa.md new file mode 100644 index 0000000000..9171b5da66 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/markdown.fa.md @@ -0,0 +1,156 @@ +--- +title: مارک‌داون +weight: 2 +--- + +Hugo از سینتکس [مارک‌داون](https://en.wikipedia.org/wiki/Markdown) برای قالب‌بندی متن، ایجاد فهرست و موارد دیگر پشتیبانی می‌کند. این صفحه برخی از رایج‌ترین نمونه‌های سینتکس مارک‌داون را به شما نشان می‌دهد. + + + +## مثال‌های مارک‌داون + +### ظاهر طراحی دادن به متن + +| سبک | سینتکس | مثال | خروجی | +| -------- | -------- | ------ | ------ | +| توپر | `**متن توپر**` | `**متن توپر**` | **متن توپر** | +| کج | `*متن کج*` | `*متن کج*` | *متن کج* | +| خط خورده | `~~متن خط خورده~~` | `~~متن خط خورده~~` | ~~متن خط خورده~~ | +| پایین‌نویس | `` | `این یک متن پایین‌نویس است` | این یک متن پایین‌نویس است | +| بالانویس | `` | `این یک متن بالانویس است` | این یک متن بالانویس است | + +### بلوک نقل‌قول + +بلوک نقل‌قول با ذکر منبع + +> با اشتراک‌گذاری حافظه ارتباط برقرار نکنید، حافظه را با برقراری ارتباط به اشتراک بگذارید.
        +> — راب پایک[^1] + +[^1]: نقل‌قول بالا گزیده‌ای از [سخنرانی](https://www.youtube.com/watch?v=PAAkCSZUG1c) راب پایک در Gopherfest، در تاریخ ۲۷ آبان ۱۳۹۴ است. + +```markdown {filename=Markdown} +> با اشتراک‌گذاری حافظه ارتباط برقرار نکنید، حافظه را با برقراری ارتباط به اشتراک بگذارید.
        +> — راب پایک[^1] + +[^1]: نقل‌قول بالا گزیده‌ای از [سخنرانی](https://www.youtube.com/watch?v=PAAkCSZUG1c) راب پایک در Gopherfest، در تاریخ ۲۷ آبان ۱۳۹۴ است. +``` + +### جدول‌ها + +جدول‌ها بخشی از مشخصات اصلی مارک‌داون نیستند، اما Hugo از آنها در خارج از جعبه پشتیبانی می‌کند. + +| نام | سن | +|--------|------| +| گودرز | ۳۰| +| آصف | ۳۴ | + +```markdown {filename=Markdown} +| نام | سن | +|--------|------| +| گودرز | ۳۰| +| آصف | ۳۴ | +``` + +#### مارک‌داون درون‌خطی درون جدول‌ها + +| کج | توپر | کد | +| -------- | -------- | ------ | +| *کج* | **توپر** | `کد` | + +```markdown {filename=Markdown} +| کج | توپر | کد | +| -------- | -------- | ------ | +| *کج* | **توپر** | `کد` | +``` + +### بلوک‌های کد + +{{< cards >}} + {{< card link="../../guide/syntax-highlighting" title="برجسته‌کردن سینتکس" icon="sparkles" >}} +{{< /cards >}} + +### فهرست‌ها + +#### فهرست مرتب‌شده + +1. اولین آیتم +2. دومین آیتم +3. سومین آیتم + +```markdown {filename=Markdown} +1. اولین آیتم +2. دومین آیتم +3. سومین آیتم +``` + +#### فهرست مرتب‌نشده + +* فهرست آیتم +* یک آیتم دیگه +* و یک آیتم دیگه + +```markdown {filename=Markdown} +* فهرست آیتم +* یک آیتم دیگه +* و یک آیتم دیگه +``` + +#### فهرست تو در تو + +* میوه + * سیب + * پرتقال + * موز +* لبنیات + * شیر + * پنیر + +```markdown {filename=Markdown} +* میوه + * سیب + * پرتقال + * موز +* لبنیات + * شیر + * پنیر +``` + +### عکس‌ها + +![landscape](https://picsum.photos/800/600) + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600) +``` + +با توضیحات: + +![landscape](https://picsum.photos/800/600 "یک چشم‌انداز Unsplash") + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600 "یک چشم‌انداز Unsplash") +``` + +## پیکربندی + +Hugo از [Goldmark](https://github.com/yuin/goldmark) برای تجزیه مارک‌داون استفاده می‌کند. + رندر مارک‌داون را می‌توان در `hugo.yaml` تحت `markup.goldmark` پیکربندی کنید. + در زیر پیکربندی پیش‌فرض هگزترا را می‌توانید ببینید: + +```yaml {filename="hugo.yaml"} +markup: + goldmark: + renderer: + unsafe: true + highlight: + noClasses: false +``` + +برای گزینه‌های پیکربندی بیشتر، به مستندات Hugo در [پیکربندی نشانه‌گذاری](https://gohugo.io/getting-started/configuration-markup/) مراجعه کنید. + +## منابع یادگیری + +* [راهنمای مارک‌داون](https://www.markdownguide.org/) +* [برگه تقلب مارک‌داون](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) +* [آموزش مارک‌داون](https://www.markdowntutorial.com/) +* [مرجع مارک‌داون](https://commonmark.org/help/) diff --git a/themes/hextra/exampleSite/content/docs/guide/markdown.md b/themes/hextra/exampleSite/content/docs/guide/markdown.md new file mode 100644 index 0000000000..3d6563d1b4 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/markdown.md @@ -0,0 +1,156 @@ +--- +title: Markdown +weight: 2 +--- + +Hugo supports [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax for formatting text, creating lists, and more. This page will show you some of the most common Markdown syntax examples. + + + +## Markdown Examples + +### Styling Text + +| Style | Syntax | Example | Output | +| -------- | -------- | ------ | ------ | +| Bold | `**bold text**` | `**bold text**` | **bold text** | +| Italic | `*italicized text*` | `*italicized text*` | *italicized text* | +| Strikethrough | `~~strikethrough text~~` | `~~strikethrough text~~` | ~~strikethrough text~~ | +| Subscript | `` | `This is a subscript text` | This is a subscript text | +| Superscript | `` | `This is a superscript text` | This is a superscript text | + +### Blockquotes + +Blockquote with attribution + +> Don't communicate by sharing memory, share memory by communicating.
        +> — Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. + +```markdown {filename=Markdown} +> Don't communicate by sharing memory, share memory by communicating.
        +> — Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. +``` + +### Tables + +Tables aren't part of the core Markdown spec, but Hugo supports them out-of-the-box. + +| Name | Age | +|--------|------| +| Bob | 27 | +| Alice | 23 | + +```markdown {filename=Markdown} +| Name | Age | +|--------|------| +| Bob | 27 | +| Alice | 23 | +``` + +#### Inline Markdown within tables + +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | + +```markdown {filename=Markdown} +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | +``` + +### Code Blocks + +{{< cards >}} + {{< card link="../../guide/syntax-highlighting" title="Syntax Highlighting" icon="sparkles" >}} +{{< /cards >}} + +### Lists + +#### Ordered List + +1. First item +2. Second item +3. Third item + +```markdown {filename=Markdown} +1. First item +2. Second item +3. Third item +``` + +#### Unordered List + +* List item +* Another item +* And another item + +```markdown {filename=Markdown} +* List item +* Another item +* And another item +``` + +#### Nested list + +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese + +```markdown {filename=Markdown} +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese +``` + +### Images + +![landscape](https://picsum.photos/800/600) + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600) +``` + +With caption: + +![landscape](https://picsum.photos/800/600 "Unsplash Landscape") + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600 "Unsplash Landscape") +``` + +## Configuration + +Hugo uses [Goldmark](https://github.com/yuin/goldmark) for Markdown parsing. +Markdown rendering can be configured in `hugo.yaml` under `markup.goldmark`. +Below is the default configuration for Hextra: + +```yaml {filename="hugo.yaml"} +markup: + goldmark: + renderer: + unsafe: true + highlight: + noClasses: false +``` + +For more configuration options, see Hugo documentation on [Configure Markup](https://gohugo.io/getting-started/configuration-markup/). + +## Learning Resources + +* [Markdown Guide](https://www.markdownguide.org/) +* [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) +* [Markdown Tutorial](https://www.markdowntutorial.com/) +* [Markdown Reference](https://commonmark.org/help/) diff --git a/themes/hextra/exampleSite/content/docs/guide/markdown.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/markdown.zh-cn.md new file mode 100644 index 0000000000..00cef3552f --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/markdown.zh-cn.md @@ -0,0 +1,155 @@ +--- +title: Markdown +weight: 2 +--- + +Hugo 支持 [Markdown](https://en.wikipedia.org/wiki/Markdown) 来书写内容,创建列表等。本页将向你展示一些最常见的 Markdown 语法示例。 + + + +## Markdown 示例 + +### 文本样式 + +| Style | Syntax | Example | Output | +| -------- | -------- | ------ | ------ | +| Bold | `**bold text**` | `**bold text**` | **bold text** | +| Italic | `*italicized text*` | `*italicized text* | *italicized text* | +| Strikethrough | `~~strikethrough text~~` | `~~strikethrough text~~` | ~~strikethrough text~~ | +| Subscript | `` | `This is a subscript text` | This is a subscript text | +| Superscript | `` | `This is a superscript text` | This is a superscript text | + +### 引用 + +带角标的块引用: + +> Don't communicate by sharing memory, share memory by communicating.
        +> — Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. + +```markdown {filename=Markdown} +> Don't communicate by sharing memory, share memory by communicating.
        +> — Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. +``` + +### 表格 + +表格并非核心 Markdown 规范,但 Hugo 支持开箱即用的表格: + +| Name | Age | +|--------|------| +| Bob | 27 | +| Alice | 23 | + +```markdown {filename=Markdown} +| Name | Age | +|--------|------| +| Bob | 27 | +| Alice | 23 | +``` + +#### Markdown 表格中的内联 + +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | + +```markdown {filename=Markdown} +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | +``` + +### 代码块 + +{{< cards >}} + {{< card link="../../guide/syntax-highlighting" title="Syntax Highlighting" icon="sparkles" >}} +{{< /cards >}} + +### 列表 + +#### 有序列表 + +1. First item +2. Second item +3. Third item + +```markdown {filename=Markdown} +1. First item +2. Second item +3. Third item +``` + +#### 无序列表 + +* List item +* Another item +* And another item + +```markdown {filename=Markdown} +* List item +* Another item +* And another item +``` + +#### 嵌套列表 + +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese + +```markdown {filename=Markdown} +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese +``` + +### 图片 + +![landscape](https://picsum.photos/800/600) + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600) +``` + +带有标题: + +![landscape](https://picsum.photos/800/600 "Unsplash Landscape") + +```markdown {filename=Markdown} +![landscape](https://picsum.photos/800/600 "Unsplash Landscape") +``` + +## 配置 + +Hugo 使用 [Goldmark](https://github.com/yuin/goldmark) 解析 Markdown。 +Markdown 渲染可以在 `hugo.yaml` 中的 `markup.goldmark` 中配置。以下是Hextra的默认配置: + +```yaml {filename="hugo.yaml"} +markup: + goldmark: + renderer: + unsafe: true + highlight: + noClasses: false +``` + +如需了解更多选项,转至 [Configure Markup](https://gohugo.io/getting-started/configuration-markup/)。 + +## 参考资料 + +* [Markdown Guide](https://www.markdownguide.org/) +* [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) +* [Markdown Tutorial](https://www.markdowntutorial.com/) +* [Markdown Reference](https://commonmark.org/help/) diff --git a/themes/hextra/exampleSite/content/docs/guide/organize-files.fa.md b/themes/hextra/exampleSite/content/docs/guide/organize-files.fa.md new file mode 100644 index 0000000000..e6eb50f73f --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/organize-files.fa.md @@ -0,0 +1,147 @@ +--- +title: سازماندهی پرونده‌ها +weight: 1 +prev: /docs/guide +--- + +## ساختار دایرکتوری + +به طور پیش‌فرض، Hugo پرونده‌های مارک‌داون را در فهرست `content` جستجو می‌کند و ساختار فهرست، ساختار خروجی نهایی وب‌سایت شما را تعیین می‌کند. همین سایت را به عنوان مثال در نظر بگیرید: + + + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="getting-started.md" >}} + {{< filetree/folder name="guide" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="organize-files.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/folder name="blog" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="post-1.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +هر یک از پرونده‌های `_index.md` صفحه اصلی هر بخش هستند که برای هر بخش مجزا است. سایر پرونده‌های مارک‌داون صفحه‌های معمولی دیگه‌ای هستند. + +``` +content +├── _index.md // <- / +├── docs +│ ├── _index.md // <- /docs/ +│ ├── getting-started.md // <- /docs/getting-started/ +│ └── guide +│ ├── _index.md // <- /docs/guide/ +│ └── organize-files.md // <- /docs/guide/organize-files/ +└── blog + ├── _index.md // <- /blog/ + └── post-1.md // <- /blog/post-1/ +``` + +## طرح‌بندی‌ها + +هگزترا سه طرح‌بندی برای انواع مختلف محتوا ارائه می‌کند: + +| طرح‌بندی | دایرکتوری | ویژگی‌ها | +| :-------- | :-------------------- | :--------------------------------------------------------------- | +| `docs` | `content/docs/` | ایده‌آل برای مستندات ساختار یافته، مانند این بخش. | +| `blog` | `content/blog/` | برای نوشته‌های وبلاگ، با هر فهرست‌بندی و هم نمایش جزئیات مقاله. | +| `default` | همه دایرکتوری‌های دیگر | مشاهده مقاله تک صفحه‌ای بدون نوار کناری. | + +برای سفارشی کردن یک بخش برای منعکس کردن رفتار یک طرح داخلی، نوع طرح‌بندی مورد نظر را در قسمت بالایی قسمت _index.md` مشخص کنید. + +```yaml {filename="content/my-docs/_index.md"} +--- +title: مستندات من +cascade: + type: docs +--- +``` + +پیکربندی مثال بالا تضمین می‌کند که پرونده‌های محتوای در داخل `content/my-docs/` به‌طور پیش‌فرض به عنوان مستندات (نوع `docs`) مورد استفاده قرار می‌گیرند. + +## ناوبری نوار کناری + +ناوبری نوار کناری به طور خودکار براساس حروف الفبا ایجاد می‌شود. برای پیکربندی دستی ترتیب نوار کناری، می‌توانید از پارامتر `weight` در قسمت بالایی پرونده‌های مارک‌داون استفاده کنید. + +```yaml {filename="content/docs/guide/_index.md"} +--- +title: راهنما +weight: 2 +--- +``` + +{{< callout emoji="ℹ️">}} + توصیه می‌کنیم نوار کناری خیلی عمیق نباشد. اگر محتوای زیادی دارید، آنها را **به چند بخش تقسیم کنید**. +{{< /callout >}} + +## پیکربندی دایرکتوری محتوا + +به طور پیش‌فرض، دایرکتوری ریشه `content/` توسط Hugo برای ساخت سایت استفاده می‌شود. + اگر نیاز به استفاده از دایرکتوری متفاوتی برای محتوا دارید، برای مثال `docs/`، این کار را می‌توانید با تنظیم پارامتر [`contentDir`](https://gohugo.io/getting-started/configuration/#contentdir) در پیکربندی سایت `hugo.yaml` انجام دهید. + +## افزودن تصاویر + +برای افزودن تصاویر، ساده‌ترین راه این است که پرونده‌های عکس‌ها را در همان دایرکتوری پرونده مارک‌داون قرار دهید. +برای مثال، یک پرونده عکس `image.png` را در کنار پرونده `my-page.md` اضافه کنید: + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/file name="my-page.md" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +سپس، می‌توانید از سینتکس مارک‌داون زیر برای افزودن عکس به محتوا استفاده کنید: + +```markdown {filename="content/docs/my-page.md"} +![](image.png) +``` + +همچنین می‌توانید از ویژگی [بسته‌های صفحه][page-bundles] Hugo برای سازماندهی پرونده‌های عکس‌ها همراه با پرونده مارک‌داون استفاده کنید. برای رسیدن به این هدف، پرونده `my-page.md` را به یک دایرکتوری `my-page` تبدیل کنید و محتوا را در پرونده‌ای به نام `index.md` قرار دهید و پرونده‌های عکس‌ها را در دایرکتوری `my-page` قرار دهید: + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/folder name="my-page" >}} + {{< filetree/file name="index.md" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +```markdown {filename="content/docs/my-page/index.md"} +![](image.png) +``` + +همچنین می‌توانید پرونده‌های عکس‌ها را در دایرکتوری `static` قرار دهید که عکس‌ها را برای همه صفحات در دسترس قرار می‌دهد: + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/folder name="images" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/file name="my-page.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +توجه داشته باشید که مسیر عکس با یک اسلش `/` شروع می‌شود و نسبت به دایرکتوری استاتیک است: + +```markdown {filename="content/docs/my-page.md"} +![](/images/image.png) +``` + +[page-bundles]: https://gohugo.io/content-management/page-bundles/#leaf-bundles diff --git a/themes/hextra/exampleSite/content/docs/guide/organize-files.md b/themes/hextra/exampleSite/content/docs/guide/organize-files.md new file mode 100644 index 0000000000..84d0c7b197 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/organize-files.md @@ -0,0 +1,187 @@ +--- +title: Organize Files +weight: 1 +prev: /docs/guide +--- + +## Directory Structure + +By default, Hugo searches for Markdown files in the `content` directory, and the structure of the directory determines the final output structure of your website. +Take this site as an example: + + + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="getting-started.md" >}} + {{< filetree/folder name="guide" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="organize-files.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/folder name="blog" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="post-1.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Each of the `_index.md` files is the index page for the corresponding section. The other Markdown files are regular pages. + +``` +content +├── _index.md // <- / +├── docs +│ ├── _index.md // <- /docs/ +│ ├── getting-started.md // <- /docs/getting-started/ +│ └── guide +│ ├── _index.md // <- /docs/guide/ +│ └── organize-files.md // <- /docs/guide/organize-files/ +└── blog + ├── _index.md // <- /blog/ + └── post-1.md // <- /blog/post-1/ +``` + +## Layouts + +Hextra offers three layouts for different content types: + +| Layout | Directory | Features | +| :-------- | :-------------------- | :--------------------------------------------------------------- | +| `docs` | `content/docs/` | Ideal for structured documentation, same as this section. | +| `blog` | `content/blog/` | For blog postings, with both listing and detailed article views. | +| `default` | All other directories | Single-page article view without sidebar. | + +To customize a section to mirror the behavior of a built-in layout, specify the desired type in the front matter of the section's `_index.md`. + +```yaml {filename="content/my-docs/_index.md"} +--- +title: My Docs +cascade: + type: docs +--- +``` + +The above example configuration ensures that the content files inside `content/my-docs/` will be treated as documentation (`docs` type) by default. + +## Sidebar Navigation + +The sidebar navigation is generated automatically based on the content organization alphabetically. To manually configure the sidebar order, we can use the `weight` parameter in the front matter of the Markdown files. + +```yaml {filename="content/docs/guide/_index.md"} +--- +title: Guide +weight: 2 +--- +``` + +{{< callout emoji="ℹ️">}} + It is recommended to keep the sidebar not too deep. If you have a lot of content, consider **splitting them into multiple sections**. +{{< /callout >}} + +## Breadcrumb Navigation + +Breadcrumbs are auto-generated based on the directory structure of `/content`. + +For example, consider the file structure [demonstrated above](#directory-structure). Given that structure, the breadcrumbs atop the page at `/docs/guide/organize-files/` would appear automatically as follows: + +``` +Documentation > Guide > Organize Files +``` + +### Customizing Breadcrumb Link Titles + +By default, each breadcrumb link is generated based on that page's `title` parameter. You can customize this by specifying a `linkTitle`. + +For example, if instead of `Organize Files` we wanted the breadcrumb to be `Foo Bar`: + +```yaml {filename="content/docs/guide/organize-files.md"} +--- +linkTitle: Foo Bar +title: Organize Files +--- +``` + +This would now generate the following breadcrumbs: +``` +Documentation > Guide > Foo Bar +``` + +### Hiding Breadcrumbs + +You can hide breadcrumbs completely from a page by specifying `breadcrumbs: false` in its front matter: + +```yaml {filename="content/docs/guide/organize-files.md"} +--- +breadcrumbs: false +title: Organize Files +--- +``` + +## Configure Content Directory + +By default, the root `content/` directory is used by Hugo to build the site. +If you need to use a different directory for content, for example `docs/`, this can be done by setting the [`contentDir`](https://gohugo.io/getting-started/configuration/#contentdir) parameter in the site configuration `hugo.yaml`. + +## Add Images + +To add images, the easiest way is to put the image files in the same directory as the Markdown file. +For example, add an image file `image.png` alongside the `my-page.md` file: + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/file name="my-page.md" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Then, we can use the following Markdown syntax to add the image to the content: + +```markdown {filename="content/docs/my-page.md"} +![](image.png) +``` + +We can also utilize the [page bundles][page-bundles] feature of Hugo to organize the image files together with the Markdown file. To achieve that, turn the `my-page.md` file into a directory `my-page` and put the content into a file named `index.md`, and put the image files inside the `my-page` directory: + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/folder name="my-page" >}} + {{< filetree/file name="index.md" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +```markdown {filename="content/docs/my-page/index.md"} +![](image.png) +``` + +Alternatively, we can also put the image files in the `static` directory, which will make the images available for all pages: + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/folder name="images" >}} + {{< filetree/file name="image.png" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/file name="my-page.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Note that the image path begins with a slash `/` and is relative to the static directory: + +```markdown {filename="content/docs/my-page.md"} +![](/images/image.png) +``` + +[page-bundles]: https://gohugo.io/content-management/page-bundles/#leaf-bundles diff --git a/themes/hextra/exampleSite/content/docs/guide/organize-files.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/organize-files.zh-cn.md new file mode 100644 index 0000000000..b8e35ac342 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/organize-files.zh-cn.md @@ -0,0 +1,65 @@ +--- +title: 目录结构 +weight: 1 +prev: /docs/guide +--- + +## 目录结构 + +默认情况下,Hugo 在 `content` 目录中搜索 Markdown 文件,目录的结构决定了网站的最终输出结构。 +以示例网站为例: + + + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="getting-started.md" >}} + {{< filetree/folder name="guide" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="organize-files.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/folder name="blog" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="post-1.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +每个 `_index.md` 文件都是相应部分的索引页,其他 Markdown 文件则是常规页面。 + +``` +content +├── _index.md // <- / +├── docs +│ ├── _index.md // <- /docs/ +│ ├── getting-started.md // <- /docs/getting-started/ +│ └── guide +│ ├── _index.md // <- /docs/guide/ +│ └── organize-files.md // <- /docs/guide/organize-files/ +└── blog + ├── _index.md // <- /blog/ + └── post-1.md // <- /blog/post-1/ +``` + +## 侧边栏导航 + +侧边栏导航是根据内容组织的字母顺序自动生成的。要手动配置侧边栏顺序,可以在 Markdown 文件的 `frontmatter ` 中使用 `weight` 配置。 + +```yaml {filename="content/docs/guide/_index.md"} +--- +title: Guide +weight: 2 +--- +``` + +{{< callout emoji="ℹ️">}} + 建议侧边栏不要太深。如果内容太多,请考虑 **将它们分成多个部分**。 +{{< /callout >}} + +## 配置内容目录 + +如果需要为的内容使用不同的目录,可以在站点配置文件中设置 [`contentDir`](https://gohugo.io/getting-started/configuration/#contentdir) 来实现。 diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.fa.md new file mode 100644 index 0000000000..9c335d1f42 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.fa.md @@ -0,0 +1,21 @@ +--- +title: کدهای کوتاه +weight: 9 +prev: /docs/guide/diagrams +next: /docs/guide/shortcodes/filetree +--- + +[کدهای کوتاه Hugo](https://gohugo.io/content-management/shortcodes/) قطعه‌های ساده‌ای در داخل پرونده‌های محتوای شما هستند که قالب‌های داخلی یا سفارشی را فراخوانی می‌کنند. + +هگزترا مجموعه‌ای از کدهای کوتاه زیبا را برای بهبود محتوای شما ارائه می‌کند. + + +{{< cards >}} + {{< card link="filetree" title="FileTree" icon="folder-tree" >}} + {{< card link="icon" title="آیکون" icon="badge-check" >}} + {{< card link="details" title="جزئیات" icon="chevron-right" >}} + {{< card link="tabs" title="زبانه‌ها" icon="collection" >}} + {{< card link="callout" title="فراخوانی" icon="warning" >}} + {{< card link="cards" title="کارت‌ها" icon="card" >}} + {{< card link="steps" title="مراحل" icon="one" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.md new file mode 100644 index 0000000000..e59456365b --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.md @@ -0,0 +1,29 @@ +--- +title: Shortcodes +weight: 9 +prev: /docs/guide/diagrams +next: /docs/guide/shortcodes/callout +--- + +[Hugo Shortcodes](https://gohugo.io/content-management/shortcodes/) are simple snippets inside your content files calling built-in or custom templates. + +Hextra provides a collection of beautiful shortcodes to enhance your content. + +{{< cards >}} + {{< card link="callout" title="Callout" icon="warning" >}} + {{< card link="cards" title="Cards" icon="card" >}} + {{< card link="details" title="Details" icon="chevron-right" >}} + {{< card link="filetree" title="FileTree" icon="folder-tree" >}} + {{< card link="icon" title="Icon" icon="badge-check" >}} + {{< card link="steps" title="Steps" icon="one" >}} + {{< card link="tabs" title="Tabs" icon="collection" >}} +{{< /cards >}} + +
        + +Additional shortcodes provided by Hugo and Hextra: + +{{< cards >}} + {{< card link="jupyter" title="Jupyter Notebook" icon="jupyter" tag="alpha" >}} + {{< card link="others" title="Others" icon="view-grid" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.zh-cn.md new file mode 100644 index 0000000000..79ab15939a --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/_index.zh-cn.md @@ -0,0 +1,19 @@ +--- +title: 短代码 +weight: 9 +prev: /docs/guide/diagrams +next: /docs/guide/shortcodes/callout +--- + +[Hugo 短代码](https://gohugo.io/content-management/shortcodes/) 是你的内容文件中调用内置或自定义模板的简单片段。 + +Hextra 提供了一系列美观的短代码以增强你的内容。 + +{{< cards >}} + {{< card link="callout" title="注意事项" icon="warning" >}} + {{< card link="cards" title="卡片" icon="card" >}} + {{< card link="filetree" title="文件树" icon="folder-tree" >}} + {{< card link="icon" title="图标" icon="badge-check" >}} + {{< card link="steps" title="步骤" icon="one" >}} + {{< card link="tabs" title="标签" icon="collection" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.fa.md new file mode 100644 index 0000000000..96a6a83d3b --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.fa.md @@ -0,0 +1,78 @@ +--- +title: کامپوننت فراخوانی +linkTitle: فراخوانی +aliases: +- فراخوانی‌ها +--- + +یک کامپوننت داخلی برای نشان دادن اطلاعات مهم به خواننده. + + + +## مثال + +{{< callout emoji="👾">}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="info" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="warning" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="error" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +## استفاده + +### پیش‌فرض + +{{< callout emoji="🌐">}} + Hugo را می‌توانید برای ایجاد طیف گسترده‌ای از وب‌سایت‌ها، از جمله وبلاگ‌ها، نمونه‌کارها، سایت‌های مستندسازی و غیره استفاده کرد. +{{< /callout >}} + +```markdown +{{}} + Hugo را می‌توانید برای ایجاد طیف گسترده‌ای از وب‌سایت‌ها، از جمله وبلاگ‌ها، نمونه‌کارها، سایت‌های مستندسازی و غیره استفاده کرد. +{{}} +``` + +### اطلاعات + +{{< callout type="info" >}} + لطفا برای مشاهده آخرین نسخه‌ها به گیت‌هاب مراجعه کنید. +{{< /callout >}} + +```markdown +{{}} + لطفا برای مشاهده آخرین نسخه‌ها به گیت‌هاب مراجعه کنید. +{{}} +``` + +### هشدار + +{{< callout type="warning" >}} + این API در نسخه بعدی منسوخ خواهد شد. +{{< /callout >}} + +```markdown +{{}} + این API در نسخه بعدی منسوخ خواهد شد. +{{}} +``` + +### خطا + +{{< callout type="error" >}} + مشکلی پیش آمد و اتفاقی رخ خواهد شد. +{{< /callout >}} + +```markdown +{{}} + مشکلی پیش آمد و اتفاقی رخ خواهد شد. +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.md new file mode 100644 index 0000000000..3bd3513de0 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.md @@ -0,0 +1,79 @@ +--- +title: Callout Component +linkTitle: Callout +aliases: +- callouts +prev: /docs/guide/shortcodes +--- + +A built-in component to show important information to the reader. + + + +## Example + +{{< callout emoji="👾">}} + A **callout** is a short piece of text intended to attract attention. +{{< /callout >}} + +{{< callout type="info" >}} + A **callout** is a short piece of text intended to attract attention. +{{< /callout >}} + +{{< callout type="warning" >}} + A **callout** is a short piece of text intended to attract attention. +{{< /callout >}} + +{{< callout type="error" >}} + A **callout** is a short piece of text intended to attract attention. +{{< /callout >}} + +## Usage + +### Default + +{{< callout emoji="🌐">}} + Hugo can be used to create a wide variety of websites, including blogs, portfolios, documentation sites, and more. +{{< /callout >}} + +```markdown +{{}} + Hugo can be used to create a wide variety of websites, including blogs, portfolios, documentation sites, and more. +{{}} +``` + +### Info + +{{< callout type="info" >}} + Please visit GitHub to see the latest releases. +{{< /callout >}} + +```markdown +{{}} + Please visit GitHub to see the latest releases. +{{}} +``` + +### Warning + +{{< callout type="warning" >}} + This API will be deprecated in the next version. +{{< /callout >}} + +```markdown +{{}} + A **callout** is a short piece of text intended to attract attention. +{{}} +``` + +### Error + +{{< callout type="error" >}} + Something went wrong and it's going to explode. +{{< /callout >}} + +```markdown +{{}} + Something went wrong and it's going to explode. +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.zh-cn.md new file mode 100644 index 0000000000..74cf41d050 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/callout.zh-cn.md @@ -0,0 +1,78 @@ +--- +title: 标注 +aliases: +- callouts +prev: /docs/guide/shortcodes +--- + +向读者显示重要信息的内置组件。 + + + +## Example + +{{< callout emoji="👾">}} + **标注**是一段旨在吸引注意力的短文本 +{{< /callout >}} + +{{< callout type="info" >}} + **标注**是一段旨在吸引注意力的短文本。 +{{< /callout >}} + +{{< callout type="warning" >}} + **标注**是一段旨在吸引注意力的短文本。 +{{< /callout >}} + +{{< callout type="error" >}} + **标注**是一段旨在吸引注意力的短文本。 +{{< /callout >}} + +## Usage + +### Default + +{{< callout emoji="🌐">}} + Hugo 可用于创建各种网站,包括博客、作品集、文档网站等 +{{< /callout >}} + +```markdown +{{}} + Hugo 可用于创建各种网站,包括博客、作品集、文档网站等 +{{}} +``` + +### Info + +{{< callout type="info" >}} + 请访问 GitHub 查看最新版本 +{{< /callout >}} + +```markdown +{{}} + 请访问 GitHub 查看最新版本 +{{}} +``` + +### Warning + +{{< callout type="warning" >}} + 该 API 将在下一版本中弃用 +{{< /callout >}} + +```markdown +{{}} + **标注**是一段旨在吸引注意力的简短文字 +{{}} +``` + +### Error + +{{< callout type="error" >}} + 出问题了,要爆炸了 +{{< /callout >}} + +```markdown +{{}} + 出问题了,要爆炸了 +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.fa.md new file mode 100644 index 0000000000..6810bfacd1 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.fa.md @@ -0,0 +1,64 @@ +--- +title: کامپوننت کارت‌ها +linkTitle: کارت‌ها +--- + +## مثال + +{{< cards >}} + {{< card link="../callout" title="فراخوانی" icon="warning" >}} + {{< card link="/fa" title="بدون آیکون" >}} +{{< /cards >}} + +{{< cards >}} + {{< card link="/" title="کارت تصویر" image="https://source.unsplash.com/featured/800x600?landscape" subtitle="یک چشم‌انداز Unsplash" >}} + {{< card link="/" title="تصویر محلی" image="/images/card-image-unprocessed.jpg" subtitle="تصویر خام در دایرکتوری استاتیک است." >}} + {{< card link="/" title="تصویر محلی" image="images/space.jpg" subtitle="تصویر در دایرکتوری assets می‌باشد و پردازش توسط Hugo شده است." method="Resize" options="600x q80 webp" >}} +{{< /cards >}} + +## استفاده + +``` +{{}} + {{}} + {{}} +{{}} +``` + +``` +{{}} + {{}} + {{}} + {{}} +{{}} +``` + +## پارامترهای کارت + +| پارامتر | توضیحات | +|----------- |---------------------------------------| +| `link` | نشانی اینترنتی (داخلی یا خارجی). | +| `title` | عنوان برای کارت. | +| `subtitle` | عنوان زیرنویس (از مارک‌داون پشتیبانی می‌کند).. | +| `icon` | نام آیکون. | + +## کارت تصویر + +علاوه بر این، کارت از افزودن تصویر و پردازش از طریق این پارامترها پشتیبانی می‌کند: + +| پارامتر | توضیحات | +|----------- |---------------------------------------------| +| `image` | نشانی اینترنتی تصویر کارت را مشخص می‌کند. | +| `method` | روش پردازش تصویر Hugo را تنظیم می‌کند. | +| `options` | گزینه‌های پردازش تصویر Hugo را پیکربندی می‌کند. | + +کارت از سه نوع تصویر پشتیبانی می‌کند: + +1. تصویر از راه دور: نشانی اینترنتی کامل در پارامتر `image`. +2. تصویر استاتیک: از مسیر نسبی در دایرکتوری `static/` Hugo استفاده کنید. +3. تصویر پردازش شده: از مسیر نسبی در دایرکتوری `assets/` Hugo استفاده کنید. + +هگزترا در صورت نیاز به پردازش تصویر در حین ساخت، به طور خودکار تشخیص می‌دهد و پارامتر `options` یا تنظیمات پیش‌فرض را اعمال می‌کند (تغییر اندازه، 800x، کیفیت 80، فرمت WebP). + در حال حاضر این `method` را پشتیبانی می‌کند: `Resize`، `Fit`، `Fill` و `Crop`. + +برای اطلاعات بیشتر در مورد دستورات، روش‌ها و گزینه‌های پردازش تصویر داخلی Hugo به [مستندات پردازش تصویر](https://gohugo.io/content-management/image-processing/) آن‌ها مراجعه کنید. diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.md new file mode 100644 index 0000000000..e369f7a444 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.md @@ -0,0 +1,116 @@ +--- +title: Cards Component +linkTitle: Cards +--- + +## Example + +{{< cards >}} + {{< card link="../callout" title="Callout" icon="warning" >}} + {{< card link="../callout" title="Card with tag" icon="tag" tag="custom tag">}} + {{< card link="/" title="No Icon" >}} +{{< /cards >}} + +{{< cards >}} + {{< card link="/" title="Image Card" image="https://github.com/user-attachments/assets/71b7e3ec-1a8d-4582-b600-5425c6cc0407" subtitle="Internet Image" >}} + {{< card link="/" title="Local Image" image="/images/card-image-unprocessed.jpg" subtitle="Raw image under static directory." >}} + {{< card link="/" title="Local Image" image="images/space.jpg" subtitle="Image under assets directory, processed by Hugo." method="Resize" options="600x q80 webp" >}} +{{< /cards >}} + +## Usage + +``` +{{}} + {{}} + {{}} + {{}} +{{}} +``` + +``` +{{}} + {{}} + {{}} + {{}} +{{}} +``` + +## Card Parameters + +| Parameter | Description | +|----------- |-----------------------------------------------------------------| +| `link` | URL (internal or external). | +| `title` | Title heading for the card. | +| `subtitle` | Subtitle heading (supports Markdown). | +| `icon` | Name of the icon. | +| `tag` | Text in tag. | +| `tagColor` | Color of the tag: `gray` (default), `yellow`, `red` and `blue`. | + +## Image Card + +Additionally, the card supports adding image and processing through these parameters: + +| Parameter | Description | +|----------- |---------------------------------------------| +| `image` | Specifies the image URL for the card. | +| `method` | Sets Hugo's image processing method. | +| `options` | Configures Hugo's image processing options. | + +Card supports three kinds of images: + +1. Remote image: the full URL in the `image` parameter. +2. Static image: use the relative path in Hugo's `static/` directory. +3. Processed image: use the relative path in Hugo's `assets/` directory. + +Hextra auto-detects if image processing is needed during build and applies the `options` parameter or default settings (Resize, 800x, Quality 80, WebP Format). +It currently supports these `method`: `Resize`, `Fit`, `Fill` and `Crop`. + +For more on Hugo's built in image processing commands, methods, and options see their [Image Processing Documentation](https://gohugo.io/content-management/image-processing/). + +## Tags + +Card supports adding tags which could be useful to show extra status information. + +{{< cards >}} + {{< card link="../callout" title="Card with default tag" tag="tag text" >}} + {{< card link="../callout" title="Card with error tag" tag="tag text" tagType="error" >}} + {{< card link="../callout" title="Card with info tag" tag="tag text" tagType="info" >}} + {{< card link="../callout" title="Card with warning tag" tag="tag text" tagType="warning" >}} + {{< card link="/" title="Image Card" image="https://github.com/user-attachments/assets/71b7e3ec-1a8d-4582-b600-5425c6cc0407" subtitle="Internet Image" tag="tag text" tagType="error" >}} +{{< /cards >}} + +``` +{{}} + {{}} + {{}} + {{}} + {{}} +{{}} +``` + +## Columns + +You can specify the maximum number of columns for cards to span by passing the `cols` parameter to the `cards` shortcode. Note that columns will still be collapsed on smaller screens. + +{{< cards cols="1" >}} + {{< card link="/" title="Top Card" >}} + {{< card link="/" title="Bottom Card" >}} +{{< /cards >}} + +{{< cards cols="2" >}} + {{< card link="/" title="Left Card" >}} + {{< card link="/" title="Right Card" >}} +{{< /cards >}} + +``` +{{}} + {{}} + {{}} +{{}} + +{{}} + {{}} + {{}} +{{}} +``` + diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.zh-cn.md new file mode 100644 index 0000000000..8a88be13df --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/cards.zh-cn.md @@ -0,0 +1,65 @@ +--- +title: 卡片 +linkTitle: Cards +--- + +## 示例 + +{{< cards >}} + {{< card link="../callout" title="Callout" icon="warning" >}} + {{< card link="/" title="No Icon" >}} +{{< /cards >}} + +{{< cards >}} + {{< card link="/" title="Image Card" image="https://source.unsplash.com/featured/800x600?landscape" subtitle="Unsplash Landscape" >}} + {{< card link="/" title="Local Image" image="/images/card-image-unprocessed.jpg" subtitle="Raw image under static directory." >}} + {{< card link="/" title="Local Image" image="images/space.jpg" subtitle="Image under assets directory, processed by Hugo." method="Resize" options="600x q80 webp" >}} +{{< /cards >}} + +## 使用 + +``` +{{}} + {{}} + {{}} +{{}} +``` + +``` +{{}} + {{}} + {{}} + {{}} +{{}} +``` + +## 卡片参数 + +| Parameter | Description | +|----------- |---------------------------------------| +| `link` | URL(内部或外部) | +| `title` | 卡片的标题 | +| `subtitle` | 字幕标题(支持 Markdown) | +| `icon` | 图标的名称 | + +## Image Card + +此外,该卡还支持通过以下参数添加图像和处理: + +| Parameter | Description | +|----------- |---------------------------------------------| +| `image` | 指定卡片的图像 URL. | +| `method` | 设置 Hugo 的图像处理方法。 | +| `options` | 配置 Hugo 的图像处理选项。| + +卡片支持三种图像: + +1. 远程图片:完整网址应放置在 image 参数中 +2. 静态图片:使用 Hugo 的 static/ 目录中的相对路径 +3. 处理过的图片:使用 Hugo 的 assets/ 目录中的相对路径 + +Hextra 在构建过程中会自动检测图片是否需要处理,并根据需要应用 options 参数或默认设置(缩放,800x,质量 80,WebP 格式)。 + +它目前支持以下处理方法:Resize(缩放)、Fit(适应)、Fill(填充)和 Crop(裁剪)。 + +有关 Hugo 内置图像处理命令、方法和选项的更多信息,请参阅他们的 [Image Processing Documentation](https://gohugo.io/content-management/image-processing/). diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.fa.md new file mode 100644 index 0000000000..f3b9882d29 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.fa.md @@ -0,0 +1,43 @@ +--- +title: جزئیات +--- + +یک کامپوننت داخلی برای نمایش محتوای قابل باز و بسته شدن. + + + +## مثال + +{{% details title="جزئیات" %}} + +این محتوای جزئیات است. + +مارک‌داون **پشتیبانی می‌شود**. + +{{% /details %}} + +{{% details title="برای نمایش روی من کلیک کنید" closed="true" %}} + +این به طور پیش‌فرض پنهان می‌شود. + +{{% /details %}} + +## استفاده + +````markdown +{{%/* details title="جزئیات" */%}} + +این محتوای جزئیات است. + +مارک‌داون **پشتیبانی می‌شود**. + +{{%/* /details */%}} +```` + +````markdown +{{%/* details title="برای نمایش روی من کلیک کنید"closed="true" */%}} + +این به طور پیش‌فرض پنهان می‌شود. + +{{%/* /details */%}} +```` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.md new file mode 100644 index 0000000000..e5031def64 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.md @@ -0,0 +1,43 @@ +--- +title: Details +--- + +A built-in component to display a collapsible content. + + + +## Example + +{{% details title="Details" %}} + +This is the content of the details. + +Markdown is **supported**. + +{{% /details %}} + +{{% details title="Click me to reveal" closed="true" %}} + +This will be hidden by default. + +{{% /details %}} + +## Usage + +````markdown +{{%/* details title="Details" */%}} + +This is the content of the details. + +Markdown is **supported**. + +{{%/* /details */%}} +```` + +````markdown +{{%/* details title="Click me to reveal" closed="true" */%}} + +This will be hidden by default. + +{{%/* /details */%}} +```` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.zh-cn.md new file mode 100644 index 0000000000..395c27618c --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/details.zh-cn.md @@ -0,0 +1,43 @@ +--- +title: 详情 +--- + +用于显示可折叠内容的内置组件。 + + + +## 示例 + +{{% details title="Details" %}} + +这是细节的内容 + +Markdown is **supported**. + +{{% /details %}} + +{{% details title="Click me to reveal" closed="true" %}} + +默认情况下这将被隐藏 + +{{% /details %}} + +## Usage + +````markdown +{{%/* details title="Details" */%}} + +这是细节的内容 + +**支持** Markdown + +{{%/* /details */%}} +```` + +````markdown +{{%/* details title="Click me to reveal" closed="true" */%}} + +默认情况下这将被隐藏 + +{{%/* /details */%}} +```` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.fa.md new file mode 100644 index 0000000000..e1c8c40c9c --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.fa.md @@ -0,0 +1,36 @@ +--- +title: کامپوننت FileTree +linkTitle: FileTree +prev: /docs/guide/shortcodes +next: /docs/guide/shortcodes/icon +--- + +## مثال + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="closed" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="introduction.md" >}} + {{< filetree/file name="introduction.fa.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/file name="hugo.toml" >}} +{{< /filetree/container >}} + +## استفاده + +```text {filename="Markdown"} +{{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.md new file mode 100644 index 0000000000..1978c34529 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.md @@ -0,0 +1,34 @@ +--- +title: FileTree Component +linkTitle: FileTree +--- + +## Example + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="closed" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="introduction.md" >}} + {{< filetree/file name="introduction.fr.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/file name="hugo.toml" >}} +{{< /filetree/container >}} + +## Usage + +```text {filename="Markdown"} +{{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.zh-cn.md new file mode 100644 index 0000000000..c46703197e --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/filetree.zh-cn.md @@ -0,0 +1,33 @@ +--- +title: 文件树 +--- + +## 示例 + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="closed" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="introduction.md" >}} + {{< filetree/file name="introduction.fr.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/file name="hugo.toml" >}} +{{< /filetree/container >}} + +## 用法 + +```text {filename="Markdown"} +{{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} +{{}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.fa.md new file mode 100644 index 0000000000..392c68873e --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.fa.md @@ -0,0 +1,47 @@ +--- +title: آیکون + +--- + +برای استفاده از این کد کوتاه درون‌خطی، باید آن را در پیکربندی فعال کنید: + +```yaml {filename="hugo.yaml"} +enableInlineShortcodes: true +``` + +فهرست آیکون‌های موجود را می‌توانید در [`data/icons.yaml`](https://github.com/imfing/hextra/blob/main/data/icons.yaml) پیدا کنید. + + + +## مثال + +{{< icon "academic-cap" >}} +{{< icon "cake" >}} +{{< icon "gift" >}} +{{< icon "sparkles" >}} + +## استفاده + +``` +{{}} +``` + +آیکون‌های با طرح‌های متفاوت در [Heroicons](https://v1.heroicons.com/) نسخه ۱ خارج از جعبه در دسترس هستند. + +### چجوری آیکون‌های خودمان را اضافه کنیم + +پرونده `data/icons.yaml` را ایجاد کنید، سپس آیکون‌های SVG خود را در فرمت زیر اضافه کنید: + +```yaml {filename="data/icons.yaml"} +your-icon: your icon svg content +``` + +سپس می‌توان آن را در کد کوتاه مانند زیر استفاده کرد: + +``` +{{}} + +{{}} +``` + +نکته: [Iconify Design](https://iconify.design/) مکانی عالی برای پیدا کردن آیکون‌های SVG برای سایت شما است. diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.md new file mode 100644 index 0000000000..dc93cd0288 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.md @@ -0,0 +1,46 @@ +--- +title: Icon +--- + +To use this shortcode inline, inline shortcode needs to be enabled in the config: + +```yaml {filename="hugo.yaml"} +enableInlineShortcodes: true +``` + +List of available icons can be found in [`data/icons.yaml`](https://github.com/imfing/hextra/blob/main/data/icons.yaml). + + + +## Example + +{{< icon "academic-cap" >}} +{{< icon "cake" >}} +{{< icon "gift" >}} +{{< icon "sparkles" >}} + +## Usage + +``` +{{}} +``` + +[Heroicons](https://v1.heroicons.com/) v1 outline icons are available out of the box. + +### How to add your own icons + +Create `data/icons.yaml` file, then add your own SVG icons in the following format: + +```yaml {filename="data/icons.yaml"} +your-icon: your icon svg content +``` + +It then can be used in the shortcode like this: + +``` +{{}} + +{{}} +``` + +Tip: [Iconify Design](https://iconify.design/) is a great place to find SVG icons for your site. diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.zh-cn.md new file mode 100644 index 0000000000..196a4f1e6d --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/icon.zh-cn.md @@ -0,0 +1,46 @@ +--- +title: 图标 +--- + +要内联使用此短代码,需要在配置中启用内联短代码: + +```yaml {filename="hugo.yaml"} +enableInlineShortcodes: true +``` + +可用图标列表可以在以下位置找到 [`data/icons.yaml`](https://github.com/imfing/hextra/blob/main/data/icons.yaml). + + + +## 示例 + +{{< icon "academic-cap" >}} +{{< icon "cake" >}} +{{< icon "gift" >}} +{{< icon "sparkles" >}} + +## 用法 + +``` +{{}} +``` + +[Heroicons](https://v1.heroicons.com/) v1 轮廓图标开箱即用 + +### 如何添加自己的图标 + +创建 `data/icons.yaml` 文件,然后按以下格式添加您自己的 SVG 图标: + +```yaml {filename="data/icons.yaml"} +your-icon: your icon svg content +``` + +然后可以在短代码中使用它,如下所示: + +``` +{{}} + +{{}} +``` + +提示:[Iconify Design](https://iconify.design/) 是为您的网站查找 SVG 图标的好地方 diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/jupyter.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/jupyter.md new file mode 100644 index 0000000000..83487d7fac --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/jupyter.md @@ -0,0 +1,79 @@ +--- +title: "Jupyter Notebook Component" +linktitle: "Jupyter Notebook" +math: true +sidebar: + exclude: true +--- + +{{< callout >}}Experimental feature to include Jupyter Notebooks via a shortcode. Note that not all cell types are supported.{{< /callout >}} + +[Jupyter Notebook](https://jupyter.org/) is a language-agnostic HTML notebook application for [Project Jupyter](https://jupyter.org/). It allows you to create and share documents that contain live code, equations, visualizations, and narrative text. + + + +## How to use + +### Using a local notebook + +To use the Jupyter Notebook shortcode, you need to have a Jupyter Notebook file in your project. Similar to how you would [add images](../../organize-files#add-images) to the project, you can add Jupyter Notebooks to the `assets` folder. + +{{< filetree/container >}} + {{< filetree/folder name="assets" >}} + {{< filetree/file name="notebook.ipynb" >}} + {{< /filetree/folder >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/file name="my-page.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +Include the Jupyter Notebook in the page using the `jupyter` shortcode: + +```markdown {filename="content/docs/my-page.md"} +--- +title: My Page +math: true +--- + +{{%/* jupyter "notebook.ipynb" */%}} +``` + +Alternatively, you can utilize the [page bundles][page-bundles] feature of Hugo to organize the Jupyter Notebooks together with the Markdown file. + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" >}} + {{< filetree/folder name="my-page" >}} + {{< filetree/file name="index.md" >}} + {{< filetree/file name="notebook.ipynb" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +```markdown {filename="content/docs/my-page/index.md"} +--- +title: My Page +math: true +--- + +{{%/* jupyter "notebook.ipynb" */%}} +``` + +### Using a remote notebook + +You can also use a remote notebook by providing the URL to the notebook file. For example, to include [What is the Jupyter Notebook](https://github.com/jupyter/notebook/blob/main/docs/source/examples/Notebook/What%20is%20the%20Jupyter%20Notebook.ipynb) notebook in the page, you can use the following shortcode: + +``` +{{%/* jupyter "https://raw.githubusercontent.com/jupyter/notebook/main/docs/source/examples/Notebook/What%20is%20the%20Jupyter%20Notebook.ipynb" */%}} +``` + +## Example Notebook + +{{< callout type="info" >}}The following is an example of a notebook file that is included in the project assets folder.{{< /callout >}} + +{{% jupyter "example.ipynb" %}} + +[page-bundles]: https://gohugo.io/content-management/page-bundles/#leaf-bundles diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/others.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/others.md new file mode 100644 index 0000000000..8c96e65b3c --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/others.md @@ -0,0 +1,78 @@ +--- +title: Other Shortcodes +linkTitle: Others +sidebar: + exclude: true +--- + +{{< callout emoji="ℹ️" >}} + Some of these are Hugo built-in shortcodes. + These shortcodes are considered less stable and may be changed anytime. +{{< /callout >}} + +## Badge + +``` +{{}} +``` + +Result: + +{{< badge "Badge" >}} + +Variants: + +``` +{{}} +{{}} +{{}} +``` + +Result: + +{{< badge content="info" type="info" >}}   +{{< badge content="warning" type="warning" >}}   +{{< badge content="error" type="error" >}} + +With link: + +``` +{{}} +``` + +Result: + +{{< badge content="Releases" link="https://github.com/imfing/hextra/releases" >}} + + +## YouTube + +Embed a YouTube video. + +``` +{{}} +``` + +Result: + +{{< youtube id=dQw4w9WgXcQ loading=lazy >}} + +For more information, see [Hugo's YouTube Shortcode](https://gohugo.io/content-management/shortcodes/#youtube). + +## PDF + +With PDF shortcode, you can embed a PDF file in your content. + +``` +{{}} +``` + +You can also place the PDF file in your project directory and use the relative path. + +``` +{{}} +``` + +Example: + +{{< pdf "https://upload.wikimedia.org/wikipedia/commons/1/13/Example.pdf" >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.fa.md new file mode 100644 index 0000000000..c726882fa2 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.fa.md @@ -0,0 +1,42 @@ +--- +title: مراحل +next: /docs/guide/deploy-site +--- + +یک کامپوننت داخلی برای نمایش یک سری مراحل. + +## مثال + +{{% steps %}} + +### مرحله ۱ +این اولین مرحله است. + +### مرحله ۲ + +این دومین مرحله است. + +### مرحله ۳ + +این سومین مرحله است. + +{{% /steps %}} + + +## استفاده + +سرتیتر مارک‌داون h3 را در کد کوتاه `steps` قرار دهید. + +``` +{{%/* steps */%}} + +### مرحله ۱ + +این اولین مرحله است. + +### مرحله ۲ + +این دومین مرحله است. + +{{%/* /steps */%}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.md new file mode 100644 index 0000000000..6c66c073a4 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.md @@ -0,0 +1,47 @@ +--- +title: Steps +--- + +A built-in component to display a series of steps. + +## Example + +{{% steps %}} + +### Step 1 + +This is the first step. + +### Step 2 + +This is the second step. + +### Step 3 + +This is the third step. + +{{% /steps %}} + + +## Usage + +{{< callout emoji="ℹ️" >}} + Please note that this shortcode is intended **only for Markdown content**. + If you put HTML content or other shortcodes as step content, it may not render as expected. +{{< /callout >}} + +Put Markdown h3 header within `steps` shortcode. + +``` +{{%/* steps */%}} + +### Step 1 + +This is the first step. + +### Step 2 + +This is the second step. + +{{%/* /steps */%}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.zh-cn.md new file mode 100644 index 0000000000..59d8f05340 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/steps.zh-cn.md @@ -0,0 +1,42 @@ +--- +title: 步骤 +--- + +A built-in component to display a series of steps. + +## 示例 + +{{% steps %}} + +### 第一步 + +这是第一步。 + +### 第二步 + +这是第二步。 + +### 第三步 + +这是第三步。 + +{{% /steps %}} + + +## 使用 + +将 Markdown h3 标题放入 `steps` 短代码中。 + +``` +{{%/* steps */%}} + +### Step 1 + +This is the first step. + +### Step 2 + +This is the second step. + +{{%/* /steps */%}} +``` diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.fa.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.fa.md new file mode 100644 index 0000000000..6d01166c89 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.fa.md @@ -0,0 +1,92 @@ +--- +title: زبانه‌ها +--- + +## مثال + +{{< tabs items="JSON,YAML,TOML" >}} + +{{< tab >}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{< /tab >}} +{{< tab >}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{< /tab >}} +{{< tab >}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{< /tab >}} + +{{< /tabs >}} + +## استفاده + +### پیش‌فرض + +``` +{{}} + + {{}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{}} + {{}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{}} + {{}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{}} + +{{}} +``` + +### مشخص کردن زبانه‌ پیش‌فرض + +از ویژگی `defaultIndex` برای مشخص کردن زبانه‌ پیش‌فرض استفاده کنید. این شاخص از 0 شروع می‌شود. + +``` +{{}} + + {{}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{}} + {{}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{}} + {{}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{}} + +{{}} +``` + +زبانه‌ `YAML` به طور پیش‌فرض انتخاب می‌شود. + +{{< tabs items="JSON,YAML,TOML" defaultIndex="1" >}} + +{{< tab >}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{< /tab >}} +{{< tab >}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{< /tab >}} +{{< tab >}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{< /tab >}} + +{{< /tabs >}} + + +### استفاده از مارک‌داون + +سینتکس مارک‌داون از جمله بلوک کد نیز پشتیبانی می‌شود: + +```` +{{}} + + {{}} + ```json + { "سلام": "دنیا" } + ``` + {{}} + + ... زبانه‌های دیگر را به همین ترتیب اضافه کنید + +{{}} +```` + +{{< tabs items="JSON,YAML,TOML" >}} + + {{< tab >}} + ```json + { "سلام": "دنیا" } + ``` + {{< /tab >}} + + {{< tab >}} + ```yaml + سلام: دنیا + ``` + {{< /tab >}} + + {{< tab >}} + ```toml + سلام = "دنیا" + ``` + {{< /tab >}} + +{{< /tabs >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.md new file mode 100644 index 0000000000..c63547ad14 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.md @@ -0,0 +1,93 @@ +--- +title: Tabs +next: /docs/guide/deploy-site +--- + +## Example + +{{< tabs items="JSON,YAML,TOML" >}} + +{{< tab >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}} +{{< tab >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}} +{{< tab >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}} + +{{< /tabs >}} + +## Usage + +### Default + +``` +{{}} + + {{}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{}} + {{}}**YAML**: YAML is a human-readable data serialization language.{{}} + {{}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{}} + +{{}} +``` + +### Specify Selected Index + +Use `defaultIndex` property to specify the selected tab. The index starts from 0. + +``` +{{}} + + {{}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{}} + {{}}**YAML**: YAML is a human-readable data serialization language.{{}} + {{}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{}} + +{{}} +``` + +The `YAML` tab will be selected by default. + +{{< tabs items="JSON,YAML,TOML" defaultIndex="1" >}} + +{{< tab >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}} +{{< tab >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}} +{{< tab >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}} + +{{< /tabs >}} + + +### Use Markdown + +Markdown syntax including code block is also supported: + +```` +{{}} + + {{}} + ```json + { "hello": "world" } + ``` + {{}} + + ... add other tabs similarly + +{{}} +```` + +{{< tabs items="JSON,YAML,TOML" >}} + + {{< tab >}} + ```json + { "hello": "world" } + ``` + {{< /tab >}} + + {{< tab >}} + ```yaml + hello: world + ``` + {{< /tab >}} + + {{< tab >}} + ```toml + hello = "world" + ``` + {{< /tab >}} + +{{< /tabs >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.zh-cn.md new file mode 100644 index 0000000000..8e3b3ae473 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/shortcodes/tabs.zh-cn.md @@ -0,0 +1,93 @@ +--- +title: 标签页 +next: /docs/guide/deploy-site +--- + +## 示例 + +{{< tabs items="JSON,YAML,TOML" >}} + +{{< tab >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}} +{{< tab >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}} +{{< tab >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}} + +{{< /tabs >}} + +## 使用 + +### 默认情况下 + +``` +{{}} + + {{}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{}} + {{}}**YAML**: YAML is a human-readable data serialization language.{{}} + {{}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{}} + +{{}} +``` + +### 指定索引 + +使用 `defaultIndex` 属性指定选定的选项卡。索引从 0 开始。 + +``` +{{}} + + {{}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{}} + {{}}**YAML**: YAML is a human-readable data serialization language.{{}} + {{}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{}} + +{{}} +``` + +默认为 `YAML` + +{{< tabs items="JSON,YAML,TOML" defaultIndex="1" >}} + +{{< tab >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}} +{{< tab >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}} +{{< tab >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}} + +{{< /tabs >}} + + +### 使用 Markdown + +还支持包括代码块的 Markdown 语法: + +```` +{{}} + + {{}} + ```json + { "hello": "world" } + ``` + {{}} + + ... add other tabs similarly + +{{}} +```` + +{{< tabs items="JSON,YAML,TOML" >}} + + {{< tab >}} + ```json + { "hello": "world" } + ``` + {{< /tab >}} + + {{< tab >}} + ```yaml + hello: world + ``` + {{< /tab >}} + + {{< tab >}} + ```toml + hello = "world" + ``` + {{< /tab >}} + +{{< /tabs >}} diff --git a/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.fa.md b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.fa.md new file mode 100644 index 0000000000..cb7a49e9c1 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.fa.md @@ -0,0 +1,89 @@ +--- +title: "برجسته‌کردن سینتکس" +weight: 3 +--- + +هیوگو از [Chroma](https://github.com/alecthomas/chroma)، یک برجسته‌کننده سینتکس عمومی در Go خالص، برای برجسته‌سازی کردن سینتکس استفاده می‌کند. + توصیه می‌شود از بک‌تیک برای بلوک‌های کد در محتوای مارک‌داون استفاده کنید. مثلا: + + + +````markdown {filename="Markdown"} +```python +def say_hello(): + print("سلام!") +``` +```` + +به صورت زیر رندر خواهد شد: + +```python +def say_hello(): + print("سلام!") +``` + +## ویژگی‌ها + +### Filename + +برای افزودن نام پرونده یا عنوان به بلوک کد، `filename` را مشخص کنید: + +````markdown {filename="Markdown"} +```python {filename="hello.py"} +def say_hello(): + print("سلام!") +``` +```` + +```python {filename="hello.py"} +def say_hello(): + print("سلام!") +``` + +### شماره خطوط + +برای تنظیم شماره خطوط، ویژگی `linenos` را روی `table` قرار دهید و به صورت اختیاری `linenostart` را روی شماره‌ای که خط شروع می‌شود تنظیم کنید: + +````markdown {filename="Markdown"} +```python {linenos=table,linenostart=42} +def say_hello(): + print("سلام!") +``` +```` + +```python {linenos=table,linenostart=42} +def say_hello(): + print("سلام!") +``` + +### برجسته کردن خطوط + +برای برجسته کردن خطوط، ویژگی `hl_lines` را به فهرستی از شماره خطوط تنظیم کنید: + +````markdown {filename="Markdown"} +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("سلام!") + +def main(): + say_hello() +``` +```` + +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("سلام!") + +def main(): + say_hello() +``` + + +### دکمه کپی + +به طور پیش‌فرض، دکمه کپی برای بلوک‌های کد فعال است. + + +## زبان‌های پشتیبانی شده + +برای مشاهده فهرست زبان‌های پشتیبانی شده، لطفا به [مستندات Chroma](https://github.com/alecthomas/chroma#supported-languages) مراجعه کنید. diff --git a/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.md b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.md new file mode 100644 index 0000000000..45cc50c5ab --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.md @@ -0,0 +1,96 @@ +--- +title: "Syntax Highlighting" +weight: 3 +--- + +Hugo uses [Chroma](https://github.com/alecthomas/chroma), a general purpose syntax highlighter in pure Go, for syntax highlighting. +It is recommended to use backticks for code blocks in Markdown content. For example: + + + +````markdown {filename="Markdown"} +```python +def say_hello(): + print("Hello!") +``` +```` + +will be rendered as: + +```python +def say_hello(): + print("Hello!") +``` + +## Features + +### Filename + +To add a filename or title to the code block, set attribute `filename`: + +````markdown {filename="Markdown"} +```python {filename="hello.py"} +def say_hello(): + print("Hello!") +``` +```` + +```python {filename="hello.py"} +def say_hello(): + print("Hello!") +``` + +### Line Numbers + +To set line numbers, set attribute `linenos` to `table` and optionally set `linenostart` to the starting line number: + +````markdown {filename="Markdown"} +```python {linenos=table,linenostart=42} +def say_hello(): + print("Hello!") +``` +```` + +```python {linenos=table,linenostart=42} +def say_hello(): + print("Hello!") +``` + +### Highlighting Lines + +To highlight lines, set attribute `hl_lines` to a list of line numbers: + +````markdown {filename="Markdown"} +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("Hello!") + +def main(): + say_hello() +``` +```` + +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("Hello!") + +def main(): + say_hello() +``` + +### Copy Button + +By default, copy button is enabled for code blocks. Its behavior can changed by modifying the site configuration file: + +```yaml {linenos=table,linenostart=42,filename="hugo.yaml"} +params: + highlight: + copy: + enable: true + # hover | always + display: hover +``` + +## Supported Languages + +For a list of supported languages, please see the [Chroma documentation](https://github.com/alecthomas/chroma#supported-languages). diff --git a/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.zh-cn.md b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.zh-cn.md new file mode 100644 index 0000000000..798f0be477 --- /dev/null +++ b/themes/hextra/exampleSite/content/docs/guide/syntax-highlighting.zh-cn.md @@ -0,0 +1,89 @@ +--- +title: "代码高亮" +weight: 3 +--- + +Hugo 使用 [Chroma](https://github.com/alecthomas/chroma),一种纯 Golang 实现的代码高亮渲染器。 +建议对 Markdown 内容中的代码块使用反引号,例如: + + + +````markdown {filename="Markdown"} +```python +def say_hello(): + print("Hello!") +``` +```` + +将呈现为: + +```python +def say_hello(): + print("Hello!") +``` + +## 特性 + +### 文件名 + +要向代码块添加文件名或标题,请设置 `filename`: + +````markdown {filename="Markdown"} +```python {filename="hello.py"} +def say_hello(): + print("Hello!") +``` +```` + +```python {filename="hello.py"} +def say_hello(): + print("Hello!") +``` + +### 行号 + +如需设置行号,将 `linenos` 设置为 `table`,并将 `linenostart` 设置为起始行号: + +````markdown {filename="Markdown"} +```python {linenos=table,linenostart=42} +def say_hello(): + print("Hello!") +``` +```` + +```python {linenos=table,linenostart=42} +def say_hello(): + print("Hello!") +``` + +### 高亮行 + +显示高亮行,设置 `hl_lines` 为行号: + +````markdown {filename="Markdown"} +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("Hello!") + +def main(): + say_hello() +``` +```` + +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("Hello!") + +def main(): + say_hello() +``` + + +### 复制按钮 + +默认情况下,代码块复制按钮已自动启用。 + + +## 支持的编程语言 + +如需了解支持的编程语言,转至 [Chroma's documentation](https://github.com/alecthomas/chroma#supported-languages)。 diff --git a/themes/hextra/exampleSite/content/showcase/index.fa.md b/themes/hextra/exampleSite/content/showcase/index.fa.md new file mode 100644 index 0000000000..3e24c841ce --- /dev/null +++ b/themes/hextra/exampleSite/content/showcase/index.fa.md @@ -0,0 +1,20 @@ +--- +title: ویترین +description: "پروژه‌های متن‌باز که توسط هگزترا طراحی شده‌اند." +toc: false +layout: wide +--- + +
        + +

        +پروژه‌های متن‌باز که توسط هگزترا طراحی شده‌اند. +

        + +{{< cards >}} + {{< card link="https://developers.osuny.org" title="Osuny" image="https://raw.githubusercontent.com/noesya/osuny-developers/main/static/images/showcase-hextra/screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://porter.sh/" title="Porter" image="https://repository-images.githubusercontent.com/155893691/aa249c80-fcf3-11ea-93b0-30079e8d7de4" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://lutheranconfessions.org/" title="LutheranConfessions" image="https://github.com/imfing/hextra/assets/5097752/ad6625e4-88cd-4cad-b102-5399997d0359" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://github.com/imfing/hextra-starter-template/" title="Hextra Starter Template" image="https://user-images.githubusercontent.com/5097752/263551418-c403b9a9-a76c-47a6-8466-513d772ef0b7.jpg" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://developers.clever-cloud.com/" title="Clever Cloud Documentation" image="https://cellar-c2.services.clever-cloud.com/documentation/doc-screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/showcase/index.md b/themes/hextra/exampleSite/content/showcase/index.md new file mode 100644 index 0000000000..7d42365c94 --- /dev/null +++ b/themes/hextra/exampleSite/content/showcase/index.md @@ -0,0 +1,104 @@ +--- +title: Showcase +description: "Open source projects powered by Hextra" +toc: false +layout: wide +--- + +
        + +

        +Open source projects powered by Hextra +

        + +{{< cards >}} + {{< card + link="https://github.com/jonaspleyer/cellular_raza" + title="cellular_raza" + image="https://github.com/user-attachments/assets/f24c6455-b70a-419b-b025-e3d60101b673" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/mightymoud/sidekick" + title="Sidekick" + image="https://github.com/user-attachments/assets/4ae2a9d7-77b6-42eb-a9d7-5c4599f0f812" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/welding-torch/installc" + title="Install C" + image="https://github.com/user-attachments/assets/c9a85327-c7e7-40f1-830a-b4190a5e47bd" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/axivo/website" + title="AXIVO Docs" + image="https://github.com/imfing/hextra/assets/19806136/f22f0710-23a0-430b-8bad-616283b8a3e5" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/infracourse/web" + title="Stanford CS 40" + image="https://github.com/imfing/hextra/assets/5097752/8c29470b-3994-41c8-be9a-5b41476e6f3c" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/helixml/docs" + title="Helix Docs" + image="https://github.com/imfing/hextra/assets/5097752/78045af0-4922-4358-ae73-624770909db6" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://developers.clever-cloud.com/" + title="Clever Cloud Documentation" + image="https://cellar-c2.services.clever-cloud.com/documentation/doc-screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://owaspai.org/" + title="OWASP AI Security and Privacy Guide" + image="https://github.com/imfing/hextra/assets/5097752/fbb1d3a5-a0e8-4cfc-88cf-3523b0176c89" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://developers.osuny.org" + title="Osuny" + image="https://raw.githubusercontent.com/noesya/osuny-developers/main/static/images/showcase-hextra/screenshot.png" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card link="https://porter.sh/" + title="Porter" + image="https://github.com/imfing/hextra/assets/5097752/401abc3a-b4c3-4336-b95a-a6dd9afbc1de" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://hoa.moe/" + title="HITSZ OpenAuto" + image="https://raw.githubusercontent.com/HITSZ-OpenAuto/hoa.moe/main/static/images/showcase-new.png" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://lutheranconfessions.org/" + title="LutheranConfessions" + image="https://github.com/imfing/hextra/assets/5097752/ad6625e4-88cd-4cad-b102-5399997d0359" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/imfing/hextra-starter-template/" + title="Hextra Starter Template" + image="https://user-images.githubusercontent.com/5097752/263551418-c403b9a9-a76c-47a6-8466-513d772ef0b7.jpg" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + +{{< /cards >}} diff --git a/themes/hextra/exampleSite/content/showcase/index.zh-cn.md b/themes/hextra/exampleSite/content/showcase/index.zh-cn.md new file mode 100644 index 0000000000..4feb761c70 --- /dev/null +++ b/themes/hextra/exampleSite/content/showcase/index.zh-cn.md @@ -0,0 +1,84 @@ +--- +title: 项目展示 +description: "由 Hextra 驱动的开源网站和项目。" +toc: false +layout: wide +--- + +
        + +

        +由 Hextra 驱动的开源网站和项目。 +

        + +{{< cards >}} + + {{< card + link="https://github.com/axivo/website" + title="AXIVO Docs" + image="https://github.com/imfing/hextra/assets/19806136/f22f0710-23a0-430b-8bad-616283b8a3e5" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/infracourse/web" + title="Stanford CS 40" + image="https://github.com/imfing/hextra/assets/5097752/8c29470b-3994-41c8-be9a-5b41476e6f3c" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/helixml/docs" + title="Helix Docs" + image="https://github.com/imfing/hextra/assets/5097752/78045af0-4922-4358-ae73-624770909db6" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://developers.clever-cloud.com/" + title="Clever Cloud Documentation" + image="https://cellar-c2.services.clever-cloud.com/documentation/doc-screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://owaspai.org/" + title="OWASP AI Security and Privacy Guide" + image="https://github.com/imfing/hextra/assets/5097752/fbb1d3a5-a0e8-4cfc-88cf-3523b0176c89" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://developers.osuny.org" + title="Osuny" + image="https://raw.githubusercontent.com/noesya/osuny-developers/main/static/images/showcase-hextra/screenshot.png" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card link="https://porter.sh/" + title="Porter" + image="https://github.com/imfing/hextra/assets/5097752/401abc3a-b4c3-4336-b95a-a6dd9afbc1de" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://hoa.moe/" + title="HITSZ OpenAuto" + image="https://raw.githubusercontent.com/HITSZ-OpenAuto/hoa.moe/main/static/images/showcase-new.png" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://lutheranconfessions.org/" + title="LutheranConfessions" + image="https://github.com/imfing/hextra/assets/5097752/ad6625e4-88cd-4cad-b102-5399997d0359" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + + {{< card + link="https://github.com/imfing/hextra-starter-template/" + title="Hextra Starter Template" + image="https://user-images.githubusercontent.com/5097752/263551418-c403b9a9-a76c-47a6-8466-513d772ef0b7.jpg" + imageStyle="object-fit:cover; aspect-ratio:16/9;" + >}} + +{{< /cards >}} diff --git a/themes/hextra/exampleSite/go.mod b/themes/hextra/exampleSite/go.mod new file mode 100644 index 0000000000..1ef2caa349 --- /dev/null +++ b/themes/hextra/exampleSite/go.mod @@ -0,0 +1,5 @@ +module github.com/imfing/hextra/exampleSite + +go 1.20 + +replace github.com/imfing/hextra => ../ diff --git a/themes/hextra/exampleSite/hugo.work b/themes/hextra/exampleSite/hugo.work new file mode 100644 index 0000000000..fab7283b50 --- /dev/null +++ b/themes/hextra/exampleSite/hugo.work @@ -0,0 +1,3 @@ +go 1.20 + +use ../ diff --git a/themes/hextra/exampleSite/hugo.yaml b/themes/hextra/exampleSite/hugo.yaml new file mode 100644 index 0000000000..d2c03d0880 --- /dev/null +++ b/themes/hextra/exampleSite/hugo.yaml @@ -0,0 +1,175 @@ +# Configuration +baseURL: "https://example.com/" +title: "Hextra" + +enableRobotsTXT: true +enableGitInfo: true +# enableEmoji: false +hasCJKLanguage: true + +# services: +# googleAnalytics: +# ID: G-MEASUREMENT_ID + +outputs: + home: [HTML] + page: [HTML] + section: [HTML, RSS] + +defaultContentLanguage: en +languages: + en: + languageName: English + weight: 1 + title: Hextra + zh-cn: + languageName: 简体中文 + languageCode: zh-CN + weight: 2 + title: Hextra + fa: + languageName: فارسی + languageCode: fa + languageDirection: rtl + weight: 3 + title: هگزترا + +module: + hugoVersion: + extended: true + min: "0.112.0" + + workspace: hugo.work + imports: + - path: github.com/imfing/hextra + +markup: + goldmark: + renderer: + unsafe: true + highlight: + noClasses: false + +enableInlineShortcodes: true + +menu: + main: + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 1 + - identifier: showcase + name: Showcase + pageRef: /showcase + weight: 2 + - identifier: blog + name: Blog + pageRef: /blog + weight: 3 + - identifier: about + name: About + pageRef: /about + weight: 4 + - name: Search + weight: 5 + params: + type: search + - name: GitHub + weight: 6 + url: "https://github.com/imfing/hextra" + params: + icon: github + + sidebar: + - identifier: more + name: More + params: + type: separator + weight: 1 + - identifier: about + name: "About" + pageRef: "/about" + weight: 2 + - identifier: hugoDocs + name: "Hugo Docs ↗" + url: "https://gohugo.io/documentation/" + weight: 3 + +params: + description: Modern, responsive, batteries-included Hugo theme for creating beautiful static websites. + + navbar: + displayTitle: true + displayLogo: true + logo: + path: images/logo.svg + dark: images/logo-dark.svg + # width: 40 + # height: 20 + # link: / + width: wide + + page: + # full (100%), wide (90rem), normal (1280px) + width: normal + + theme: + # light | dark | system + default: system + displayToggle: true + + footer: + enable: true + displayCopyright: true + displayPoweredBy: true + width: normal + + displayUpdatedDate: true + dateFormat: "January 2, 2006" + + # Search + # flexsearch is enabled by default + search: + enable: true + type: flexsearch + + flexsearch: + # index page by: content | summary | heading | title + index: content + # full | forward | reverse | strict + # https://github.com/nextapps-de/flexsearch/#tokenizer-prefix-search + tokenize: forward + + editURL: + enable: true + base: "https://github.com/imfing/hextra/edit/main/exampleSite/content" + + blog: + list: + displayTags: true + # date | lastmod | publishDate | title | weight + sortBy: date + sortOrder: desc # or "asc" + + highlight: + copy: + enable: true + # hover | always + display: hover + + comments: + enable: false + type: giscus + + # https://giscus.app/ + giscus: + repo: imfing/hextra + repoId: R_kgDOJ9fJag + category: General + categoryId: DIC_kwDOJ9fJas4CY7gW + # mapping: pathname + # strict: 0 + # reactionsEnabled: 1 + # emitMetadata: 0 + # inputPosition: top + # lang: en diff --git a/themes/hextra/exampleSite/hugo_stats.json b/themes/hextra/exampleSite/hugo_stats.json new file mode 100644 index 0000000000..2d498b3af7 --- /dev/null +++ b/themes/hextra/exampleSite/hugo_stats.json @@ -0,0 +1,625 @@ +{ + "htmlElements": { + "tags": [ + "a", + "article", + "aside", + "blockquote", + "body", + "br", + "button", + "cite", + "code", + "del", + "details", + "div", + "em", + "figcaption", + "figure", + "footer", + "g", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "hr", + "html", + "iframe", + "img", + "input", + "kbd", + "li", + "link", + "main", + "meta", + "nav", + "ol", + "p", + "path", + "pre", + "script", + "span", + "strong", + "style", + "sub", + "summary", + "sup", + "svg", + "table", + "tbody", + "td", + "th", + "thead", + "time", + "title", + "tr", + "ul" + ], + "classes": [ + "-hx-mb-0.5", + "-hx-ml-2", + "-hx-mr-2", + "-hx-mt-20", + "[-webkit-tap-highlight-color:transparent]", + "[-webkit-touch-callout:none]", + "[counter-reset:step]", + "[hyphens:auto]", + "[transition:background-color_1.5s_ease]", + "[word-break:break-word]", + "active:hx-bg-gray-400/20", + "active:hx-opacity-50", + "active:hx-shadow-gray-200", + "active:hx-shadow-sm", + "before:hx-absolute", + "before:hx-bg-glass-gradient", + "before:hx-bg-gray-200", + "before:hx-content-[\"\"]", + "before:hx-content-['#']", + "before:hx-content-['']", + "before:hx-inline-block", + "before:hx-inset-0", + "before:hx-inset-y-1", + "before:hx-mr-1", + "before:hx-opacity-25", + "before:hx-pointer-events-none", + "before:hx-transition-transform", + "before:hx-w-px", + "chroma", + "content", + "contrast-more:dark:hover:hx-border-gray-50", + "contrast-more:dark:hx-border-current", + "contrast-more:dark:hx-border-gray-50", + "contrast-more:dark:hx-border-neutral-400", + "contrast-more:dark:hx-border-primary-500", + "contrast-more:dark:hx-shadow-[0_0_0_1px_#fff]", + "contrast-more:dark:hx-shadow-none", + "contrast-more:dark:hx-text-current", + "contrast-more:dark:hx-text-gray-100", + "contrast-more:dark:hx-text-gray-300", + "contrast-more:dark:hx-text-gray-50", + "contrast-more:hover:hx-border-gray-900", + "contrast-more:hx-border", + "contrast-more:hx-border-current", + "contrast-more:hx-border-gray-800", + "contrast-more:hx-border-gray-900", + "contrast-more:hx-border-neutral-400", + "contrast-more:hx-border-primary-500", + "contrast-more:hx-border-t", + "contrast-more:hx-border-transparent", + "contrast-more:hx-font-bold", + "contrast-more:hx-shadow-[0_0_0_1px_#000]", + "contrast-more:hx-shadow-none", + "contrast-more:hx-text-current", + "contrast-more:hx-text-gray-700", + "contrast-more:hx-text-gray-800", + "contrast-more:hx-text-gray-900", + "contrast-more:hx-underline", + "copy-icon", + "dark:before:hx-bg-neutral-800", + "dark:before:hx-invert", + "dark:contrast-more:hx-border-neutral-400", + "dark:focus:hx-bg-dark", + "dark:focus:hx-ring-primary-800", + "dark:hover:hx-bg-gray-100/5", + "dark:hover:hx-bg-neutral-700", + "dark:hover:hx-bg-neutral-800", + "dark:hover:hx-bg-neutral-900", + "dark:hover:hx-bg-primary-100/5", + "dark:hover:hx-bg-primary-700", + "dark:hover:hx-border-gray-100", + "dark:hover:hx-border-gray-600", + "dark:hover:hx-border-neutral-500", + "dark:hover:hx-border-neutral-700", + "dark:hover:hx-border-neutral-800", + "dark:hover:hx-shadow-none", + "dark:hover:hx-text-gray-100", + "dark:hover:hx-text-gray-200", + "dark:hover:hx-text-gray-300", + "dark:hover:hx-text-gray-50", + "dark:hover:hx-text-neutral-50", + "dark:hover:hx-text-white", + "dark:hx-bg-black/60", + "dark:hx-bg-blue-900/30", + "dark:hx-bg-dark", + "dark:hx-bg-dark/50", + "dark:hx-bg-gray-50/10", + "dark:hx-bg-neutral-800", + "dark:hx-bg-neutral-900", + "dark:hx-bg-orange-400/20", + "dark:hx-bg-primary-300/10", + "dark:hx-bg-primary-400/10", + "dark:hx-bg-primary-600", + "dark:hx-bg-red-900/30", + "dark:hx-bg-yellow-700/30", + "dark:hx-block", + "dark:hx-border-blue-200/30", + "dark:hx-border-gray-100/20", + "dark:hx-border-gray-400", + "dark:hx-border-neutral-700", + "dark:hx-border-neutral-800", + "dark:hx-border-orange-400/30", + "dark:hx-border-red-200/30", + "dark:hx-border-white/10", + "dark:hx-border-yellow-200/30", + "dark:hx-from-gray-100", + "dark:hx-hidden", + "dark:hx-opacity-80", + "dark:hx-ring-white/20", + "dark:hx-shadow-[0_-12px_16px_#111]", + "dark:hx-shadow-[0_-1px_0_rgba(255,255,255,.1)_inset]", + "dark:hx-shadow-none", + "dark:hx-text-blue-200", + "dark:hx-text-gray-100", + "dark:hx-text-gray-200", + "dark:hx-text-gray-300", + "dark:hx-text-gray-400", + "dark:hx-text-gray-50", + "dark:hx-text-neutral-200", + "dark:hx-text-neutral-400", + "dark:hx-text-orange-300", + "dark:hx-text-primary-600", + "dark:hx-text-red-200", + "dark:hx-text-slate-100", + "dark:hx-text-yellow-200", + "dark:hx-to-gray-400", + "dark:placeholder:hx-text-gray-400", + "data-[state=closed]:hx-hidden", + "data-[state=open]:hx-hidden", + "data-[state=selected]:hx-block", + "data-[state=selected]:hx-border-primary-500", + "data-[state=selected]:hx-text-primary-600", + "dataframe", + "filename", + "first:hx-mt-0", + "focus:hx-bg-white", + "focus:hx-outline-none", + "focus:hx-ring-4", + "focus:hx-ring-primary-300", + "footnote-backref", + "footnote-ref", + "footnotes", + "group-[.copied]/copybtn:hx-block", + "group-[.copied]/copybtn:hx-hidden", + "group-data-[theme=dark]:hx-hidden", + "group-data-[theme=light]:hx-hidden", + "group-hover/code:hx-opacity-100", + "group-hover:hx-underline", + "group-open:before:hx-rotate-90", + "hamburger-menu", + "hextra-badge", + "hextra-card", + "hextra-card-icon", + "hextra-card-image", + "hextra-card-subtitle", + "hextra-card-tag", + "hextra-cards", + "hextra-code-block", + "hextra-code-copy-btn", + "hextra-code-copy-btn-container", + "hextra-feature-card", + "hextra-feature-grid", + "hextra-filetree", + "hextra-filetree-folder", + "hextra-footer", + "hextra-jupyter-code-cell", + "hextra-jupyter-code-cell-outputs", + "hextra-jupyter-code-cell-outputs-container", + "hextra-pdf", + "hextra-scrollbar", + "hextra-sidebar-collapsible-button", + "hextra-tabs-panel", + "hextra-tabs-toggle", + "hextra-toc", + "highlight", + "hover:dark:hx-bg-primary-500/10", + "hover:dark:hx-text-primary-600", + "hover:hx-bg-gray-100", + "hover:hx-bg-gray-800/5", + "hover:hx-bg-primary-50", + "hover:hx-bg-primary-700", + "hover:hx-bg-slate-50", + "hover:hx-border-gray-200", + "hover:hx-border-gray-300", + "hover:hx-border-gray-400", + "hover:hx-border-gray-900", + "hover:hx-opacity-60", + "hover:hx-opacity-75", + "hover:hx-shadow-gray-100", + "hover:hx-shadow-lg", + "hover:hx-shadow-md", + "hover:hx-text-black", + "hover:hx-text-gray-800", + "hover:hx-text-gray-900", + "hover:hx-text-primary-600", + "hx-absolute", + "hx-align-[-2.5px]", + "hx-align-text-bottom", + "hx-appearance-none", + "hx-aspect-auto", + "hx-bg-black/80", + "hx-bg-black/[.05]", + "hx-bg-blue-100", + "hx-bg-clip-text", + "hx-bg-gradient-to-r", + "hx-bg-gray-100", + "hx-bg-neutral-50", + "hx-bg-orange-50", + "hx-bg-primary-100", + "hx-bg-primary-400", + "hx-bg-primary-600", + "hx-bg-primary-700/5", + "hx-bg-red-100", + "hx-bg-transparent", + "hx-bg-white", + "hx-bg-yellow-50", + "hx-block", + "hx-border", + "hx-border-b", + "hx-border-b-2", + "hx-border-black/5", + "hx-border-blue-200", + "hx-border-gray-200", + "hx-border-gray-500", + "hx-border-orange-100", + "hx-border-red-200", + "hx-border-t", + "hx-border-transparent", + "hx-border-yellow-100", + "hx-bottom-0", + "hx-break-words", + "hx-capitalize", + "hx-cursor-default", + "hx-cursor-pointer", + "hx-decoration-from-font", + "hx-duration-200", + "hx-duration-75", + "hx-ease-in", + "hx-fixed", + "hx-flex", + "hx-flex-col", + "hx-flex-wrap", + "hx-font-bold", + "hx-font-extrabold", + "hx-font-medium", + "hx-font-mono", + "hx-font-normal", + "hx-font-semibold", + "hx-from-gray-900", + "hx-gap-1", + "hx-gap-2", + "hx-gap-4", + "hx-gap-x-1.5", + "hx-gap-y-2", + "hx-grid", + "hx-group", + "hx-group/code", + "hx-group/copybtn", + "hx-grow", + "hx-h-0", + "hx-h-16", + "hx-h-2", + "hx-h-3.5", + "hx-h-4", + "hx-h-5", + "hx-h-7", + "hx-h-[18px]", + "hx-h-full", + "hx-hidden", + "hx-inline", + "hx-inline-block", + "hx-inline-flex", + "hx-inset-0", + "hx-inset-x-0", + "hx-inset-y-0", + "hx-items-center", + "hx-items-start", + "hx-justify-between", + "hx-justify-center", + "hx-justify-end", + "hx-justify-items-start", + "hx-justify-start", + "hx-leading-5", + "hx-leading-6", + "hx-leading-7", + "hx-leading-none", + "hx-leading-tight", + "hx-left-[24px]", + "hx-left-[36px]", + "hx-line-clamp-3", + "hx-list-none", + "hx-m-[11px]", + "hx-max-h-64", + "hx-max-h-[calc(100vh-var(--navbar-height)-env(safe-area-inset-bottom))]", + "hx-max-h-[min(calc(50vh-11rem-env(safe-area-inset-bottom)),400px)]", + "hx-max-w-6xl", + "hx-max-w-[50%]", + "hx-max-w-[90rem]", + "hx-max-w-[min(calc(100vw-2rem),calc(100%+20rem))]", + "hx-max-w-none", + "hx-max-w-screen-xl", + "hx-mb-10", + "hx-mb-12", + "hx-mb-16", + "hx-mb-2", + "hx-mb-4", + "hx-mb-6", + "hx-mb-8", + "hx-min-h-[100px]", + "hx-min-h-[calc(100vh-var(--navbar-height))]", + "hx-min-w-0", + "hx-min-w-[18px]", + "hx-min-w-[24px]", + "hx-min-w-full", + "hx-ml-4", + "hx-mr-1", + "hx-mr-2", + "hx-mt-1", + "hx-mt-1.5", + "hx-mt-12", + "hx-mt-16", + "hx-mt-2", + "hx-mt-4", + "hx-mt-5", + "hx-mt-6", + "hx-mt-8", + "hx-mx-1", + "hx-mx-2", + "hx-mx-4", + "hx-mx-auto", + "hx-my-1.5", + "hx-my-2", + "hx-no-underline", + "hx-opacity-0", + "hx-opacity-50", + "hx-opacity-80", + "hx-order-last", + "hx-origin-center", + "hx-overflow-auto", + "hx-overflow-hidden", + "hx-overflow-x-auto", + "hx-overflow-x-hidden", + "hx-overflow-y-auto", + "hx-overflow-y-hidden", + "hx-overscroll-contain", + "hx-overscroll-x-contain", + "hx-p-0.5", + "hx-p-1", + "hx-p-1.5", + "hx-p-2", + "hx-p-4", + "hx-p-6", + "hx-pb-8", + "hx-pb-[env(safe-area-inset-bottom)]", + "hx-pb-px", + "hx-pl-[max(env(safe-area-inset-left),1.5rem)]", + "hx-pointer-events-none", + "hx-pr-2", + "hx-pr-4", + "hx-pr-[calc(env(safe-area-inset-right)-1.5rem)]", + "hx-pr-[max(env(safe-area-inset-left),1.5rem)]", + "hx-pr-[max(env(safe-area-inset-right),1.5rem)]", + "hx-pt-4", + "hx-pt-6", + "hx-pt-8", + "hx-px-1.5", + "hx-px-2", + "hx-px-2.5", + "hx-px-3", + "hx-px-4", + "hx-px-6", + "hx-py-1", + "hx-py-1.5", + "hx-py-12", + "hx-py-2", + "hx-py-2.5", + "hx-py-3", + "hx-py-4", + "hx-relative", + "hx-right-0", + "hx-ring-1", + "hx-ring-black/5", + "hx-rounded", + "hx-rounded-3xl", + "hx-rounded-full", + "hx-rounded-lg", + "hx-rounded-md", + "hx-rounded-sm", + "hx-rounded-t", + "hx-rounded-xl", + "hx-scroll-my-6", + "hx-scroll-py-6", + "hx-select-none", + "hx-shadow", + "hx-shadow-[0_-12px_16px_#fff]", + "hx-shadow-[0_-12px_16px_white]", + "hx-shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)]", + "hx-shadow-gray-100", + "hx-shadow-lg", + "hx-shadow-sm", + "hx-shadow-xl", + "hx-shrink-0", + "hx-sr-only", + "hx-sticky", + "hx-text-2xl", + "hx-text-4xl", + "hx-text-[.65rem]", + "hx-text-[10px]", + "hx-text-[color:hsl(var(--primary-hue),100%,50%)]", + "hx-text-base", + "hx-text-blue-900", + "hx-text-center", + "hx-text-current", + "hx-text-ellipsis", + "hx-text-gray-100", + "hx-text-gray-500", + "hx-text-gray-600", + "hx-text-gray-700", + "hx-text-gray-800", + "hx-text-gray-900", + "hx-text-left", + "hx-text-lg", + "hx-text-orange-800", + "hx-text-primary-800", + "hx-text-red-900", + "hx-text-slate-900", + "hx-text-sm", + "hx-text-transparent", + "hx-text-white", + "hx-text-xl", + "hx-text-xs", + "hx-text-yellow-900", + "hx-to-gray-600", + "hx-top-0", + "hx-top-16", + "hx-top-8", + "hx-top-[40%]", + "hx-top-full", + "hx-tracking-tight", + "hx-tracking-tighter", + "hx-transition", + "hx-transition-all", + "hx-transition-colors", + "hx-transition-opacity", + "hx-transition-transform", + "hx-underline", + "hx-underline-offset-2", + "hx-w-2", + "hx-w-3.5", + "hx-w-4", + "hx-w-64", + "hx-w-[110%]", + "hx-w-[180%]", + "hx-w-full", + "hx-w-max", + "hx-w-screen", + "hx-whitespace-nowrap", + "hx-z-10", + "hx-z-20", + "hx-z-[-1]", + "icon", + "language-options", + "language-switcher", + "last-of-type:hx-mb-0", + "lntable", + "lntd", + "ltr:before:hx-left-0", + "ltr:hx--mr-4", + "ltr:hx-border-l", + "ltr:hx-ml-1", + "ltr:hx-ml-3", + "ltr:hx-ml-auto", + "ltr:hx-mr-auto", + "ltr:hx-pl-12", + "ltr:hx-pl-16", + "ltr:hx-pl-3", + "ltr:hx-pl-4", + "ltr:hx-pl-5", + "ltr:hx-pl-6", + "ltr:hx-pl-8", + "ltr:hx-pr-0", + "ltr:hx-pr-2", + "ltr:hx-pr-4", + "ltr:hx-pr-9", + "ltr:hx-right-1.5", + "ltr:hx-right-3", + "ltr:hx-rotate-180", + "ltr:hx-text-right", + "ltr:md:hx-left-auto", + "max-lg:hx-min-h-[340px]", + "max-md:[transform:translate3d(0,-100%,0)]", + "max-md:hx-hidden", + "max-md:hx-min-h-[340px]", + "max-sm:hx-grid-cols-1", + "max-xl:hx-hidden", + "md:hx-aspect-[1.1/1]", + "md:hx-h-[calc(100vh-var(--navbar-height)-var(--menu-height))]", + "md:hx-hidden", + "md:hx-inline-block", + "md:hx-justify-start", + "md:hx-max-h-[min(calc(100vh-5rem-env(safe-area-inset-bottom)),400px)]", + "md:hx-pt-12", + "md:hx-px-12", + "md:hx-self-start", + "md:hx-shrink-0", + "md:hx-sticky", + "md:hx-text-5xl", + "md:hx-text-lg", + "md:hx-text-sm", + "md:hx-top-16", + "md:hx-w-64", + "mermaid", + "mobile-menu-overlay", + "nav-container", + "nav-container-blur", + "next-error-h1", + "not-prose", + "open", + "placeholder:hx-text-gray-500", + "print:hx-bg-transparent", + "print:hx-hidden", + "rtl:-hx-rotate-180", + "rtl:before:hx-right-0", + "rtl:before:hx-rotate-180", + "rtl:hx--ml-4", + "rtl:hx-border-r", + "rtl:hx-left-1.5", + "rtl:hx-left-3", + "rtl:hx-ml-auto", + "rtl:hx-mr-1", + "rtl:hx-mr-3", + "rtl:hx-mr-auto", + "rtl:hx-pl-2", + "rtl:hx-pl-4", + "rtl:hx-pl-9", + "rtl:hx-pr-12", + "rtl:hx-pr-16", + "rtl:hx-pr-3", + "rtl:hx-pr-4", + "rtl:hx-pr-5", + "rtl:hx-pr-6", + "rtl:hx-pr-8", + "rtl:hx-text-left", + "rtl:md:hx-right-auto", + "search-input", + "search-results", + "search-wrapper", + "sidebar-active-item", + "sidebar-container", + "sm:hx-block", + "sm:hx-flex", + "sm:hx-items-start", + "sm:hx-text-xl", + "sm:hx-w-[110%]", + "sm:max-lg:hx-grid-cols-2", + "steps", + "subheading-anchor", + "success-icon", + "theme-toggle", + "xl:hx-block" + ], + "ids": null + } +} diff --git a/themes/hextra/exampleSite/i18n/fa.yaml b/themes/hextra/exampleSite/i18n/fa.yaml new file mode 100644 index 0000000000..595eac52d3 --- /dev/null +++ b/themes/hextra/exampleSite/i18n/fa.yaml @@ -0,0 +1,6 @@ +documentation: "مستندات" +showcase: "ویترین" +blog: "وبلاگ" +about: "درباره ما" +more: "بیشتر" +hugoDocs: "مستندات هیوگو ↖" diff --git a/themes/hextra/exampleSite/i18n/zh-cn.yaml b/themes/hextra/exampleSite/i18n/zh-cn.yaml new file mode 100644 index 0000000000..fac841119c --- /dev/null +++ b/themes/hextra/exampleSite/i18n/zh-cn.yaml @@ -0,0 +1,6 @@ +documentation: "文档" +showcase: "项目展示" +blog: "博客" +about: "关于" +more: "更多" +hugoDocs: "Hugo 文档 ↗" diff --git a/themes/hextra/exampleSite/layouts/partials/custom/head-end.html b/themes/hextra/exampleSite/layouts/partials/custom/head-end.html new file mode 100644 index 0000000000..62be79541b --- /dev/null +++ b/themes/hextra/exampleSite/layouts/partials/custom/head-end.html @@ -0,0 +1,6 @@ + + diff --git a/themes/hextra/exampleSite/static/images/card-image-unprocessed.jpg b/themes/hextra/exampleSite/static/images/card-image-unprocessed.jpg new file mode 100644 index 0000000000..6b46052d86 Binary files /dev/null and b/themes/hextra/exampleSite/static/images/card-image-unprocessed.jpg differ diff --git a/themes/hextra/exampleSite/static/images/hextra-doc.webp b/themes/hextra/exampleSite/static/images/hextra-doc.webp new file mode 100644 index 0000000000..2ef0c1dfab Binary files /dev/null and b/themes/hextra/exampleSite/static/images/hextra-doc.webp differ diff --git a/themes/hextra/exampleSite/static/images/hextra-markdown.webp b/themes/hextra/exampleSite/static/images/hextra-markdown.webp new file mode 100644 index 0000000000..1c322ba3ec Binary files /dev/null and b/themes/hextra/exampleSite/static/images/hextra-markdown.webp differ diff --git a/themes/hextra/exampleSite/static/images/hextra-search.webp b/themes/hextra/exampleSite/static/images/hextra-search.webp new file mode 100644 index 0000000000..8e7ae1d43e Binary files /dev/null and b/themes/hextra/exampleSite/static/images/hextra-search.webp differ diff --git a/themes/hextra/go.mod b/themes/hextra/go.mod new file mode 100644 index 0000000000..0269be6f1c --- /dev/null +++ b/themes/hextra/go.mod @@ -0,0 +1,3 @@ +module github.com/imfing/hextra + +go 1.20 diff --git a/themes/hextra/i18n/cs.yaml b/themes/hextra/i18n/cs.yaml new file mode 100644 index 0000000000..ea606b2870 --- /dev/null +++ b/themes/hextra/i18n/cs.yaml @@ -0,0 +1,14 @@ +backToTop: "Zpět nahoru" +changeLanguage: "Změnit jazyk" +changeTheme: "Změnit vzhled" +copyCode: "Zkopírovat kód" +copyright: "© 2024 Hextra Project." +dark: "Tmavý" +editThisPage: "Upravit tuto stránku na GitHubu →" +lastUpdated: "Naposledy změněno" +light: "Světlý" +noResultsFound: "Nebylo nic nalezeno." +onThisPage: "Na této stránce" +poweredBy: "Powered by Hextra" +readMore: "Přečíst víc →" +searchPlaceholder: "Hledat..." diff --git a/themes/hextra/i18n/de.yaml b/themes/hextra/i18n/de.yaml new file mode 100644 index 0000000000..27060bbc71 --- /dev/null +++ b/themes/hextra/i18n/de.yaml @@ -0,0 +1,14 @@ +backToTop: "Nach oben" +changeLanguage: "Sprache ändern" +changeTheme: "Darstellung ändern" +copyCode: "Code kopieren" +copyright: "© 2024 Hextra Project." +dark: "Dunkel" +editThisPage: "Diese Seite auf GitHub bearbeiten →" +lastUpdated: "Zuletzt aktualisiert am" +light: "Hell" +noResultsFound: "Keine Ergebnisse gefunden." +onThisPage: "Auf dieser Seite" +poweredBy: "Unterstützt durch Hextra" +readMore: "Mehr lesen →" +searchPlaceholder: "Suchen..." diff --git a/themes/hextra/i18n/en.yaml b/themes/hextra/i18n/en.yaml new file mode 100644 index 0000000000..ac6bff8c22 --- /dev/null +++ b/themes/hextra/i18n/en.yaml @@ -0,0 +1,14 @@ +backToTop: "Scroll to top" +changeLanguage: "Change language" +changeTheme: "Change theme" +copyCode: "Copy code" +copyright: "© 2024 Hextra Project." +dark: "Dark" +editThisPage: "Edit this page on GitHub →" +lastUpdated: "Last updated on" +light: "Light" +noResultsFound: "No results found." +onThisPage: "On this page" +poweredBy: "Powered by Hextra" +readMore: "Read more →" +searchPlaceholder: "Search..." diff --git a/themes/hextra/i18n/es.yaml b/themes/hextra/i18n/es.yaml new file mode 100644 index 0000000000..5fa47ce341 --- /dev/null +++ b/themes/hextra/i18n/es.yaml @@ -0,0 +1,13 @@ +backToTop: "Subir al inicio" +changeLanguage: "Cambiar idioma" +changeTheme: "Cambiar tema" +copyright: "© 2024 Proyecto Hextra." +dark: "Oscuro" +editThisPage: "Edita esta página en GitHub →" +lastUpdated: "Última actualización" +light: "Claro" +noResultsFound: "No hubo resultados." +onThisPage: "En esta página" +poweredBy: "Con tecnología de Hextra" +readMore: "Leer más →" +searchPlaceholder: "Buscar..." diff --git a/themes/hextra/i18n/fa.yaml b/themes/hextra/i18n/fa.yaml new file mode 100644 index 0000000000..c97766c8a2 --- /dev/null +++ b/themes/hextra/i18n/fa.yaml @@ -0,0 +1,14 @@ +backToTop: "به بالا بروید" +changeLanguage: "تغییر زبان" +changeTheme: "تغییر تم" +copyCode: "کپی کد" +copyright: "© ۲۰۲۴ پروژه هگزترا." +dark: "تیره" +editThisPage: "ویرایش این صفحه در گیت‌هاب ←" +lastUpdated: "آخرین به‌روزرسانی در" +light: "روشن" +noResultsFound: "هیچ نتیجه‌ای پیدا نشد." +onThisPage: "در این صفحه" +poweredBy: "طراحی شده توسط هگزترا" +readMore: "ادامه مطلب ←" +searchPlaceholder: "جستجو..." diff --git a/themes/hextra/i18n/fr.yaml b/themes/hextra/i18n/fr.yaml new file mode 100644 index 0000000000..f9321cf183 --- /dev/null +++ b/themes/hextra/i18n/fr.yaml @@ -0,0 +1,13 @@ +backToTop: "Revenir en haut" +changeLanguage: "Changer la langue" +changeTheme: "Thème d'affichage" +copyright: "© 2024 Hextra Project." +dark: "Sombre" +editThisPage: "Modifier cette page sur GitHub →" +lastUpdated: "Dernière modification" +light: "Clair" +noResultsFound: "Pas de résultats trouvés" +onThisPage: "Sur cette page" +poweredBy: "Propulsé par Hextra" +readMore: "Lire plus →" +searchPlaceholder: "Rechercher..." diff --git a/themes/hextra/i18n/he.yaml b/themes/hextra/i18n/he.yaml new file mode 100644 index 0000000000..6376285d23 --- /dev/null +++ b/themes/hextra/i18n/he.yaml @@ -0,0 +1,14 @@ +backToTop: "גלול למעלה" +changeLanguage: "שנה שפה" +changeTheme: "שנה ערכת צבעים" +copyCode: "העתק קוד" +copyright: "© 2024 פרוייקט Hextra" +dark: "כהה" +editThisPage: "← ערוך עמוד זה בגיטהאב" +lastUpdated: "עודכן לאחרונה ב" +light: "בהיר" +noResultsFound: "לא נמצאו תוצאות." +onThisPage: "בעמוד זה" +poweredBy: "Hextra מופעל על-ידי" +readMore: "← קרא עוד" +searchPlaceholder: "חיפוש..." diff --git a/themes/hextra/i18n/ja.yaml b/themes/hextra/i18n/ja.yaml new file mode 100644 index 0000000000..2e537435d6 --- /dev/null +++ b/themes/hextra/i18n/ja.yaml @@ -0,0 +1,13 @@ +backToTop: "トップにスクロール" +changeLanguage: "言語を変更" +changeTheme: "テーマを変更" +copyright: "© 2024 Hextra プロジェクト。" +dark: "ダーク" +editThisPage: "このページをGitHubで編集 →" +lastUpdated: "最終更新日" +light: "ライト" +noResultsFound: "結果が見つかりませんでした。" +onThisPage: "このページの内容" +poweredBy: "提供元 Hextra" +readMore: "もっと読む →" +searchPlaceholder: "検索..." diff --git a/themes/hextra/i18n/ko.yaml b/themes/hextra/i18n/ko.yaml new file mode 100644 index 0000000000..ee1fe8e29e --- /dev/null +++ b/themes/hextra/i18n/ko.yaml @@ -0,0 +1,13 @@ +backToTop: "맨위로 스크롤" +changeLanguage: "언어변경" +changeTheme: "테마변경" +copyright: "© 2024 Hextra Project." +dark: "어두운 테마" +editThisPage: "GitHub에서 편집하기 →" +lastUpdated: "마지막 수정일자" +light: "밝은 테마" +noResultsFound: "결과 없음" +onThisPage: "페이지 목차" +poweredBy: "제공 Hextra" +readMore: "더보기 →" +searchPlaceholder: "검색..." diff --git a/themes/hextra/i18n/nb.yaml b/themes/hextra/i18n/nb.yaml new file mode 100644 index 0000000000..7b768a3a64 --- /dev/null +++ b/themes/hextra/i18n/nb.yaml @@ -0,0 +1,13 @@ +backToTop: "Gå til toppen" +changeLanguage: "Endre språk" +changeTheme: "Endre tema" +copyright: "© 2024 Hextra-prosjektet." +dark: "Mørk" +editThisPage: "Rediger denne siden på GitHub →" +lastUpdated: "Sist oppdatert" +light: "Lys" +noResultsFound: "Fant ingen treff." +onThisPage: "På denne siden" +poweredBy: "Powered by Hextra" +readMore: "Les mer →" +searchPlaceholder: "Søk..." diff --git a/themes/hextra/i18n/nl.yaml b/themes/hextra/i18n/nl.yaml new file mode 100644 index 0000000000..bc5f80a2ab --- /dev/null +++ b/themes/hextra/i18n/nl.yaml @@ -0,0 +1,14 @@ +backToTop: "Terug naar boven" +changeLanguage: "Taal veranderen" +changeTheme: "Thema aanpassen" +copyCode: "Kopieer code" +copyright: "© 2024 Hextra Project." +dark: "Donker" +editThisPage: "Bewerk deze pagina op GitHub →" +lastUpdated: "Laatst bijgewerkt op" +light: "Licht" +noResultsFound: "Geen resultaten gevonden." +onThisPage: "Op deze pagina" +poweredBy: "Mogelijk gemaakt door Hextra" +readMore: "Lees meer →" +searchPlaceholder: "Zoeken..." diff --git a/themes/hextra/i18n/nn.yaml b/themes/hextra/i18n/nn.yaml new file mode 100644 index 0000000000..6419c32804 --- /dev/null +++ b/themes/hextra/i18n/nn.yaml @@ -0,0 +1,13 @@ +backToTop: "Gå til toppen" +changeLanguage: "Endre språk" +changeTheme: "Endre tema" +copyright: "© 2024 Hextra-prosjektet." +dark: "Mørk" +editThisPage: "Rediger denne sida på GitHub →" +lastUpdated: "Sist oppdatert" +light: "Ljos" +noResultsFound: "Fann ingen treff." +onThisPage: "På denne sida" +poweredBy: "Powered by Hextra" +readMore: "Les meir →" +searchPlaceholder: "Søk..." diff --git a/themes/hextra/i18n/pt.yaml b/themes/hextra/i18n/pt.yaml new file mode 100644 index 0000000000..f983de1cdc --- /dev/null +++ b/themes/hextra/i18n/pt.yaml @@ -0,0 +1,13 @@ +backToTop: "Voltar ao topo" +changeLanguage: "Mudar a língua" +changeTheme: "Mudar tema" +copyright: "© 2024 Projecto Hextra." +dark: "Escuro" +editThisPage: "Edita esta página no GitHub →" +lastUpdated: "Última modificação" +light: "Claro" +noResultsFound: "Nenhum resultado encontrado" +onThisPage: "Nesta página" +poweredBy: "Com a tecnologia de Hextra" +readMore: "Ler mais →" +searchPlaceholder: "Procurar..." diff --git a/themes/hextra/i18n/ro.yaml b/themes/hextra/i18n/ro.yaml new file mode 100644 index 0000000000..9466f8a7cd --- /dev/null +++ b/themes/hextra/i18n/ro.yaml @@ -0,0 +1,14 @@ +backToTop: "Înapoi sus" +changeLanguage: "Schimbă limba" +changeTheme: "Schimbă tema" +copyCode: "Copiază codul" +copyright: "© 2024 Hextra Project." +dark: "Întuneric" +editThisPage: "Editați această pagină pe GitHub ←" +lastUpdated: "Ultima actualizare la" +light: "Lumină" +noResultsFound: "Nici un rezultat găsit." +onThisPage: "Pe această pagină" +poweredBy: "Susținut de Hextra" +readMore: "Citește mai mult ←" +searchPlaceholder: "Caută..." \ No newline at end of file diff --git a/themes/hextra/i18n/ru.yaml b/themes/hextra/i18n/ru.yaml new file mode 100644 index 0000000000..4c05785c7b --- /dev/null +++ b/themes/hextra/i18n/ru.yaml @@ -0,0 +1,14 @@ +backToTop: 'Прокрутить к началу' +changeLanguage: 'Изменить язык' +changeTheme: 'Изменить тему' +copyCode: 'Скопировать код' +copyright: '2024 Проект Hextra.' +dark: 'Темная' +editThisPage: 'Отредактировать страницу на GitHub →' +lastUpdated: 'Последнее обновление' +light: 'Светлая' +noResultsFound: 'Ничего не найдено.' +onThisPage: 'На этой странице' +poweredBy: 'При поддержке Hextra' +readMore: 'Читать далее →' +searchPlaceholder: 'Поиск...' diff --git a/themes/hextra/i18n/sw.yaml b/themes/hextra/i18n/sw.yaml new file mode 100644 index 0000000000..4d7f671832 --- /dev/null +++ b/themes/hextra/i18n/sw.yaml @@ -0,0 +1,13 @@ +backToTop: "Tembeza hadi juu" +changeLanguage: "Badilisha lugha" +changeTheme: "Badilisha mandhari" +copyright: "© 2024 Hextra Project." +dark: "Meusi" +editThisPage: "Hariri ukurasa huu kwenye GitHub →" +lastUpdated: "Ilisasishwa mwisho" +light: "Nuru" +noResultsFound: "Hakuna matokeo yalipopatikana." +onThisPage: "Kwenye ukurasa huu" +poweredBy: "Inaendeshwa na Hextra" +readMore: "Soma zaidi →" +searchPlaceholder: "Tafuta..." diff --git a/themes/hextra/i18n/uk.yaml b/themes/hextra/i18n/uk.yaml new file mode 100644 index 0000000000..6c790c2d86 --- /dev/null +++ b/themes/hextra/i18n/uk.yaml @@ -0,0 +1,14 @@ +backToTop: "Прокрутити до початку" +changeLanguage: "Змінити мову" +changeTheme: "Змінити тему" +copyCode: "Скопіювати код" +copyright: "2024 Проєкт Hextra." +dark: "Темна" +editThisPage: "Редагувати цю сторінку на GitHub →" +lastUpdated: "Востаннє оновлено" +light: "Світла" +noResultsFound: "Не знайдено результатів" +onThisPage: "На цій сторінці" +poweredBy: "Працює завдяки Hextra" +readMore: "Читати більше →" +searchPlaceholder: "Пошук..." diff --git a/themes/hextra/i18n/vi.yaml b/themes/hextra/i18n/vi.yaml new file mode 100644 index 0000000000..1e089da99e --- /dev/null +++ b/themes/hextra/i18n/vi.yaml @@ -0,0 +1,13 @@ +backToTop: "Lướt lên đầu trang" +changeLanguage: "Đổi ngôn ngữ" +changeTheme: "Đổi chủ đề" +copyright: "© 2024 Hextra Project." +dark: "Tối" +editThisPage: "Sửa trang này trên GitHub →" +lastUpdated: "Lần cuối cập nhật lúc" +light: "Sáng" +noResultsFound: "Không tìm thấy kết quả." +onThisPage: "Ở trang này" +poweredBy: "Chạy bởi Hextra" +readMore: "Đọc thêm →" +searchPlaceholder: "Tìm kiếm..." diff --git a/themes/hextra/i18n/zh-cn.yaml b/themes/hextra/i18n/zh-cn.yaml new file mode 100644 index 0000000000..f26a2451c6 --- /dev/null +++ b/themes/hextra/i18n/zh-cn.yaml @@ -0,0 +1,13 @@ +backToTop: "返回顶部" +changeLanguage: "切换语言" +changeTheme: "切换主题" +copyright: "© 2024 Hextra Project." +dark: "深色" +editThisPage: "在 GitHub 上编辑此页 →" +lastUpdated: "最后更新于" +light: "浅色" +noResultsFound: "无结果" +onThisPage: "此页上" +poweredBy: "由 Hextra 驱动" +readMore: "更多 →" +searchPlaceholder: "搜索文档..." diff --git a/themes/hextra/i18n/zh-tw.yaml b/themes/hextra/i18n/zh-tw.yaml new file mode 100644 index 0000000000..dd447ce7f7 --- /dev/null +++ b/themes/hextra/i18n/zh-tw.yaml @@ -0,0 +1,13 @@ +backToTop: "返回頂部" +changeLanguage: "切換語言" +changeTheme: "切換主題" +copyright: "© 2024 Hextra Project." +dark: "深色" +editThisPage: "在 GitHub 上編輯此頁 →" +lastUpdated: "最後更新於" +light: "淺色" +noResultsFound: "無結果" +onThisPage: "此頁上" +poweredBy: "由 Hextra 驅動" +readMore: "更多 →" +searchPlaceholder: "搜尋文檔..." diff --git a/themes/hextra/images/screenshot.jpg b/themes/hextra/images/screenshot.jpg new file mode 100644 index 0000000000..5dde7125d6 Binary files /dev/null and b/themes/hextra/images/screenshot.jpg differ diff --git a/themes/hextra/images/tn.jpg b/themes/hextra/images/tn.jpg new file mode 100644 index 0000000000..15fc2c2155 Binary files /dev/null and b/themes/hextra/images/tn.jpg differ diff --git a/themes/hextra/layouts/404.html b/themes/hextra/layouts/404.html new file mode 100644 index 0000000000..0628f45443 --- /dev/null +++ b/themes/hextra/layouts/404.html @@ -0,0 +1,27 @@ +
        +
        + +

        404

        +
        +

        This page could not be found.

        +
        +
        +
        diff --git a/themes/hextra/layouts/_default/_markup/render-codeblock-mermaid.html b/themes/hextra/layouts/_default/_markup/render-codeblock-mermaid.html new file mode 100644 index 0000000000..314d679f1b --- /dev/null +++ b/themes/hextra/layouts/_default/_markup/render-codeblock-mermaid.html @@ -0,0 +1,4 @@ +
        +  {{- .Inner | safeHTML -}}
        +
        +{{- .Page.Store.Set "hasMermaid" true -}} diff --git a/themes/hextra/layouts/_default/_markup/render-codeblock.html b/themes/hextra/layouts/_default/_markup/render-codeblock.html new file mode 100644 index 0000000000..31b3c258c7 --- /dev/null +++ b/themes/hextra/layouts/_default/_markup/render-codeblock.html @@ -0,0 +1,12 @@ +{{- $class := .Attributes.class | default "" -}} +{{- $filename := .Attributes.filename | default "" -}} +{{- $lang := .Attributes.lang | default .Type -}} + + +
        + {{ partial "components/codeblock" (dict "filename" $filename "lang" $lang "content" .Inner "options" .Options) }} + + {{- if or (eq site.Params.highlight.copy.enable nil) (site.Params.highlight.copy.enable) }} + {{- partialCached "components/codeblock-copy-button" (dict "filename" $filename) $filename }} + {{ end }} +
        diff --git a/themes/hextra/layouts/_default/_markup/render-heading.html b/themes/hextra/layouts/_default/_markup/render-heading.html new file mode 100644 index 0000000000..45c63a593b --- /dev/null +++ b/themes/hextra/layouts/_default/_markup/render-heading.html @@ -0,0 +1,8 @@ + + {{- .Text | safeHTML -}} + {{- if gt .Level 1 -}} + +
        + {{- end -}} + +{{- /* Drop trailing newlines */ -}} diff --git a/themes/hextra/layouts/_default/_markup/render-image.html b/themes/hextra/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000000..16a91f9ee2 --- /dev/null +++ b/themes/hextra/layouts/_default/_markup/render-image.html @@ -0,0 +1,27 @@ +{{- $alt := .PlainText | safeHTML -}} +{{- $lazyLoading := .Page.Site.Params.enableImageLazyLoading | default true -}} +{{- $dest := .Destination -}} + +{{- $isLocal := not (urls.Parse $dest).Scheme -}} +{{- $isPage := and (eq .Page.Kind "page") (not .Page.BundleType) -}} +{{- $startsWithSlash := hasPrefix $dest "/" -}} +{{- $startsWithRelative := hasPrefix $dest "../" -}} + +{{- if and $dest $isLocal -}} + {{- if $startsWithSlash -}} + {{/* Images under static directory */}} + {{- $dest = (relURL (strings.TrimPrefix "/" $dest)) -}} + {{- else if and $isPage (not $startsWithRelative) -}} + {{/* Images that are sibling to the individual page file */}} + {{ $dest = (printf "../%s" $dest) }} + {{- end -}} +{{- end -}} + +{{- with .Title -}} +
        + {{ $alt }} +
        {{ . }}
        +
        +{{- else -}} + {{ $alt }} +{{- end -}} diff --git a/themes/hextra/layouts/_default/_markup/render-link.html b/themes/hextra/layouts/_default/_markup/render-link.html new file mode 100644 index 0000000000..0307f8e5eb --- /dev/null +++ b/themes/hextra/layouts/_default/_markup/render-link.html @@ -0,0 +1,3 @@ +{{- with . -}} + {{ .Text | safeHTML }} +{{- end -}} diff --git a/themes/hextra/layouts/_default/baseof.html b/themes/hextra/layouts/_default/baseof.html new file mode 100644 index 0000000000..020430f60e --- /dev/null +++ b/themes/hextra/layouts/_default/baseof.html @@ -0,0 +1,12 @@ + + + {{- partial "head.html" . -}} + + {{- partial "navbar.html" . -}} + {{- block "main" . }}{{ end -}} + {{- if or (eq .Site.Params.footer.enable nil) (.Site.Params.footer.enable) }} + {{ partial "footer.html" . }} + {{ end }} + {{ partial "scripts.html" . }} + + diff --git a/themes/hextra/layouts/_default/list.html b/themes/hextra/layouts/_default/list.html new file mode 100644 index 0000000000..72c48335c9 --- /dev/null +++ b/themes/hextra/layouts/_default/list.html @@ -0,0 +1,17 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} + {{ .Content }} +
        +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/_default/list.rss.xml b/themes/hextra/layouts/_default/list.rss.xml new file mode 100644 index 0000000000..91db54b2ee --- /dev/null +++ b/themes/hextra/layouts/_default/list.rss.xml @@ -0,0 +1,43 @@ + + + {{ .Site.Title }} – {{ .Title }} + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ if not $.Section }} + {{ $sections := .Site.Params.rss.sections | default (slice "blog") }} + {{ .Scratch.Set "rssPages" (first 50 (where $.Site.RegularPages "Type" "in" $sections )) }} + {{ else }} + {{ if $.Parent.IsHome }} + {{ .Scratch.Set "rssPages" (first 50 (where $.Site.RegularPages "Type" $.Section )) }} + {{ else }} + {{ .Scratch.Set "rssPages" (first 50 $.Pages) }} + {{ end }} + {{ end }} + {{ range (.Scratch.Get "rssPages") }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + + {{ $img := (.Resources.ByType "image").GetMatch "*featured*" }} + {{ with $img }} + {{ $img := .Resize "640x" }} + {{ printf "]]>" $img.Permalink $img.Width $img.Height | safeHTML }} + {{ end }} + {{ .Content | html }} + + + {{ end }} + + diff --git a/themes/hextra/layouts/_default/single.html b/themes/hextra/layouts/_default/single.html new file mode 100644 index 0000000000..fb8c9906f4 --- /dev/null +++ b/themes/hextra/layouts/_default/single.html @@ -0,0 +1,18 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
        +
        +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} +
        +
        + {{ .Content }} +
        +
        + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/_default/wide.html b/themes/hextra/layouts/_default/wide.html new file mode 100644 index 0000000000..ec7abe1792 --- /dev/null +++ b/themes/hextra/layouts/_default/wide.html @@ -0,0 +1,12 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" false) }} +
        +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} +
        + {{ .Content }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/blog/list.html b/themes/hextra/layouts/blog/list.html new file mode 100644 index 0000000000..5f0cca7d31 --- /dev/null +++ b/themes/hextra/layouts/blog/list.html @@ -0,0 +1,34 @@ +{{ define "main" }} + {{- $readMore := (T "readMore") | default "Read more →" -}} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} +
        +
        +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} +
        {{ .Content }}
        + {{- $pages := partial "utils/sort-pages" (dict "page" . "by" site.Params.blog.list.sortBy "order" site.Params.blog.list.sortOrder) -}} + {{- range $pages }} +
        +

        {{ .Title }}

        + {{- if site.Params.blog.list.displayTags -}} + {{ with .Params.tags }} +

        + {{- range . }}#{{ . }}{{ end -}} +

        + {{ end -}} + {{- end -}} +

        {{- partial "utils/page-description" . -}}

        +

        + + {{- $readMore -}} + +

        +

        {{ partial "utils/format-date" .Date }}

        +
        + {{ end -}} +
        +
        +
        +
        +{{- end -}} \ No newline at end of file diff --git a/themes/hextra/layouts/blog/single.html b/themes/hextra/layouts/blog/single.html new file mode 100644 index 0000000000..75fa392b64 --- /dev/null +++ b/themes/hextra/layouts/blog/single.html @@ -0,0 +1,48 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
        +
        + {{ partial "breadcrumb.html" . }} + {{ if .Title }}

        {{ .Title }}

        {{ end }} +
        + {{- with $date := .Date }}{{ partial "utils/format-date" $date }}{{ end -}} + {{- $lazyLoading := site.Params.enableImageLazyLoading | default true -}} + {{ if and .Date .Params.authors }}·{{ end -}} + {{- with $.Params.authors -}} + {{- range $i, $author := . -}} + {{- if reflect.IsMap $author -}} + {{- if and $i (not $author.image) }},{{ end -}} + + {{- with $image := $author.image }} + {{- $isLocal := not (urls.Parse $image).Scheme -}} + {{- $startsWithSlash := hasPrefix $image "/" -}} + {{- if and $isLocal $startsWithSlash }} + {{- $image = (relURL (strings.TrimPrefix "/" $image)) -}} + {{ end -}} + {{ $author.name }} + {{ end -}} +
        {{ $author.name }}
        +
        + {{- else -}} + {{- if $i }},{{ end -}}{{ $author }} + {{- end -}} + {{- end -}} + {{- end -}} +
        +
        + {{ .Content }} +
        + {{ partial "components/last-updated.html" . }} + {{ .Scratch.Set "reversePagination" true }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/docs/list.html b/themes/hextra/layouts/docs/list.html new file mode 100644 index 0000000000..8ed116cad8 --- /dev/null +++ b/themes/hextra/layouts/docs/list.html @@ -0,0 +1,18 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        + {{ partial "breadcrumb.html" . }} +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} + {{ .Content }} +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/docs/single.html b/themes/hextra/layouts/docs/single.html new file mode 100644 index 0000000000..8ed116cad8 --- /dev/null +++ b/themes/hextra/layouts/docs/single.html @@ -0,0 +1,18 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" .) }} + {{ partial "toc.html" . }} +
        +
        + {{ partial "breadcrumb.html" . }} +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} + {{ .Content }} +
        + {{ partial "components/last-updated.html" . }} + {{ partial "components/pager.html" . }} + {{ partial "components/comments.html" . }} +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/hextra-home.html b/themes/hextra/layouts/hextra-home.html new file mode 100644 index 0000000000..54d792df03 --- /dev/null +++ b/themes/hextra/layouts/hextra-home.html @@ -0,0 +1,10 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true) }} +
        +
        + {{ .Content }} +
        +
        +
        +{{ end }} diff --git a/themes/hextra/layouts/index.html b/themes/hextra/layouts/index.html new file mode 100644 index 0000000000..2b99236489 --- /dev/null +++ b/themes/hextra/layouts/index.html @@ -0,0 +1,14 @@ +{{ define "main" }} +
        + {{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }} + {{ partial "toc.html" . }} +
        +
        + {{ if .Title }}

        {{ .Title }}

        {{ end }} +
        + {{ .Content }} +
        +
        +
        +
        +{{ end }} \ No newline at end of file diff --git a/themes/hextra/layouts/partials/breadcrumb.html b/themes/hextra/layouts/partials/breadcrumb.html new file mode 100644 index 0000000000..fa52f9b9ab --- /dev/null +++ b/themes/hextra/layouts/partials/breadcrumb.html @@ -0,0 +1,15 @@ +{{- if (default true .Params.breadcrumbs) }} +
        + {{- range .Ancestors.Reverse }} + {{- if not .IsHome }} + + {{- partial "utils/icon.html" (dict "name" "chevron-right" "attributes" "class=\"hx-w-3.5 hx-shrink-0 rtl:-hx-rotate-180\"") -}} + {{ end -}} + {{ end -}} +
        + {{- partial "utils/title" . -}} +
        +
        +{{ end -}} diff --git a/themes/hextra/layouts/partials/components/codeblock-copy-button.html b/themes/hextra/layouts/partials/components/codeblock-copy-button.html new file mode 100644 index 0000000000..f6f8b3f3e4 --- /dev/null +++ b/themes/hextra/layouts/partials/components/codeblock-copy-button.html @@ -0,0 +1,15 @@ +{{/* TODO: remove filename variable */}} +{{- $filename := .filename | default "" -}} +{{- $display := site.Params.highlight.copy.display | default "hover" -}} +{{- $copyCode := (T "copyCode") | default "Copy code" -}} + + +
        + +
        diff --git a/themes/hextra/layouts/partials/components/codeblock.html b/themes/hextra/layouts/partials/components/codeblock.html new file mode 100644 index 0000000000..f96a74ab9d --- /dev/null +++ b/themes/hextra/layouts/partials/components/codeblock.html @@ -0,0 +1,13 @@ +{{ $filename := .filename | default "" -}} +{{ $lang := .lang | default "" }} +{{ $content := .content }} +{{ $options := .options | default (dict) }} + +{{- if $filename -}} +
        {{ $filename }}
        +{{- end -}} +{{- if transform.CanHighlight $lang -}} +
        {{- highlight $content $lang $options -}}
        +{{- else -}} +
        {{ $content }}
        +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/comments.html b/themes/hextra/layouts/partials/components/comments.html new file mode 100644 index 0000000000..ac893a1b63 --- /dev/null +++ b/themes/hextra/layouts/partials/components/comments.html @@ -0,0 +1,11 @@ +{{- $enableComments := site.Params.comments.enable | default false -}} + +{{ if not (eq .Params.comments nil) }} + {{ $enableComments = .Params.comments }} +{{ end }} + +{{- if $enableComments -}} + {{- if eq site.Params.comments.type "giscus" -}} + {{ partial "components/giscus.html" . }} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/giscus.html b/themes/hextra/layouts/partials/components/giscus.html new file mode 100644 index 0000000000..8f7edf0f68 --- /dev/null +++ b/themes/hextra/layouts/partials/components/giscus.html @@ -0,0 +1,62 @@ +{{- $lang := site.Language.LanguageCode | default `en` -}} + +{{- with site.Params.comments.giscus -}} + + +
        +{{- else -}} + {{ warnf "giscus is not configured" }} +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/last-updated.html b/themes/hextra/layouts/partials/components/last-updated.html new file mode 100644 index 0000000000..7918fb128e --- /dev/null +++ b/themes/hextra/layouts/partials/components/last-updated.html @@ -0,0 +1,12 @@ +{{- $lastUpdated := (T "lastUpdated") | default "Last updated on" -}} + +{{- if site.Params.displayUpdatedDate -}} + {{- with .Lastmod -}} + {{ $datetime := (time.Format "2006-01-02T15:04:05.000Z" .) }} +
        {{ $lastUpdated }}
        + {{- else -}} +
        + {{- end -}} +{{- else -}} +
        +{{- end -}} diff --git a/themes/hextra/layouts/partials/components/pager.html b/themes/hextra/layouts/partials/components/pager.html new file mode 100644 index 0000000000..1849b2087e --- /dev/null +++ b/themes/hextra/layouts/partials/components/pager.html @@ -0,0 +1,53 @@ +{{/* Article navigation on the footer of the article */}} + +{{- $reversePagination := .Scratch.Get "reversePagination" | default false -}} + +{{- $prev := cond $reversePagination .PrevInSection .NextInSection -}} +{{- $next := cond $reversePagination .NextInSection .PrevInSection -}} + +{{- if eq .Params.prev false }} + {{- if $reversePagination }}{{ $next = false }}{{ else }}{{ $prev = false }}{{ end -}} +{{ else }} + {{- with .Params.prev -}} + {{- with $.Site.GetPage . -}} + {{- if $reversePagination }}{{ $next = . }}{{ else }}{{ $prev = . }}{{ end -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- if eq .Params.next false }} + {{- if $reversePagination }}{{ $prev = false }}{{ else }}{{ $next = false }}{{ end -}} +{{ else }} + {{- with .Params.next -}} + {{- with $.Site.GetPage . -}} + {{- if $reversePagination }}{{ $prev = . }}{{ else }}{{ $next = . }}{{ end -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- if or $prev $next -}} + +{{- end -}} diff --git a/themes/hextra/layouts/partials/custom/head-end.html b/themes/hextra/layouts/partials/custom/head-end.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/themes/hextra/layouts/partials/favicons.html b/themes/hextra/layouts/partials/favicons.html new file mode 100644 index 0000000000..66a80188e7 --- /dev/null +++ b/themes/hextra/layouts/partials/favicons.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/themes/hextra/layouts/partials/footer.html b/themes/hextra/layouts/partials/footer.html new file mode 100644 index 0000000000..61cbb1133d --- /dev/null +++ b/themes/hextra/layouts/partials/footer.html @@ -0,0 +1,46 @@ +{{- $enableFooterSwitches := .Scratch.Get "enableFooterSwitches" | default false -}} +{{- $displayThemeToggle := site.Params.theme.displayToggle | default true -}} + +{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}} +{{- $poweredBy := (T "poweredBy") | default "Powered by Hextra" -}} + +{{- $footerWidth := "hx-max-w-screen-xl" -}} +{{- with .Site.Params.footer.width -}} + {{ if eq . "wide" -}} + {{ $footerWidth = "hx-max-w-[90rem]" -}} + {{ else if eq . "full" -}} + {{ $footerWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + + +
        + {{- if $enableFooterSwitches -}} +
        + {{- partial "language-switch.html" (dict "context" .) -}} + {{- with $displayThemeToggle }}{{ partial "theme-toggle.html" }}{{ end -}} +
        + {{- if or hugo.IsMultilingual $displayThemeToggle -}} +
        + {{- end -}} + {{- end -}} +
        +
        + {{- if (.Site.Params.footer.displayPoweredBy | default true) }}
        {{ template "theme-credit" $poweredBy }}
        {{ end }} + {{- if .Site.Params.footer.displayCopyright }}
        {{ $copyright | markdownify }}
        {{ end }} +
        +
        +
        + +{{- define "theme-credit" -}} + + + {{- . | markdownify -}} + {{- if strings.Contains . "Hextra" -}} + {{- partial "utils/icon.html" (dict "name" "hextra" "attributes" `height=1em class="hx-inline-block ltr:hx-ml-1 rtl:hx-mr-1 hx-align-[-2.5px]"`) -}} + {{- end -}} + + +{{- end -}} diff --git a/themes/hextra/layouts/partials/google-analytics.html b/themes/hextra/layouts/partials/google-analytics.html new file mode 100644 index 0000000000..02b0e61bd3 --- /dev/null +++ b/themes/hextra/layouts/partials/google-analytics.html @@ -0,0 +1,13 @@ +{{- with site.Config.Services.GoogleAnalytics.ID }} + + + +{{ end -}} diff --git a/themes/hextra/layouts/partials/head-css.html b/themes/hextra/layouts/partials/head-css.html new file mode 100644 index 0000000000..d4f999fd34 --- /dev/null +++ b/themes/hextra/layouts/partials/head-css.html @@ -0,0 +1,25 @@ +{{- if and (not hugo.IsProduction) (eq hugo.Environment "theme") }} + {{- $styles := resources.Get "css/styles.css" }} + {{- $styles = $styles | postCSS (dict "inlineImports" true) }} + +{{- else }} + {{- $styles := resources.Get "css/compiled/main.css" -}} + + {{- if hugo.IsProduction }} + {{- $styles = $styles | minify | fingerprint }} + + + {{- else }} + + {{- end }} +{{- end }} + + + +{{- $custom := resources.Get "css/custom.css" }} +{{- if hugo.IsProduction -}} + {{- $custom = $custom | minify | fingerprint }} + +{{- else }} + +{{- end }} diff --git a/themes/hextra/layouts/partials/head.html b/themes/hextra/layouts/partials/head.html new file mode 100644 index 0000000000..6fced1b323 --- /dev/null +++ b/themes/hextra/layouts/partials/head.html @@ -0,0 +1,63 @@ + + + + {{ if hugo.IsProduction -}} + + {{ else -}} + + {{ end -}} + {{ partialCached "favicons.html" . -}} + + {{- if .IsHome -}} + {{ .Site.Title -}} + {{ else -}} + {{ with .Title }}{{ . }} – {{ end -}} + {{ .Site.Title -}} + {{ end -}} + + + + {{- with .Params.canonical -}} + + {{- else -}} + + {{- end -}} + + {{- partial "opengraph.html" . -}} + {{- template "_internal/schema.html" . -}} + {{- template "_internal/twitter_cards.html" . -}} + + {{- partialCached "head-css.html" . -}} + + + +{{- if and (eq hugo.Environment "production") .Site.Config.Services.GoogleAnalytics.ID }} + + {{ partial "google-analytics.html" . }} +{{- end }} + + + + {{ partial "custom/head-end.html" . }} + diff --git a/themes/hextra/layouts/partials/language-switch.html b/themes/hextra/layouts/partials/language-switch.html new file mode 100644 index 0000000000..a9b6557d24 --- /dev/null +++ b/themes/hextra/layouts/partials/language-switch.html @@ -0,0 +1,44 @@ +{{- $page := .context -}} + +{{- $grow := .grow -}} +{{- $hideLabel := .hideLabel | default false -}} + +{{- $changeLanguage := (T "changeLanguage") | default "Change language" -}} + +{{- if hugo.IsMultilingual -}} +
        + + +
        +{{- end -}} diff --git a/themes/hextra/layouts/partials/navbar.html b/themes/hextra/layouts/partials/navbar.html new file mode 100644 index 0000000000..3a6bcbbbbd --- /dev/null +++ b/themes/hextra/layouts/partials/navbar.html @@ -0,0 +1,70 @@ +{{- $logoPath := .Site.Params.navbar.logo.path | default "images/logo.svg" -}} +{{- $logoLink := .Site.Params.navbar.logo.link | default .Site.Home.RelPermalink -}} +{{- $logoWidth := .Site.Params.navbar.logo.width | default "20" -}} +{{- $logoHeight := .Site.Params.navbar.logo.height | default "20" -}} +{{- $logoDarkPath := .Site.Params.navbar.logo.dark | default $logoPath -}} + +{{- $navWidth := "hx-max-w-[90rem]" -}} +{{- with .Site.Params.navbar.width -}} + {{ if eq . "normal" -}} + {{ $navWidth = "hx-max-w-screen-xl" -}} + {{ else if eq . "full" -}} + {{ $navWidth = "max-w-full" -}} + {{ end -}} +{{- end -}} + + diff --git a/themes/hextra/layouts/partials/opengraph.html b/themes/hextra/layouts/partials/opengraph.html new file mode 100644 index 0000000000..aa5dc5b697 --- /dev/null +++ b/themes/hextra/layouts/partials/opengraph.html @@ -0,0 +1,31 @@ +{{/* From https://github.com/gohugoio/gohugoioTheme/blob/master/layouts/partials/opengraph/opengraph.html */}} + + + + + + +{{- with $.Params.images -}} +{{- range first 6 . }}{{ end -}} +{{- else -}} +{{- $featured := "" }} +{{- with $featured -}} + +{{- else -}} +{{- with $.Site.Params.images }}{{ end -}} +{{- end -}} +{{- end -}} + +{{- if .IsPage }} +{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} + +{{ with .PublishDate }}{{ end }} +{{ with .Lastmod }}{{ end }} +{{- end -}} + +{{- with .Params.audio }}{{ end }} +{{- with .Params.locale }}{{ end }} +{{- with .Site.Params.title }}{{ end }} +{{- with .Params.videos }}{{- range . }} + +{{ end }}{{ end }} diff --git a/themes/hextra/layouts/partials/scripts.html b/themes/hextra/layouts/partials/scripts.html new file mode 100644 index 0000000000..026b344570 --- /dev/null +++ b/themes/hextra/layouts/partials/scripts.html @@ -0,0 +1,81 @@ +{{- $jsTheme := resources.Get "js/theme.js" | resources.ExecuteAsTemplate "theme.js" . -}} +{{- $jsMenu := resources.Get "js/menu.js" -}} +{{- $jsTabs := resources.Get "js/tabs.js" -}} +{{- $jsLang := resources.Get "js/lang.js" -}} +{{- $jsCodeCopy := resources.Get "js/code-copy.js" -}} +{{- $jsFileTree := resources.Get "js/filetree.js" -}} +{{- $jsSidebar := resources.Get "js/sidebar.js" -}} +{{- $jsBackToTop := resources.Get "js/back-to-top.js" -}} + +{{- $scripts := slice $jsTheme $jsMenu $jsCodeCopy $jsTabs $jsLang $jsFileTree $jsSidebar $jsBackToTop | resources.Concat "js/main.js" -}} +{{- if hugo.IsProduction -}} + {{- $scripts = $scripts | minify | fingerprint -}} +{{- end -}} + + + +{{/* Search */}} +{{- if (site.Params.search.enable | default true) -}} + {{- $searchType := site.Params.search.type | default "flexsearch" -}} + {{- if eq $searchType "flexsearch" -}} + {{- $jsSearchScript := printf "%s.search.js" .Language.Lang -}} + {{- $jsSearch := resources.Get "js/flexsearch.js" | resources.ExecuteAsTemplate $jsSearchScript . -}} + {{- if hugo.IsProduction -}} + {{- $jsSearch = $jsSearch | minify | fingerprint -}} + {{- end -}} + {{- $flexSearchJS := resources.Get "lib/flexsearch/flexsearch.bundle.min.js" | fingerprint -}} + + + {{- else -}} + {{- warnf `search type "%s" is not supported` $searchType -}} + {{- end -}} +{{- end -}} + +{{/* Mermaid */}} +{{/* FIXME: need to investigate .Page.Store hasMermaid is set for homepage */}} +{{- if and (.Page.Store.Get "hasMermaid") (not .Page.IsHome) -}} + {{- $mermaidJS := resources.Get "lib/mermaid/mermaid.min.js" | fingerprint -}} + + +{{- end -}} + +{{/* KaTex */}} +{{- if .Page.Params.math -}} + {{- $katexCSS := resources.Get "lib/katex/katex.min.css" | fingerprint -}} + {{- $katexJS := resources.Get "lib/katex/katex.min.js" | fingerprint -}} + {{- $mhchemJS := resources.Get "lib/katex/mhchem.min.js" | fingerprint -}} + {{- $katexAutoRenderJS := resources.Get "lib/katex/auto-render.min.js" | fingerprint -}} + + + + + {{ $katexFonts := resources.Match "lib/katex/fonts/*" }} + {{- range $katexFonts -}} + {{ .Publish }} + {{- end -}} + +{{ end }} diff --git a/themes/hextra/layouts/partials/search.html b/themes/hextra/layouts/partials/search.html new file mode 100644 index 0000000000..e421ab00f1 --- /dev/null +++ b/themes/hextra/layouts/partials/search.html @@ -0,0 +1,26 @@ +{{- $placeholder := (T "searchPlaceholder") | default "Search..." -}} + + +
        +
        + + + CTRL K + +
        + +
        +
          +
          +
          diff --git a/themes/hextra/layouts/partials/shortcodes/badge.html b/themes/hextra/layouts/partials/shortcodes/badge.html new file mode 100644 index 0000000000..3e249d76b3 --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/badge.html @@ -0,0 +1,16 @@ +{{- $content := .content -}} +{{- $type := .type -}} +{{- $class := .class | default "" -}} +{{- $border := .border | default false -}} + +{{- $defaultClass := "hx-text-gray-600 hx-bg-gray-100 dark:hx-bg-neutral-800 dark:hx-text-neutral-200 hx-border-gray-200 dark:hx-border-neutral-700" -}} +{{- $warningClass := "hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200" -}} +{{- $infoClass := "hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200" -}} +{{- $errorClass := "hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200" -}} + +{{- $borderClass := cond (eq $border true) "hx-border" "" -}} +{{- $badgeClass := cond (eq $type "info") $infoClass (cond (eq $type "warning") $warningClass (cond (eq $type "error") $errorClass $defaultClass)) -}} +
          +
          {{- $content -}}
          +
          +{{- /* Strip trailing newline. */ -}} diff --git a/themes/hextra/layouts/partials/shortcodes/card.html b/themes/hextra/layouts/partials/shortcodes/card.html new file mode 100644 index 0000000000..894cda9d81 --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/card.html @@ -0,0 +1,66 @@ +{{- $page := .page -}} +{{- $link := .link -}} +{{- $title := .title -}} +{{- $icon := .icon -}} +{{- $subtitle := .subtitle -}} +{{- $image := .image -}} +{{- $width := .width -}} +{{- $height := .height -}} +{{- $imageStyle := .imageStyle -}} +{{- $tag := .tag -}} +{{- $tagType := .tagType -}} + +{{ $linkClass := "hover:hx-border-gray-300 hx-bg-transparent hx-shadow-sm dark:hx-border-neutral-800 hover:hx-bg-slate-50 hover:hx-shadow-md dark:hover:hx-border-neutral-700 dark:hover:hx-bg-neutral-900" }} +{{- with $image -}} + {{ $linkClass = "hover:hx-border-gray-300 hx-bg-gray-100 hx-shadow dark:hx-border-neutral-700 dark:hx-bg-neutral-800 dark:hx-text-gray-50 hover:hx-shadow-lg dark:hover:hx-border-neutral-500 dark:hover:hx-bg-neutral-700" }} +{{- end -}} + +{{- $external := strings.HasPrefix $link "http" -}} +{{- $href := cond (strings.HasPrefix $link "/") ($link | relURL) $link -}} + + + + {{- with $image -}} + {{ $title }} + {{- end -}} + + {{- $padding := "hx-p-4" -}} + {{- with $subtitle -}} + {{- $padding = "hx-pt-4 hx-px-4" -}} + {{- end -}} + + + + {{- with $icon }}{{ partial "utils/icon.html" (dict "name" $icon) -}}{{- end -}} + {{- $title -}} + + {{- with $subtitle -}} +
          {{- $subtitle | markdownify -}}
          + {{- end -}} + + {{- if $tag }} + {{- partial "shortcodes/badge.html" (dict + "content" $tag + "type" $tagType + "class" "hextra-card-tag" + "border" true + ) + -}} + {{- end -}} +
          +{{- /* Strip trailing newline. */ -}} diff --git a/themes/hextra/layouts/partials/shortcodes/cards.html b/themes/hextra/layouts/partials/shortcodes/cards.html new file mode 100644 index 0000000000..b70ff7f65b --- /dev/null +++ b/themes/hextra/layouts/partials/shortcodes/cards.html @@ -0,0 +1,6 @@ +{{- $cols := .cols | default 3 -}} +{{- $content := .content -}} + +
          + {{- $content -}} +
          diff --git a/themes/hextra/layouts/partials/sidebar.html b/themes/hextra/layouts/partials/sidebar.html new file mode 100644 index 0000000000..6698f10629 --- /dev/null +++ b/themes/hextra/layouts/partials/sidebar.html @@ -0,0 +1,178 @@ +{{- $context := .context -}} + +{{- $disableSidebar := .disableSidebar | default false -}} +{{- $displayPlaceholder := .displayPlaceholder | default false -}} + +{{- $sidebarClass := cond $disableSidebar (cond $displayPlaceholder "md:hx-hidden xl:hx-block" "md:hx-hidden") "md:hx-sticky" -}} + +{{- $navRoot := cond (eq site.Home.Type "docs") site.Home $context.FirstSection -}} +{{- $pageURL := $context.RelPermalink -}} + +{{/* EXPERIMENTAL */}} +{{- if .context.Params.sidebar.hide -}} + {{- $disableSidebar = true -}} + {{- $displayPlaceholder = true -}} +{{- end -}} + + +
          + + +{{- define "sidebar-main" -}} + {{ template "sidebar-tree" (dict "context" .context "level" 0 "page" .page "pageURL" .pageURL "toc" (.toc | default false)) }} +{{- end -}} + +{{- define "sidebar-tree" -}} + {{- if ge .level 4 -}} + {{- return -}} + {{- end -}} + + {{- $context := .context -}} + {{- $page := .page }} + {{- $pageURL := .page.RelPermalink -}} + {{- $level := .level -}} + {{- $toc := .toc | default false -}} + + {{- with $items := union .context.RegularPages .context.Sections -}} + {{- $items = where $items "Params.sidebar.exclude" "!=" true -}} + {{- if eq $level 0 -}} + {{- range $items.ByWeight }} + {{- if .Params.sidebar.separator -}} +
        • + {{ partial "utils/title" . }} +
        • + {{- else -}} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} +
        • + {{- $linkTitle := partial "utils/title" . -}} + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{- template "sidebar-toc" dict "page" . -}} + {{- end -}} + {{- template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc -}} +
        • + {{- end -}} + {{- end -}} + {{- else -}} +
          +
            + {{- range $items.ByWeight }} + {{- $active := eq $pageURL .RelPermalink -}} + {{- $shouldOpen := or (.Params.sidebar.open) (.IsAncestor $page) $active | default true }} + {{- $linkTitle := partial "utils/title" . -}} +
          • + {{- template "sidebar-item-link" dict "context" . "active" $active "title" $linkTitle "link" .RelPermalink -}} + {{- if and $toc $active -}} + {{ template "sidebar-toc" dict "page" . }} + {{- end }} + {{ template "sidebar-tree" dict "context" . "page" $page "pageURL" $pageURL "level" (add $level 1) "toc" $toc }} +
          • + {{- end -}} +
          +
          + {{- end -}} + {{- end }} +{{- end -}} + +{{- define "sidebar-toc" -}} + {{ $page := .page }} + {{ with $page.Fragments.Headings }} +
            + {{- range . }} + {{- with .Headings }} + {{- range . -}} +
          • + + {{- .Title -}} + +
          • + {{ end -}} + {{ end -}} + {{ end -}} +
          + {{ end }} +{{- end -}} + +{{- define "sidebar-footer" -}} + {{- range site.Menus.sidebar -}} + {{- $name := or (T .Identifier) .Name -}} + {{ if eq .Params.type "separator" }} +
        • + {{ $name }} +
        • + {{ else }} +
        • {{ template "sidebar-item-link" dict "active" false "title" $name "link" (.URL | relLangURL) }}
        • + {{ end }} + {{- end -}} +{{- end -}} + +{{- define "sidebar-item-link" -}} + {{- $external := strings.HasPrefix .link "http" -}} + {{- $open := .open | default true -}} + + {{- .title -}} + {{- with .context }} + {{- if or .RegularPages .Sections }} + + {{- template "sidebar-collapsible-button" -}} + + {{- end }} + {{ end -}} + +{{- end -}} + +{{- define "sidebar-collapsible-button" -}} + +{{- end -}} diff --git a/themes/hextra/layouts/partials/theme-toggle.html b/themes/hextra/layouts/partials/theme-toggle.html new file mode 100644 index 0000000000..6a939b5676 --- /dev/null +++ b/themes/hextra/layouts/partials/theme-toggle.html @@ -0,0 +1,21 @@ +{{- $hideLabel := .hideLabel | default false -}} + +{{- $changeTheme := (T "changeTheme") | default "Change theme" -}} +{{- $light := (T "light") | default "Light" -}} +{{- $dark := (T "dark") | default "Dark" -}} + + + diff --git a/themes/hextra/layouts/partials/toc.html b/themes/hextra/layouts/partials/toc.html new file mode 100644 index 0000000000..ffefe14704 --- /dev/null +++ b/themes/hextra/layouts/partials/toc.html @@ -0,0 +1,81 @@ +{{/* Table of Contents */}} +{{/* TODO: toc bottom part should be able to hide */}} +{{- $toc := .Params.toc | default true -}} +{{- $onThisPage := (T "onThisPage") | default "On this page"}} +{{- $editThisPage := (T "editThisPage") | default "Edit this page"}} +{{- $backToTop := (T "backToTop") | default "Scroll to top" -}} + + + +{{/* TOC subheadings component. This is a recursive component that renders a list of headings. */}} +{{- define "toc-subheading" -}} + {{- $headings := .headings -}} + {{- $level := .level -}} + {{- if ge $level 6 -}} + {{ return }} + {{- end -}} + + {{- $padding := (mul $level 4) -}} + {{- $class := cond (eq $level 0) "hx-font-semibold" (printf "ltr:hx-pl-%d rtl:hx-pr-%d" $padding $padding) -}} + + {{- range $headings }} + {{- if .Title }} +
        • + + {{- .Title | safeHTML | plainify | htmlUnescape }} + +
        • + {{- end -}} + {{- with .Headings -}} + {{ template "toc-subheading" (dict "headings" . "level" (add $level 1)) }} + {{- end -}} + + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/file-path.html b/themes/hextra/layouts/partials/utils/file-path.html new file mode 100644 index 0000000000..17945517f0 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/file-path.html @@ -0,0 +1,21 @@ +{{/* This utility is used to get the file path from absolute, relative path or URL. */}} + +{{- $path := .path -}} +{{- $page := .page -}} + +{{- $isLocal := not (urls.Parse $path).Scheme -}} +{{- $isPage := and (eq $page.Kind "page") (not $page.BundleType) -}} +{{- $startsWithSlash := hasPrefix $path "/" -}} +{{- $startsWithRelative := hasPrefix $path "../" -}} + +{{- if and $path $isLocal -}} + {{- if $startsWithSlash -}} + {{/* File under static directory */}} + {{- $path = (relURL (strings.TrimPrefix "/" $path)) -}} + {{- else if and $isPage (not $startsWithRelative) -}} + {{/* File is a sibling to the individual page file */}} + {{ $path = (printf "../%s" $path) }} + {{- end -}} +{{- end -}} + +{{- return $path -}} diff --git a/themes/hextra/layouts/partials/utils/format-date.html b/themes/hextra/layouts/partials/utils/format-date.html new file mode 100644 index 0000000000..94cbdc4ed6 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/format-date.html @@ -0,0 +1,3 @@ +{{- with . -}} + {{- . | time.Format (site.Params.dateFormat | default ":date_long") -}} +{{- end -}} diff --git a/themes/hextra/layouts/partials/utils/fragments.html b/themes/hextra/layouts/partials/utils/fragments.html new file mode 100644 index 0000000000..268aeea9e3 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/fragments.html @@ -0,0 +1,62 @@ +{{/* Split page raw content into fragments */}} +{{ $page := .context }} +{{ $type := .type | default "content" }} + +{{ $headingKeys := slice }} +{{ $headingTitles := slice }} + +{{ range $h1 := $page.Fragments.Headings }} + {{ if eq $h1.Title "" }} + {{ $headingKeys = $headingKeys | append $h1.Title }} + {{ else }} + {{ $headingKeys = $headingKeys | append (printf "%s#%s" $h1.ID $h1.Title) }} + {{ end }} + {{ $headingTitles = $headingTitles | append (printf "# %s" $h1.Title) }} + + {{ range $h2 := $h1.Headings }} + {{ $headingKeys = $headingKeys | append (printf "%s#%s" $h2.ID $h2.Title) }} + {{ $headingTitles = $headingTitles | append (printf "## %s" $h2.Title) }} + {{ end }} +{{ end }} + +{{ $content := $page.RawContent }} +{{ $len := len $headingKeys }} +{{ $data := dict }} + +{{ if eq $type "content" }} + {{/* Include full content of the page */}} + {{ if eq $len 0 }} + {{ $data = $data | merge (dict "" ($page.Plain | htmlUnescape | chomp)) }} + {{ else }} + {{/* Split the raw content from bottom to top */}} + {{ range seq $len }} + {{ $i := sub $len . }} + {{ $headingKey := index $headingKeys $i }} + {{ $headingTitle := index $headingTitles $i }} + + {{ if eq $i 0 }} + {{ $data = $data | merge (dict $headingKey ($content | $page.RenderString | plainify | htmlUnescape | chomp)) }} + {{ else }} + {{ $parts := split $content (printf "\n%s\n" $headingTitle) }} + {{ $lastPart := index $parts (sub (len $parts) 1) }} + + {{ $data = $data | merge (dict $headingKey ($lastPart | $page.RenderString | plainify | htmlUnescape | chomp)) }} + {{ $content = strings.TrimSuffix $lastPart $content }} + {{ $content = strings.TrimSuffix (printf "\n%s\n" $headingTitle) $content }} + {{ end }} + {{ end }} + {{ end }} +{{ else if (eq $type "heading" ) }} + {{/* Put heading keys with empty content to the data object */}} + {{ $data = dict "" "" }} + {{ range $headingKeys }} + {{ $data = $data | merge (dict . "") }} + {{ end }} +{{ else if (eq $type "title") }} + {{/* Use empty data object since title is included in search-data.json */}} + {{ $data = $data | merge (dict "" "") }} +{{ else if (eq $type "summary" ) }} + {{ $data = $data | merge (dict "" ($page.Summary | plainify | htmlUnescape | chomp)) }} +{{ end }} + +{{ return $data }} diff --git a/themes/hextra/layouts/partials/utils/icon.html b/themes/hextra/layouts/partials/utils/icon.html new file mode 100644 index 0000000000..85cd3cbb85 --- /dev/null +++ b/themes/hextra/layouts/partials/utils/icon.html @@ -0,0 +1,14 @@ +{{/* Render raw svg icon from .Site.Data */}} +{{- $icon := index site.Data.icons .name -}} + +{{- if not $icon -}} + {{ errorf "icon %q not found" .name }} +{{- end -}} + +{{- $icon = $icon | safeHTML -}} + +{{- if .attributes -}} + {{- $icon = replaceRE " + {{- partial "shortcodes/badge.html" (dict + "content" $content + "type" $type + "class" $class + "border" true + ) + -}} + + {{- else -}} + {{- partial "shortcodes/badge.html" (dict + "content" $content + "type" $type + "class" $class + "border" true + ) + -}} + {{- end -}} +{{- else -}} + {{- $content := .Get 0 -}} + {{- partial "shortcodes/badge.html" (dict + "content" $content + "border" true + ) + -}} +{{- end -}} \ No newline at end of file diff --git a/themes/hextra/layouts/shortcodes/callout.html b/themes/hextra/layouts/shortcodes/callout.html new file mode 100644 index 0000000000..6b56bcb2ff --- /dev/null +++ b/themes/hextra/layouts/shortcodes/callout.html @@ -0,0 +1,37 @@ +{{ $calloutEmojiDict := dict "info" "ℹ️" "warning" "⚠️" "error" "🚫" }} +{{ $type := .Get "type" | default "default" }} +{{/* If emoji is not set, use the emoji from dict */}} +{{ $emoji := .Get "emoji" }} +{{ if eq $emoji "" }} + {{ $emoji = index $calloutEmojiDict $type }} +{{ end }} +{{/* Also allow using "icon" */}} +{{ $icon := .Get "icon" }} + +{{ $defaultClass := "hx-border-orange-100 hx-bg-orange-50 hx-text-orange-800 dark:hx-border-orange-400/30 dark:hx-bg-orange-400/20 dark:hx-text-orange-300" }} +{{ $infoClass := "hx-border-blue-200 hx-bg-blue-100 hx-text-blue-900 dark:hx-border-blue-200/30 dark:hx-bg-blue-900/30 dark:hx-text-blue-200" }} +{{ $warningClass := "hx-border-yellow-100 hx-bg-yellow-50 hx-text-yellow-900 dark:hx-border-yellow-200/30 dark:hx-bg-yellow-700/30 dark:hx-text-yellow-200" }} +{{ $errorClass := "hx-border-red-200 hx-bg-red-100 hx-text-red-900 dark:hx-border-red-200/30 dark:hx-bg-red-900/30 dark:hx-text-red-200" }} + +{{ $class := cond (eq $type "info") $infoClass (cond (eq $type "warning") $warningClass (cond (eq $type "error") $errorClass $defaultClass)) }} + + +
          +
          + {{- with $emoji -}} +
          + {{ . }} +
          + {{- else -}} + {{- with $icon }} + {{ partial "utils/icon.html" (dict "name" . "attributes" `height=1.2em class="hx-inline-block hx-align-middle"`) -}} + {{- end -}} + {{- end -}} +
          + +
          +
          + {{ .InnerDeindent | markdownify }} +
          +
          +
          diff --git a/themes/hextra/layouts/shortcodes/card.html b/themes/hextra/layouts/shortcodes/card.html new file mode 100644 index 0000000000..4b183540cb --- /dev/null +++ b/themes/hextra/layouts/shortcodes/card.html @@ -0,0 +1,56 @@ +{{- $context := . -}} +{{- $link := .Get "link" -}} +{{- $title := .Get "title" -}} +{{- $icon := .Get "icon" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $image := .Get "image" -}} +{{- $width := 0 -}} +{{- $height := 0 -}} +{{- $imageStyle := .Get "imageStyle" -}} +{{- $tag := .Get "tag" -}} +{{- $tagType := .Get "tagType" -}} + +{{/* Image processing options */}} +{{- $method := .Get "method" | default "Resize" | humanize -}} +{{- $options := .Get "options" | default "800x webp q80" -}} + +{{- if and $image (not (urls.Parse $image).Scheme) -}} + {{/* Process images in assets */}} + {{- with resources.Get $image -}} + {{- $processed := "" -}} + {{- if eq $method "Resize" -}} + {{- $processed = (.Resize $options) -}} + {{- else if eq $method "Fit" -}} + {{- $processed = (.Fit $options) -}} + {{- else if eq $method "Fill" -}} + {{- $processed = (.Fill $options) -}} + {{- else if eq $method "Crop" -}} + {{- $processed = (.Crop $options) -}} + {{- else -}} + {{- errorf "Invalid image processing command: Must be one of Crop, Fit, Fill or Resize." -}} + {{- end -}} + {{- $width = $processed.Width -}} + {{- $height = $processed.Height -}} + {{- $image = $processed.RelPermalink -}} + {{- else -}} + {{/* Otherwise, use relative link of the image */}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- partial "shortcodes/card" (dict + "page" .Page + "link" $link + "title" $title + "icon" $icon + "subtitle" $subtitle + "image" $image + "width" $width + "height" $height + "imageStyle" $imageStyle + "tag" $tag + "tagType" $tagType + ) +-}} diff --git a/themes/hextra/layouts/shortcodes/cards.html b/themes/hextra/layouts/shortcodes/cards.html new file mode 100644 index 0000000000..9230128c71 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/cards.html @@ -0,0 +1,3 @@ +{{- $cols := .Get "cols" | default 3 -}} + +{{- partial "shortcodes/cards" (dict "cols" $cols "content" .Inner) -}} diff --git a/themes/hextra/layouts/shortcodes/details.html b/themes/hextra/layouts/shortcodes/details.html new file mode 100644 index 0000000000..78ed9b1fa8 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/details.html @@ -0,0 +1,11 @@ +{{- $title := .Get "title" | default "" -}} +{{- $closed := eq (.Get "closed") "true" | default false -}} + +
          + + {{ $title | markdownify }} + +
          + {{ .InnerDeindent | markdownify }} +
          +
          diff --git a/themes/hextra/layouts/shortcodes/filetree/container.html b/themes/hextra/layouts/shortcodes/filetree/container.html new file mode 100644 index 0000000000..7773ae28b5 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/filetree/container.html @@ -0,0 +1,5 @@ +
          +
          + {{- .Inner -}} +
          +
          diff --git a/themes/hextra/layouts/shortcodes/filetree/file.html b/themes/hextra/layouts/shortcodes/filetree/file.html new file mode 100644 index 0000000000..63cbe54f14 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/filetree/file.html @@ -0,0 +1,9 @@ +{{- $name := .Get "name" -}} + + +
        • + + {{- partial "utils/icon" (dict "name" "document-text" "attributes" "width=1em") -}} + {{ $name | markdownify }} + +
        • diff --git a/themes/hextra/layouts/shortcodes/filetree/folder.html b/themes/hextra/layouts/shortcodes/filetree/folder.html new file mode 100644 index 0000000000..9ee9a9e011 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/filetree/folder.html @@ -0,0 +1,17 @@ +{{- $name := .Get "name" -}} +{{- $state := .Get "state" | default "open" }} + +
        • + +
            + {{- .Inner -}} +
          +
        • diff --git a/themes/hextra/layouts/shortcodes/hextra/feature-card.html b/themes/hextra/layouts/shortcodes/hextra/feature-card.html new file mode 100644 index 0000000000..7e83a13a0c --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/feature-card.html @@ -0,0 +1,36 @@ +{{- $title := .Get "title" -}} +{{- $subtitle := .Get "subtitle" -}} +{{- $class := .Get "class" -}} +{{- $image := .Get "image" -}} +{{- $imageClass := .Get "imageClass" -}} +{{- $style := .Get "style" -}} +{{- $icon := .Get "icon" -}} +{{- $link := .Get "link" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (strings.HasPrefix $link "/") ($link | relURL) $link -}} + +{{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} +{{- end -}} + + +
          +

          + {{ with $icon -}} + + {{- partial "utils/icon.html" (dict "name" . "attributes" "height=1.5rem") -}} + + {{ end -}} + {{ $title }} +

          +

          {{ $subtitle | markdownify }}

          +
          + {{- with $image -}} + {{ $title }} + {{- end -}} +
          diff --git a/themes/hextra/layouts/shortcodes/hextra/feature-grid.html b/themes/hextra/layouts/shortcodes/hextra/feature-grid.html new file mode 100644 index 0000000000..03c053aad5 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/feature-grid.html @@ -0,0 +1,12 @@ +{{- $cols := .Get "cols" | default 3 -}} +{{- $style := .Get "style" | default "" -}} + +{{- $css := printf "--hextra-feature-grid-cols: %v; %s" $cols $style -}} + + +
          + {{ .Inner }} +
          diff --git a/themes/hextra/layouts/shortcodes/hextra/hero-badge.html b/themes/hextra/layouts/shortcodes/hextra/hero-badge.html new file mode 100644 index 0000000000..411796ec65 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/hero-badge.html @@ -0,0 +1,15 @@ +{{- $link := .Get "link" -}} +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (hasPrefix $link "/") ($link | relURL) $link -}} +{{- $class := .Get "class" }} +{{- $style := .Get "style" -}} + + + + {{ .Inner | markdownify }} + diff --git a/themes/hextra/layouts/shortcodes/hextra/hero-button.html b/themes/hextra/layouts/shortcodes/hextra/hero-button.html new file mode 100644 index 0000000000..fae5ef3591 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/hero-button.html @@ -0,0 +1,15 @@ +{{- $link := .Get "link" -}} +{{- $text := .Get "text" -}} +{{- $style := .Get "style" -}} + +{{- $external := hasPrefix $link "http" -}} +{{- $href := cond (hasPrefix $link "/") ($link | relURL) $link -}} + + + {{- $text -}} + diff --git a/themes/hextra/layouts/shortcodes/hextra/hero-container.html b/themes/hextra/layouts/shortcodes/hextra/hero-container.html new file mode 100644 index 0000000000..1b7e54c691 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/hero-container.html @@ -0,0 +1,38 @@ +{{- $class := .Get "class" -}} +{{- $cols := .Get "cols" | default 2 -}} +{{- $image := .Get "image" -}} +{{- $imageCard := .Get "imageCard" | default false -}} +{{- $imageClass := .Get "imageClass" -}} +{{- $imageLink := .Get "imageLink" -}} +{{- $imageLinkExternal := hasPrefix $imageLink "http" -}} +{{- $imageStyle := .Get "imageStyle" -}} +{{- $imageTitle := .Get "imageTitle" -}} +{{- $imageWidth := .Get "imageWidth" | default 350 -}} +{{- $imageHeight := .Get "imageHeight" | default 350 -}} +{{- $style := .Get "style" -}} + +{{- $css := printf "--hextra-feature-grid-cols: %v; %s" $cols $style -}} +{{- $href := cond (hasPrefix $imageLink "/") ($imageLink | relURL) $imageLink -}} +{{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} +{{- end -}} + +
          +
          + {{ .Inner }} +
          + {{- with $image }} +
          + + + +
          + {{ end -}} +
          diff --git a/themes/hextra/layouts/shortcodes/hextra/hero-headline.html b/themes/hextra/layouts/shortcodes/hextra/hero-headline.html new file mode 100644 index 0000000000..88862a723a --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/hero-headline.html @@ -0,0 +1,9 @@ +{{- $style := .Get "style" -}} + + +

          + {{ .Inner | markdownify }} +

          diff --git a/themes/hextra/layouts/shortcodes/hextra/hero-subtitle.html b/themes/hextra/layouts/shortcodes/hextra/hero-subtitle.html new file mode 100644 index 0000000000..9c646029f9 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/hextra/hero-subtitle.html @@ -0,0 +1,9 @@ +{{- $style := .Get "style" -}} + + +

          + {{ .Inner | markdownify }} +

          diff --git a/themes/hextra/layouts/shortcodes/icon.html b/themes/hextra/layouts/shortcodes/icon.html new file mode 100644 index 0000000000..26dfc2a238 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/icon.html @@ -0,0 +1,13 @@ +{{- $name := .Get "name" | default (.Get 0) -}} +{{- $icon := index site.Data.icons $name -}} +{{- $attributes := .Get "attributes" | default "height=1em"}} + +{{- if not $icon -}} + {{ errorf "icon %q not found" $name }} +{{- end -}} + +{{- $icon = replaceRE " + {{- $icon | safeHTML -}} + diff --git a/themes/hextra/layouts/shortcodes/include.html b/themes/hextra/layouts/shortcodes/include.html new file mode 100644 index 0000000000..8bdf440f19 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/include.html @@ -0,0 +1,22 @@ +{{- /* +https://github.com/gohugoio/gohugoioTheme/blob/master/layouts/shortcodes/include.html + +Renders the page using the RenderShortcode method on the Page object. + +You must call this shortcode using the {{% %}} notation. + +@param {string} (positional parameter 0) The path to the page, relative to the content directory. +@returns template.HTML + +@example {{% include "functions/_common/glob-patterns" %}} +*/}} + +{{- with .Get 0 }} + {{- with site.GetPage . }} + {{- .RenderShortcodes }} + {{- else }} + {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter indicating the path of the file to include. See %s" .Name .Position }} +{{- end }} diff --git a/themes/hextra/layouts/shortcodes/jupyter.html b/themes/hextra/layouts/shortcodes/jupyter.html new file mode 100644 index 0000000000..e2ff643555 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/jupyter.html @@ -0,0 +1,81 @@ +{{/* Render Jupyter Notebook */}} +{{- $path := .Get 0 -}} +{{- $data := "" -}} +{{- $page := .Page -}} + +{{- $isLocal := not (urls.Parse $path).Scheme -}} +{{- $isPage := and (eq .Page.Kind "page") (not .Page.BundleType) -}} + +{{/* https://gohugo.io/functions/transform/unmarshal/ */}} +{{- if (not $isLocal) -}} + {{- with resources.GetRemote $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Remote resource not found: %s" $path -}} + {{- end -}} +{{- else if (not $isPage) -}} + {{- with .Page.Resources.Get $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Local resource not found: %s" $path -}} + {{- end -}} +{{- else -}} + {{- with resources.Get $path -}} + {{- with unmarshal .Content -}}{{- $data = . -}}{{- end -}} + {{- else -}} + {{- errorf "Local resource not found: %s" $path -}} + {{- end -}} +{{- end -}} + +{{- $language := index $data "metadata" "language_info" "name" | default "python" -}} + +{{- with index $data "cells" -}} + {{- range $cell := . -}} + {{- if eq (index $cell "cell_type") "code" -}} + {{- $source := index $cell "source" -}} + {{- $sourceContent := (cond (reflect.IsSlice $source) (delimit $source "") $source) -}} +{{- with ($sourceContent | strings.Chomp) -}} +{{ (printf "\n\n```%s\n%s\n```\n" $language .) | safeHTML -}} +{{- end -}} + +
          + {{- $outputs := index $cell "outputs" -}} + {{- with $outputs -}} +
          +
          + {{- range $output := . -}} + {{- if eq (index $output "output_type") "display_data" -}} + {{- $data := index $output "data" -}} + {{- $image := index $data "image/png" -}} + {{- if $image -}} + image + {{- end -}} + {{- else if eq (index $output "output_type") "stream" -}} + {{- $text := index $output "text" -}} + {{- $textContent := (cond (reflect.IsSlice $text) (delimit $text "") $text) -}} +
          {{- $textContent -}}
          + {{- else if eq (index $output "output_type") "execute_result" -}} + {{- $data := index $output "data" -}} + {{- $text := index $data "text/plain" -}} + {{- $textContent := (cond (reflect.IsSlice $text) (delimit $text "") $text) -}} +
          {{- $textContent -}}
          + {{- $html := index $data "text/html" -}} + {{- if $html -}} + {{- $htmlText := delimit $html "" -}} +
          + {{- $htmlText | safeHTML -}} +
          + {{- end -}} + {{- end -}} + {{- end -}} +
          +
          + {{- end -}} +
          + {{- else if eq (index $cell "cell_type") "markdown" -}} + {{- $source := index $cell "source" }} + {{- $sourceContent := (cond (reflect.IsSlice $source) (delimit $source "") $source) }} +{{ (printf "\n%s\n" $sourceContent) | safeHTML }} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/themes/hextra/layouts/shortcodes/pdf.html b/themes/hextra/layouts/shortcodes/pdf.html new file mode 100644 index 0000000000..9e3c4a93ab --- /dev/null +++ b/themes/hextra/layouts/shortcodes/pdf.html @@ -0,0 +1,9 @@ +{{/* Shortcode to include a PDF file in a page. */}} + +{{- $path := .Get 0 -}} +{{- $url := partial "utils/file-path" (dict "page" .Page "path" $path) -}} + + +
          + +
          diff --git a/themes/hextra/layouts/shortcodes/steps.html b/themes/hextra/layouts/shortcodes/steps.html new file mode 100644 index 0000000000..9ff473a6fb --- /dev/null +++ b/themes/hextra/layouts/shortcodes/steps.html @@ -0,0 +1,3 @@ +
          + {{- .Inner -}} +
          diff --git a/themes/hextra/layouts/shortcodes/tab.html b/themes/hextra/layouts/shortcodes/tab.html new file mode 100644 index 0000000000..2a15791a93 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/tab.html @@ -0,0 +1,12 @@ +{{- $defaultIndex := int ((.Parent.Get "defaultIndex") | default "0") -}} + +
          + {{- .InnerDeindent | markdownify -}} +
          +{{- /* Drop trailing newlines */ -}} diff --git a/themes/hextra/layouts/shortcodes/tabs.html b/themes/hextra/layouts/shortcodes/tabs.html new file mode 100644 index 0000000000..c1df7cc541 --- /dev/null +++ b/themes/hextra/layouts/shortcodes/tabs.html @@ -0,0 +1,28 @@ +{{- $items := split (.Get "items") "," -}} +{{- $defaultIndex := int ((.Get "defaultIndex") | default "0") -}} + +{{- if not $items -}} + {{ errorf "no items provided" }} +{{- end -}} + +
          +
          + {{- range $i, $item := $items -}} + + {{- end -}} +
          +
          +
          + {{- .Inner -}} +
          +{{- /* Drop trailing newlines */ -}} diff --git a/themes/hextra/netlify.toml b/themes/hextra/netlify.toml new file mode 100644 index 0000000000..3b30205414 --- /dev/null +++ b/themes/hextra/netlify.toml @@ -0,0 +1,12 @@ +[build] +publish = "exampleSite/public" +command = "cd exampleSite && hugo --gc --minify --themesDir ../.. -b ${DEPLOY_PRIME_URL}" + +# Always trigger a rebuild, even if the files haven't changed. +# See https://docs.netlify.com/configure-builds/file-based-configuration/#ignore-builds +ignore = "false" + +[build.environment] +HUGO_VERSION = "0.132.2" +GO_VERSION = "1.22.3" +NODE_VERSION = "22.2.0" diff --git a/themes/hextra/package-lock.json b/themes/hextra/package-lock.json new file mode 100644 index 0000000000..33c9de6a90 --- /dev/null +++ b/themes/hextra/package-lock.json @@ -0,0 +1,2233 @@ +{ + "name": "hextra", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "postcss-cli": "^11.0.0", + "postcss-import": "^16.1.0", + "prettier": "^3.2.5", + "prettier-plugin-go-template": "^0.0.15", + "tailwindcss": "^3.4.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@tailwindcss/nesting": { + "version": "0.0.0-insiders.565cd3e", + "resolved": "https://registry.npmjs.org/@tailwindcss/nesting/-/nesting-0.0.0-insiders.565cd3e.tgz", + "integrity": "sha512-WhHoFBx19TnH/c+xLwT/sxei6+4RpdfiyG3MYXfmLaMsADmVqBkF7B6lDalgZD9YdM459MF7DtxVbWkOrV7IaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-nested": "^5.0.5" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", + "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz", + "integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^14.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^5.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-import": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.0.tgz", + "integrity": "sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-reporter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-go-template": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.15.tgz", + "integrity": "sha512-WqU92E1NokWYNZ9mLE6ijoRg6LtIGdLMePt2C7UBDjXeDH9okcRI3zRqtnWR4s5AloiqyvZ66jNBAa9tmRY5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ulid": "^2.3.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", + "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tailwindcss/node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", + "dev": true, + "license": "MIT", + "bin": { + "ulid": "bin/cli.js" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/themes/hextra/package.json b/themes/hextra/package.json new file mode 100644 index 0000000000..dd71d5a43c --- /dev/null +++ b/themes/hextra/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "dev:theme": "hugo server --logLevel=debug --config=hugo.yaml,../dev.toml --environment=theme --source=exampleSite --themesDir=../.. --disableFastRender -D --port 1313", + "dev": "hugo server --source=exampleSite --themesDir=../.. --disableFastRender -D --port 1313", + "build:css": "npx postcss --config postcss.config.js --env production assets/css/styles.css -o assets/css/compiled/main.css", + "build": "hugo --gc --minify --themesDir=../.. --source=exampleSite" + }, + "devDependencies": { + "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "postcss-cli": "^11.0.0", + "postcss-import": "^16.1.0", + "prettier": "^3.2.5", + "prettier-plugin-go-template": "^0.0.15", + "tailwindcss": "^3.4.3" + } +} diff --git a/themes/hextra/postcss.config.js b/themes/hextra/postcss.config.js new file mode 100644 index 0000000000..f45bc2435f --- /dev/null +++ b/themes/hextra/postcss.config.js @@ -0,0 +1,12 @@ +let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js'; +const tailwind = require('tailwindcss')(tailwindConfig); +const autoprefixer = require('autoprefixer'); + +module.exports = { + plugins: [ + require('postcss-import'), + require('@tailwindcss/nesting'), + tailwind, + autoprefixer + ], +}; diff --git a/themes/hextra/static/android-chrome-192x192.png b/themes/hextra/static/android-chrome-192x192.png new file mode 100644 index 0000000000..7f0493c7ef Binary files /dev/null and b/themes/hextra/static/android-chrome-192x192.png differ diff --git a/themes/hextra/static/android-chrome-512x512.png b/themes/hextra/static/android-chrome-512x512.png new file mode 100644 index 0000000000..faea4c2fdf Binary files /dev/null and b/themes/hextra/static/android-chrome-512x512.png differ diff --git a/themes/hextra/static/apple-touch-icon.png b/themes/hextra/static/apple-touch-icon.png new file mode 100644 index 0000000000..eb281cbb71 Binary files /dev/null and b/themes/hextra/static/apple-touch-icon.png differ diff --git a/themes/hextra/static/favicon-16x16.png b/themes/hextra/static/favicon-16x16.png new file mode 100644 index 0000000000..0f2dd2b2eb Binary files /dev/null and b/themes/hextra/static/favicon-16x16.png differ diff --git a/themes/hextra/static/favicon-32x32.png b/themes/hextra/static/favicon-32x32.png new file mode 100644 index 0000000000..5c1aea5849 Binary files /dev/null and b/themes/hextra/static/favicon-32x32.png differ diff --git a/themes/hextra/static/favicon-dark.svg b/themes/hextra/static/favicon-dark.svg new file mode 100644 index 0000000000..3b49e35800 --- /dev/null +++ b/themes/hextra/static/favicon-dark.svg @@ -0,0 +1,13 @@ + + + diff --git a/themes/hextra/static/favicon.ico b/themes/hextra/static/favicon.ico new file mode 100644 index 0000000000..553fa15d0e Binary files /dev/null and b/themes/hextra/static/favicon.ico differ diff --git a/themes/hextra/static/favicon.svg b/themes/hextra/static/favicon.svg new file mode 100644 index 0000000000..6a08d10d12 --- /dev/null +++ b/themes/hextra/static/favicon.svg @@ -0,0 +1,13 @@ + + + diff --git a/themes/hextra/static/images/logo-dark.svg b/themes/hextra/static/images/logo-dark.svg new file mode 100644 index 0000000000..2857264017 --- /dev/null +++ b/themes/hextra/static/images/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/hextra/static/images/logo.svg b/themes/hextra/static/images/logo.svg new file mode 100644 index 0000000000..1ed7daf01d --- /dev/null +++ b/themes/hextra/static/images/logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/hextra/static/site.webmanifest b/themes/hextra/static/site.webmanifest new file mode 100644 index 0000000000..c36f3b37a7 --- /dev/null +++ b/themes/hextra/static/site.webmanifest @@ -0,0 +1,20 @@ +{ + "name": "Hextra", + "short_name": "Hextra", + "start_url": "index.html", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "display": "standalone" +} diff --git a/themes/hextra/tailwind.config.js b/themes/hextra/tailwind.config.js new file mode 100644 index 0000000000..0eee07142b --- /dev/null +++ b/themes/hextra/tailwind.config.js @@ -0,0 +1,87 @@ +const colors = require('tailwindcss/colors') + +const makePrimaryColor = + l => + ({ opacityValue }) => { + let result = "hsl(var(--primary-hue) var(--primary-saturation) "; + if (l <= 50) { + // Interpolate between lower values + result+= `calc(calc(var(--primary-lightness) / 50) * ${l})`; + } + else { + // Interpolate between higher values + result+= `calc(var(--primary-lightness) + calc(calc(100% - var(--primary-lightness)) / 50) * ${l - 50})`; + } + + result += (opacityValue ? ` / ${opacityValue})` : ')'); + return result; + } + +/** @type {import('tailwindcss').Config} */ +module.exports = { + prefix: 'hx-', + content: [ + './**/hugo_stats.json', + ], + safelist: [ + 'max-w-screen-xl', + 'max-w-[90rem]', + 'max-w-full' + ], + theme: { + screens: { + sm: '640px', + md: '768px', + lg: '1024px', + xl: '1280px', + '2xl': '1536px' + }, + fontSize: { + xs: '.75rem', + sm: '.875rem', + base: '1rem', + lg: '1.125rem', + xl: '1.25rem', + '2xl': '1.5rem', + '3xl': '1.875rem', + '4xl': '2.25rem', + '5xl': '3rem', + '6xl': '4rem' + }, + letterSpacing: { + tight: '-0.015em' + }, + colors: { + transparent: 'transparent', + current: 'currentColor', + black: '#000', + white: '#fff', + gray: colors.gray, + slate: colors.slate, + neutral: colors.neutral, + red: colors.red, + orange: colors.orange, + blue: colors.blue, + yellow: colors.yellow, + primary: { + 50: makePrimaryColor(97), + 100: makePrimaryColor(94), + 200: makePrimaryColor(86), + 300: makePrimaryColor(77), + 400: makePrimaryColor(66), + 500: makePrimaryColor(50), + 600: makePrimaryColor(45), + 700: makePrimaryColor(39), + 750: makePrimaryColor(35), + 800: makePrimaryColor(32), + 900: makePrimaryColor(24) + } + }, + extend: { + colors: { + dark: '#111' + } + } + }, + darkMode: ['class', 'html[class~="dark"]'] +}; diff --git a/themes/hextra/taskfile.yaml b/themes/hextra/taskfile.yaml new file mode 100644 index 0000000000..d9edf13c7a --- /dev/null +++ b/themes/hextra/taskfile.yaml @@ -0,0 +1,28 @@ +version: "3" + +tasks: + build: + desc: Build Hextra documentation site under `exampleSite` + cmds: + - hugo --gc --minify --themesDir=../.. --source=exampleSite + + css: + depends: [build] + desc: Compile production CSS using PostCSS to `assets/css/compiled/main.css` + cmds: + - npx postcss --config postcss.config.js --env production assets/css/styles.css -o assets/css/compiled/main.css + + dev: + desc: Start development server for Hextra theme + cmds: + - npm run dev:theme + + libs: + desc: Download libs from CDN + cmds: + - curl -o assets/lib/flexsearch/flexsearch.bundle.min.js https://cdn.jsdelivr.net/npm/flexsearch@0.7.31/dist/flexsearch.bundle.min.js + - curl -o assets/lib/katex/katex.min.js https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.js + - curl -o assets/lib/katex/katex.min.css https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css + - curl -o assets/lib/katex/auto-render.min.js https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js + - curl -o assets/lib/katex/mhchem.min.js https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/mhchem.min.js + - curl -o assets/lib/mermaid/mermaid.min.js https://cdn.jsdelivr.net/npm/mermaid@11.3.0/dist/mermaid.min.js diff --git a/themes/hextra/theme.toml b/themes/hextra/theme.toml new file mode 100644 index 0000000000..4f05672d70 --- /dev/null +++ b/themes/hextra/theme.toml @@ -0,0 +1,16 @@ +# theme.toml template for a Hugo theme +# See https://github.com/gohugoiox/hugoThemes#themetoml for an example + +name = "Hextra" +license = "MIT" +licenselink = "https://github.com/imfing/hextra/blob/main/LICENSE" +description = "Modern, responsive, batteries-included Hugo theme for creating beautiful static websites." +homepage = "https://github.com/imfing/hextra/" +demosite = "https://imfing.github.io/hextra/" +tags = ["Modern", "Elegant", "Blog", "Documentation", "Responsive", "Clean", "Light", "Dark", "Minimal"] +features = ["Responsive", "Dark Mode", "Search", "Syntax Highlighting", "Multilingual", "Social", "Blog", "RSS", "Customization"] +min_version = "0.124.0" + +[author] + name = "Xin" + homepage = "https://imfing.com"