Commit 19414019 authored by Matthias Betz's avatar Matthias Betz
Browse files

Review German geometry-error docs, translate to English, rebuild site



German docs (docs/de):
- Fix broken shell cross-links (missing R_ prefix), missing .md, old
  wiki path, and wrong/missing #vertex anchors
- Fix error/check codes: CONCECUTIVE->CONSECUTIVE, C_ prefix on
  collapsed-to-line check, GS_S_->GE_S_ typo, correct requirement-ID
  and expected-result cells
- Fix German spelling/grammar and remove stray English fragments
- Unify headings/labels, remove stray <br /> lines
- Repoint all figure links from external GitLab URLs to local img/

English docs (docs/en):
- Translate all 21 R_GE_* detail files from the wiki-pointer stubs,
  preserving IDs, codes, links, images and tables verbatim
- Fix CONCECUTIVE->CONSECUTIVE in geometric.md

Rebuild both mkdocs sites into public/de and public/en.

Co-Authored-By: default avatarClaude Opus 4.8 (1M context) <noreply@anthropic.com>
parent 93fb6887
Pipeline #12421 passed with stages
in 15 seconds
@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m18 21-4-4h3V7h-3l4-4 4 4h-3v10h3M2 19v-2h10v2M2 13v-2h7v2M2 7V5h4v2z"/></svg>');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z"/></svg>');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7h3l-4-4-4 4h3v14h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z"/></svg>')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block;margin:0 auto}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-typeset .md-author{border-radius:100%;display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.md-typeset .md-author img{display:block}.md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.md-typeset .md-author--long{height:2.4rem;width:2.4rem}.md-typeset a.md-author{transform:scale(1)}.md-typeset a.md-author img{border-radius:100%;filter:grayscale(100%) opacity(75%);transition:filter 125ms}.md-typeset a.md-author:focus,.md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.md-typeset a.md-author:focus img,.md-typeset a.md-author:hover img{filter:grayscale(0)}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z"/></svg>')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .md-code__content{display:grid}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;opacity:.7}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem;margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem;margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.md-meta__item:not(:last-child):after{content:"·";margin-left:.2rem;margin-right:.2rem}.md-meta__link{color:var(--md-typeset-a-color)}.md-meta__link:focus,.md-meta__link:hover{color:var(--md-accent-fg-color)}.md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 9h14V7H3zm0 4h14v-2H3zm0 4h14v-2H3zm16 0h2v-2h-2zm0-10v2h2V7zm0 6h2v-2h-2z"/></svg>')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__link .md-ellipsis{position:relative}[dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}[dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em;position:relative}.md-nav__link[for]:focus,.md-nav__link[for]:hover,.md-nav__link[href]:focus,.md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__container>.md-nav__link{margin-top:0}.md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.234375em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link svg{margin-top:.1em}.md-nav--primary .md-nav__link>.md-nav__link{padding:0}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.984375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav{margin-bottom:-.4rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.md-nav--secondary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.md-nav--primary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle.md-toggle--indeterminate~.md-nav,.md-nav__toggle:checked~.md-nav{grid-template-rows:1fr;opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav__link .md-icon,.md-nav__item--section>.md-nav__link>[for]{display:none}[dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}[dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-left:-.6rem}[dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-right:-.6rem}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:1fr;opacity:1;visibility:visible}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.md-pagination,.md-pagination>*{align-items:center;display:flex;justify-content:center}.md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.md-pagination__link{transition:color 125ms,background-color 125ms}.md-pagination__link:focus,.md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-pagination__link:focus svg,.md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}.md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.md-post__back{display:none}}[dir=rtl] .md-post__back svg{transform:scaleX(-1)}.md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.md-post .md-post__meta a{transition:color 125ms}.md-post .md-post__meta a:focus,.md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.md-post--excerpt{margin-bottom:3.2rem}.md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}[dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}[dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.md-post>.md-nav--secondary{margin:1em 0}.md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.md-profile__description{flex-grow:1}.md-content--post{display:flex}@media screen and (max-width:76.234375em){.md-content--post{flex-flow:column-reverse}}.md-content--post>.md-content__inner{min-width:0}@media screen and (min-width:76.25em){[dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.md-sidebar.md-sidebar--post .md-sidebar__scrollwrap{overflow:visible}.md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.md-sidebar.md-sidebar--post .md-nav__link{padding:0}.md-sidebar.md-sidebar--post .md-nav{height:auto;margin-bottom:0;position:static}}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h7c-.41-.25-.8-.56-1.14-.9-.33-.33-.61-.7-.86-1.1H6V4h7v5h5v1.18c.71.16 1.39.43 2 .82V8zm6.31 16.9c1.33-2.11.69-4.9-1.4-6.22-2.11-1.33-4.91-.68-6.22 1.4-1.34 2.11-.69 4.89 1.4 6.22 1.46.93 3.32.93 4.79.02L22 23.39 23.39 22zm-3.81.1a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5"/></svg>')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.234375em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.984375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.984375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.984375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0"/></svg>');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg>');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775m1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2"/></svg>')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-source-file{margin:1em 0}[dir=ltr] .md-source-file__fact{margin-right:.6rem}[dir=rtl] .md-source-file__fact{margin-left:.6rem}.md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}[dir=ltr] .md-source-file__fact .md-author{float:left}[dir=rtl] .md-source-file__fact .md-author{float:right}.md-source-file__fact .md-author{margin-right:.2rem}.md-source-file__fact svg{width:.9rem}:root{--md-status:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z"/></svg>');--md-status--new:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m23 12-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68zm-10 5h-2v-2h2zm0-4h-2V7h2z"/></svg>');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 3v1H4v2h1v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6h1V4h-5V3zm0 5h2v9H9zm4 0h2v9h-2z"/></svg>');--md-status--encrypted:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 6c1.4 0 2.8 1.1 2.8 2.5V11c.6 0 1.2.6 1.2 1.3v3.5c0 .6-.6 1.2-1.3 1.2H9.2c-.6 0-1.2-.6-1.2-1.3v-3.5c0-.6.6-1.2 1.2-1.2V9.5C9.2 8.1 10.6 7 12 7m0 1.2c-.8 0-1.5.5-1.5 1.3V11h3V9.5c0-.8-.7-1.3-1.5-1.3"/></svg>')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m5.41 21 .71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4zM9.53 9l-1.06 6h6l1.06-6z"/></svg>')}.md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>')}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}[hidden]+.md-tooltip--inline{display:none}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-style:normal;font-weight:400;outline:none;text-align:initial;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:xxx;list-style:none}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(xxx);counter-increment:xxx;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}:root{--md-tooltip-width:20rem;--md-tooltip-tail:0.3rem}.md-tooltip2{-webkit-backface-visibility:hidden;backface-visibility:hidden;color:var(--md-default-fg-color);font-family:var(--md-text-font-family);opacity:0;pointer-events:none;position:absolute;top:calc(var(--md-tooltip-host-y) + var(--md-tooltip-y));transform:translateY(-.4rem);transform-origin:calc(var(--md-tooltip-host-x) + var(--md-tooltip-x)) 0;transition:transform 0ms .25s,opacity .25s,z-index .25s;width:100%;z-index:0}.md-tooltip2:before{border-left:var(--md-tooltip-tail) solid #0000;border-right:var(--md-tooltip-tail) solid #0000;content:"";display:block;left:clamp(1.5 * .8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-tail),100vw - 2 * var(--md-tooltip-tail) - 1.5 * .8rem);position:absolute;z-index:1}.md-tooltip2--top:before{border-top:var(--md-tooltip-tail) solid var(--md-default-bg-color);bottom:calc(var(--md-tooltip-tail)*-1 + .025rem);filter:drop-shadow(0 1px 0 hsla(0,0%,0%,.05))}.md-tooltip2--bottom:before{border-bottom:var(--md-tooltip-tail) solid var(--md-default-bg-color);filter:drop-shadow(0 -1px 0 hsla(0,0%,0%,.05));top:calc(var(--md-tooltip-tail)*-1 + .025rem)}.md-tooltip2--active{opacity:1;transform:translateY(0);transition:transform .4s cubic-bezier(0,1,.5,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip2__inner{scrollbar-gutter:stable;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);left:clamp(.8rem,var(--md-tooltip-host-x) - .8rem,100vw - var(--md-tooltip-width) - .8rem);max-height:40vh;max-width:calc(100vw - 1.6rem);position:relative;scrollbar-width:thin}.md-tooltip2__inner::-webkit-scrollbar{height:.2rem;width:.2rem}.md-tooltip2__inner::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-tooltip2__inner::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}[role=tooltip]>.md-tooltip2__inner{font-size:.5rem;font-weight:700;left:clamp(.8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-width)/2,100vw - var(--md-tooltip-width) - .8rem);max-width:min(100vw - 2 * .8rem,400px);padding:.2rem .4rem;-webkit-user-select:none;user-select:none;width:-moz-fit-content;width:fit-content}.md-tooltip2__inner.md-typeset>:first-child{margin-top:0}.md-tooltip2__inner.md-typeset>:last-child{margin-bottom:0}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301 191.9 288 191.9L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__alias{margin-left:.3rem;opacity:.7}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06z"/></svg>');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27"/></svg>');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z"/></svg>');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z"/></svg>');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 13h2v1h-2zm10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4zm-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2zm-6 2h2v-1h-2z"/></svg>');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2zm4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4z"/></svg>');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3z"/></svg>')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition:focus-within,.md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .admonition.note:focus-within,.md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .admonition.abstract:focus-within,.md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .admonition.info:focus-within,.md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .admonition.tip:focus-within,.md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .admonition.success:focus-within,.md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .admonition.question:focus-within,.md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .admonition.warning:focus-within,.md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .admonition.failure:focus-within,.md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .admonition.danger:focus-within,.md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .admonition.bug:focus-within,.md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .admonition.example:focus-within,.md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .admonition.quote:focus-within,.md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7z"/></svg>')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}.md-typeset div.arithmatex>*{width:min-content}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset div.arithmatex mjx-assistive-mml{height:0}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.md-typeset .lg,.md-typeset .xl,.md-typeset .xxl,.md-typeset .xxxl{vertical-align:text-bottom}.md-typeset .middle{vertical-align:middle}.md-typeset .lg{--md-icon-size:1.5em}.md-typeset .xl{--md-icon-size:2.25em}.md-typeset .xxl{--md-icon-size:3em}.md-typeset .xxxl{--md-icon-size:4em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying]{display:initial}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6z"/></svg>');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-labels>label>[href]:first-child{color:inherit}.md-typeset .tabbed-labels--linked>label{padding:0}.md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}.md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.md-typeset .grid.cards>ol,.md-typeset .grid.cards>ul{display:contents}.md-typeset .grid.cards>ol>li,.md-typeset .grid.cards>ul>li,.md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.1rem;display:block;margin:0;padding:.8rem;transition:border .25s,box-shadow .25s}.md-typeset .grid.cards>ol>li:focus-within,.md-typeset .grid.cards>ol>li:hover,.md-typeset .grid.cards>ul>li:focus-within,.md-typeset .grid.cards>ul>li:hover,.md-typeset .grid>.card:focus-within,.md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.md-typeset .grid.cards>ol>li>hr,.md-typeset .grid.cards>ul>li>hr,.md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.md-typeset .grid.cards>ol>li>:first-child,.md-typeset .grid.cards>ul>li>:first-child,.md-typeset .grid>.card>:first-child{margin-top:0}.md-typeset .grid.cards>ol>li>:last-child,.md-typeset .grid.cards>ul>li>:last-child,.md-typeset .grid>.card>:last-child{margin-bottom:0}.md-typeset .grid>*,.md-typeset .grid>.admonition,.md-typeset .grid>.highlight>*,.md-typeset .grid>.highlighttable,.md-typeset .grid>.md-typeset details,.md-typeset .grid>details,.md-typeset .grid>pre{margin-bottom:0;margin-top:0}.md-typeset .grid>.highlight>pre:only-child,.md-typeset .grid>.highlight>pre>code,.md-typeset .grid>.highlighttable,.md-typeset .grid>.highlighttable>tbody,.md-typeset .grid>.highlighttable>tbody>tr,.md-typeset .grid>.highlighttable>tbody>tr>.code,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}
\ No newline at end of file
{"version":3,"sources":["src/templates/assets/stylesheets/main/components/_meta.scss","../../../../src/templates/assets/stylesheets/main.scss","src/templates/assets/stylesheets/main/_resets.scss","src/templates/assets/stylesheets/main/_colors.scss","src/templates/assets/stylesheets/main/_icons.scss","src/templates/assets/stylesheets/main/_typeset.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/templates/assets/stylesheets/main/components/_author.scss","src/templates/assets/stylesheets/main/components/_banner.scss","src/templates/assets/stylesheets/main/components/_base.scss","src/templates/assets/stylesheets/main/components/_clipboard.scss","src/templates/assets/stylesheets/main/components/_code.scss","src/templates/assets/stylesheets/main/components/_consent.scss","src/templates/assets/stylesheets/main/components/_content.scss","src/templates/assets/stylesheets/main/components/_dialog.scss","src/templates/assets/stylesheets/main/components/_feedback.scss","src/templates/assets/stylesheets/main/components/_footer.scss","src/templates/assets/stylesheets/main/components/_form.scss","src/templates/assets/stylesheets/main/components/_header.scss","node_modules/material-design-color/material-color.scss","src/templates/assets/stylesheets/main/components/_nav.scss","src/templates/assets/stylesheets/main/components/_pagination.scss","src/templates/assets/stylesheets/main/components/_post.scss","src/templates/assets/stylesheets/main/components/_progress.scss","src/templates/assets/stylesheets/main/components/_search.scss","src/templates/assets/stylesheets/main/components/_select.scss","src/templates/assets/stylesheets/main/components/_sidebar.scss","src/templates/assets/stylesheets/main/components/_source.scss","src/templates/assets/stylesheets/main/components/_status.scss","src/templates/assets/stylesheets/main/components/_tabs.scss","src/templates/assets/stylesheets/main/components/_tag.scss","src/templates/assets/stylesheets/main/components/_tooltip.scss","src/templates/assets/stylesheets/main/components/_tooltip2.scss","src/templates/assets/stylesheets/main/components/_top.scss","src/templates/assets/stylesheets/main/components/_version.scss","src/templates/assets/stylesheets/main/extensions/markdown/_admonition.scss","src/templates/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/templates/assets/stylesheets/main/extensions/markdown/_toc.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_keys.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/templates/assets/stylesheets/main/integrations/_mermaid.scss","src/templates/assets/stylesheets/main/modifiers/_grid.scss","src/templates/assets/stylesheets/main/modifiers/_inline.scss"],"names":[],"mappings":"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CJ,CmB9qCI,8CAEE,kCAAA,CAAA,0BnB+qCN,CACF,CKj3CI,0Cc0MA,0CACE,YnB0qCJ,CmBvqCI,yDACE,UnByqCN,CmBrqCI,wDACE,YnBuqCN,CmBnqCI,kDACE,YnBqqCN,CmBhqCE,gBAIE,iDAAA,CADA,gCAAA,CAFA,aAAA,CACA,enBoqCJ,CACF,CK96CM,+DcmRF,6CACE,YnB8pCJ,CmB3pCI,4DACE,UnB6pCN,CmBzpCI,2DACE,YnB2pCN,CmBvpCI,qDACE,YnBypCN,CACF,CKt6CI,mCc7JJ,QAgbI,oBnBupCF,CmBjpCI,kCAME,qCAAA,CACA,qDAAA,CANA,eAAA,CACA,KAAA,CAGA,SnBmpCN,CmB9oCM,6CACE,uBnBgpCR,CmB5oCM,gDACE,YnB8oCR,CmBzoCI,2CACE,kBnB4oCN,CmB7oCI,2CACE,mBnB4oCN,CmB7oCI,iCAEE,oBnB2oCN,CmBpoCI,yDACE,kBnBsoCN,CmBvoCI,yDACE,iBnBsoCN,CACF,CK/7CI,sCc7JJ,QA4dI,oBAAA,CACA,oDnBooCF,CmB9nCI,gCAME,qCAAA,CACA,qDAAA,CANA,eAAA,CACA,KAAA,CAGA,SnBgoCN,CmB3nCM,8CACE,uBnB6nCR,CmBznCM,8CACE,YnB2nCR,CmBtnCI,yCACE,kBnBynCN,CmB1nCI,yCACE,mBnBynCN,CmB1nCI,+BAEE,oBnBwnCN,CmBjnCI,uDACE,kBnBmnCN,CmBpnCI,uDACE,iBnBmnCN,CmB9mCE,wBACE,YAAA,CACA,sBAAA,CAEA,SAAA,CACA,6FACE,CAHF,mBnBknCJ,CmB1mCI,sCACE,enB4mCN,CmBvmCE,iFACE,sBAAA,CAEA,SAAA,CACA,4FACE,CAHF,kBnB2mCJ,CmBlmCE,iDACE,enBomCJ,CmBhmCE,6CACE,YnBkmCJ,CmB9lCE,uBACE,aAAA,CACA,enBgmCJ,CmB7lCI,kCACE,enB+lCN,CmB3lCI,qCACE,enB6lCN,CmB1lCM,0CACE,uCnB4lCR,CmBxlCM,6DACE,mBnB0lCR,CmBtlCM,yFAEE,YnBwlCR,CmBnlCI,yCAEE,kBnBulCN,CmBzlCI,yCAEE,mBnBulCN,CmBzlCI,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","file":"main.css"}
\ No newline at end of file
@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}:root,[data-md-color-scheme=default]{--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#ffff0080;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#ffff0080;--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:#0000001f;--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m18 21-4-4h3V7h-3l4-4 4 4h-3v10h3M2 19v-2h10v2M2 13v-2h7v2M2 7V5h4v2H2Z"/></svg>');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2v-2Z"/></svg>');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7h3l-4-4-4 4h3v14h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2v-2Z"/></svg>')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr[title]:focus:after,.md-typeset abbr[title]:hover:after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);font-size:.7rem;left:.8rem;margin-top:2em;padding:.2rem .3rem;position:absolute;right:.8rem}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"/></svg>')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.9375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 9h14V7H3v2m0 4h14v-2H3v2m0 4h14v-2H3v2m16 0h2v-2h-2v2m0-10v2h2V7h-2m0 6h2v-2h-2v2Z"/></svg>')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav,.md-nav__toggle:indeterminate~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);font-weight:700;margin-top:0;padding:0 .6rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__link--index){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h7c-.41-.25-.8-.56-1.14-.9-.33-.33-.61-.7-.86-1.1H6V4h7v5h5v1.18c.71.16 1.39.43 2 .82V8l-6-6m6.31 16.9c1.33-2.11.69-4.9-1.4-6.22-2.11-1.33-4.91-.68-6.22 1.4-1.34 2.11-.69 4.89 1.4 6.22 1.46.93 3.32.93 4.79.02L22 23.39 23.39 22l-3.08-3.1m-3.81.1a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5Z"/></svg>')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:-webkit-sticky;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.1875em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"/></svg>');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"/></svg>');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"/></svg>')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m5.41 21 .71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4h-2M9.53 9l-1.06 6h6l1.06-6h-6Z"/></svg>')}.md-typeset .md-tags{margin-bottom:.75em;margin-top:-.125em}[dir=ltr] .md-typeset .md-tag{margin-right:.5em}[dir=rtl] .md-typeset .md-tag{margin-left:.5em}.md-typeset .md-tag{background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:normal;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em;vertical-align:middle}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;margin-right:.4em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em #0000;transform:scale(1)}to{box-shadow:0 0 0 0 #0000;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation__index{cursor:pointer;font-family:var(--md-code-font-family);font-size:.85em;margin:0 1ch;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.md-annotation .md-annotation__index{color:#fff;transition:z-index .25s}.md-annotation .md-annotation__index:focus,.md-annotation .md-annotation__index:hover{color:#fff}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.125em;margin:0 -.4ch;padding:0 .4ch;position:absolute;top:0;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{animation:pulse 2s infinite}}.md-tooltip--active+.md-annotation__index:after{animation:none;transition:color .25s,background-color .25s}code .md-annotation__index{font-family:var(--md-code-font-family);font-size:inherit}.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index{color:var(--md-accent-bg-color)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}.md-tooltip--active+.md-annotation__index{animation:none;transition:none;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301 191.9 288 191.9L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06l6.06-6.06Z"/></svg>');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z"/></svg>');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2Z"/></svg>');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.58.58 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27Z"/></svg>');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59 21 7Z"/></svg>');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10Z"/></svg>');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2 1 21Z"/></svg>');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2Z"/></svg>');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 13h2v1h-2v-1m10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4 9 4m-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2v-1m-6 2h2v-1h-2v1Z"/></svg>');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2H7m4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4v3Z"/></svg>');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3l-2 4Z"/></svg>')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.05rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7h-2Z"/></svg>')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.42Z"/></svg>');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42Z"/></svg>')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Zm16.28-2.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Zm16.28-2.72a.751.751 0 0 0-.018-1.042.751.751 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z"/></svg>')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}
\ No newline at end of file
{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/components/_banner.scss","src/assets/stylesheets/main/components/_base.scss","src/assets/stylesheets/main/components/_clipboard.scss","src/assets/stylesheets/main/components/_consent.scss","src/assets/stylesheets/main/components/_content.scss","src/assets/stylesheets/main/components/_dialog.scss","src/assets/stylesheets/main/components/_feedback.scss","src/assets/stylesheets/main/components/_footer.scss","src/assets/stylesheets/main/components/_form.scss","src/assets/stylesheets/main/components/_header.scss","src/assets/stylesheets/main/components/_nav.scss","src/assets/stylesheets/main/components/_search.scss","src/assets/stylesheets/main/components/_select.scss","src/assets/stylesheets/main/components/_sidebar.scss","src/assets/stylesheets/main/components/_source.scss","src/assets/stylesheets/main/components/_tabs.scss","src/assets/stylesheets/main/components/_tag.scss","src/assets/stylesheets/main/components/_tooltip.scss","src/assets/stylesheets/main/components/_top.scss","src/assets/stylesheets/main/components/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/integrations/_mermaid.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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A,+BAAA,CAHA,2CACE,CALF,kBAAA,CALA,UnCwqHN,CmCzpHM,aAII,6CACE,OnCwpHV,CmCzpHQ,8CACE,OnC2pHV,CmC5pHQ,8CACE,OnC8pHV,CmC/pHQ,8CACE,OnCiqHV,CmClqHQ,8CACE,OnCoqHV,CmCrqHQ,8CACE,OnCuqHV,CmCxqHQ,8CACE,OnC0qHV,CmC3qHQ,8CACE,OnC6qHV,CmC9qHQ,8CACE,OnCgrHV,CmCjrHQ,+CACE,QnCmrHV,CmCprHQ,+CACE,QnCsrHV,CmCvrHQ,+CACE,QnCyrHV,CmC1rHQ,+CACE,QnC4rHV,CmC7rHQ,+CACE,QnC+rHV,CmChsHQ,+CACE,QnCksHV,CmCnsHQ,+CACE,QnCqsHV,CmCtsHQ,+CACE,QnCwsHV,CmCzsHQ,+CACE,QnC2sHV,CmC5sHQ,+CACE,QnC8sHV,CmC/sHQ,+CACE,QnCitHV,CACF,CmC5sHM,uCACE,+BnC8sHR,CmCxsHE,4BACE,UnC0sHJ,CmCvsHI,aAJF,4BAKI,gBnC0sHJ,CACF,CmCtsHE,0BACE,YnCwsHJ,CmCrsHI,aAJF,0BAKI,anCwsHJ,CmCpsHM,sCACE,OnCssHR,CmCvsHM,uCACE,OnCysHR,CmC1sHM,uCACE,OnC4sHR,CmC7sHM,uCACE,OnC+sHR,CmChtHM,uCACE,OnCktHR,CmCntHM,uCACE,OnCqtHR,CmCttHM,uCACE,OnCwtHR,CmCztHM,uCACE,OnC2tHR,CmC5tHM,uCACE,OnC8tHR,CmC/tHM,wCACE,QnCiuHR,CmCluHM,wCACE,QnCouHR,CmCruHM,wCACE,QnCuuHR,CmCxuHM,wCACE,QnC0uHR,CmC3uHM,wCACE,QnC6uHR,CmC9uHM,wCACE,QnCgvHR,CmCjvHM,wCACE,QnCmvHR,CmCpvHM,wCACE,QnCsvHR,CmCvvHM,wCACE,QnCyvHR,CmC1vHM,wCACE,QnC4vHR,CmC7vHM,wCACE,QnC+vHR,CACF,CmCzvHI,+FAEE,QnC2vHN,CmCxvHM,yGACE,wBAAA,CACA,yBnC2vHR,CmClvHM,2DAEE,wBAAA,CACA,yBAAA,CAFA,QnCsvHR,CmC/uHM,iEACE,QnCivHR,CmC9uHQ,qLAGE,wBAAA,CACA,yBAAA,CAFA,QnCkvHV,CmC5uHQ,6FACE,wBAAA,CACA,yBnC8uHV,CmCzuHM,yDACE,kBnC2uHR,CmCtuHI,sCACE,QnCwuHN,CmCnuHE,2BAEE,iBAAA,CAKA,kBAAA,CADA,uCAAA,CAEA,cAAA,CAPA,aAAA,CAGA,YAAA,CACA,gBAAA,CAKA,mBAAA,CADA,gCAAA,CANA,WnC4uHJ,CmCluHI,iCAEE,uDAAA,CADA,+BnCquHN,CmChuHI,iCAIE,6BAAA,CAQA,UAAA,CAXA,aAAA,CAEA,WAAA,CAKA,8CAAA,CAAA,sCAAA,CACA,4BAAA,CAAA,oBAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBAAA,CANA,+CACE,CAJF,UnC0uHN,CmC3tHE,4BAME,yEACE,CALF,YAAA,CAGA,aAAA,CAFA,qBAAA,CAUA,mBAAA,CAZA,iBAAA,CAWA,wBAAA,CARA,YnCiuHJ,CmCrtHI,sCACE,wBnCutHN,CmCntHI,oCACE,SnCqtHN,CmCjtHI,kCAGE,wEACE,CAFF,mBAAA,CADA,OnCqtHN,CmC3sHM,uDACE,8CAAA,CAAA,sCnC6sHR,CK7zHI,wC8B8HF,wDAGE,kBnCosHF,CmCvsHA,wDAGE,mBnCosHF,CmCvsHA,8CAEE,eAAA,CADA,eAAA,CAGA,iCnCmsHF,CmC/rHE,8DACE,mBnCksHJ,CmCnsHE,8DACE,kBnCksHJ,CmCnsHE,oDAEE,UnCisHJ,CmC7rHE,8EAEE,kBnCgsHJ,CmClsHE,8EAEE,mBnCgsHJ,CmClsHE,8EAGE,kBnC+rHJ,CmClsHE,8EAGE,mBnC+rHJ,CmClsHE,oEACE,UnCisHJ,CmC3rHE,8EAEE,mBnC8rHJ,CmChsHE,8EAEE,kBnC8rHJ,CmChsHE,8EAGE,mBnC6rHJ,CmChsHE,8EAGE,kBnC6rHJ,CmChsHE,oEACE,UnC+rHJ,CACF,CmCjrHE,cAHF,olDAII,+BnCorHF,CmCjrHE,g8GACE,sCnCmrHJ,CACF,CmC9qHA,4sDACE,uDnCirHF,CmC7qHA,wmDACE,anCgrHF,CoC7hIA,MACE,8WAAA,CAEA,uXpCiiIF,CoCvhIE,4BAEE,oBAAA,CADA,iBpC2hIJ,CoCthII,sDAGE,SpCwhIN,CoC3hII,sDAGE,UpCwhIN,CoC3hII,4CACE,iBAAA,CACA,SpCyhIN,CoCnhIE,+CAEE,SAAA,CADA,UpCshIJ,CoCjhIE,kDAGE,WpC2hIJ,CoC9hIE,kDAGE,YpC2hIJ,CoC9hIE,wCAME,qDAAA,CAKA,UAAA,CANA,aAAA,CAEA,0CAAA,CAAA,kCAAA,CACA,4BAAA,CAAA,oBAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBAAA,CATA,iBAAA,CACA,SAAA,CAEA,YpC0hIJ,CoC/gIE,gEACE,wBTyWa,CSxWb,mDAAA,CAAA,2CpCihIJ,CqCnkIA,QACE,8DAAA,CAGA,+CAAA,CACA,iEAAA,CACA,oDAAA,CACA,sDAAA,CACA,mDrCokIF,CqChkIA,SAEE,kBAAA,CADA,YrCokIF,CK36HI,mCiChKA,8BACE,UtCmlIJ,CsCplIE,8BACE,WtCmlIJ,CsCplIE,8BAIE,kBtCglIJ,CsCplIE,8BAIE,iBtCglIJ,CsCplIE,oBAKE,mBAAA,CAFA,YAAA,CADA,atCklIJ,CsC5kII,kCACE,WtC+kIN,CsChlII,kCACE,UtC+kIN,CsChlII,kCAEE,iBAAA,CAAA,ctC8kIN,CsChlII,kCAEE,aAAA,CAAA,kBtC8kIN,CACF","file":"main.css"}
\ No newline at end of file
@media screen{[data-md-color-scheme=slate]{--md-default-fg-color:hsla(var(--md-hue),15%,90%,0.82);--md-default-fg-color--light:hsla(var(--md-hue),15%,90%,0.56);--md-default-fg-color--lighter:hsla(var(--md-hue),15%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),15%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,14%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,14%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,14%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,14%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,0.82);--md-code-bg-color:hsla(var(--md-hue),15%,18%,1);--md-code-hl-color:#2977ff;--md-code-hl-color--light:#2977ff1a;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-kbd-color:hsla(var(--md-hue),15%,90%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,90%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-mark-color:#4287ff4d;--md-typeset-table-color:hsla(var(--md-hue),15%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),15%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,10%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,8%,1);--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #00000040,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059;color-scheme:dark}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#c46fd3}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a47bea}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#5488e8}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff764d}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c1775c}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5e8bde}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:hsla(var(--md-hue),0%,100%,1);--md-primary-fg-color--light:hsla(var(--md-hue),0%,100%,0.7);--md-primary-fg-color--dark:hsla(var(--md-hue),0%,0%,0.07);--md-primary-bg-color:hsla(var(--md-hue),0%,0%,0.87);--md-primary-bg-color--light:hsla(var(--md-hue),0%,0%,0.54);--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:hsla(var(--md-hue),0%,0%,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:hsla(var(--md-hue),0%,0%,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:hsla(var(--md-hue),0%,0%,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:hsla(var(--md-hue),15%,9%,1);--md-primary-fg-color--light:hsla(var(--md-hue),15%,9%,0.54);--md-primary-fg-color--dark:hsla(var(--md-hue),15%,9%,1);--md-primary-bg-color:hsla(var(--md-hue),15%,100%,1);--md-primary-bg-color--light:hsla(var(--md-hue),15%,100%,0.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:hsla(var(--md-hue),0%,100%,1)}[data-md-color-primary=black] .md-header{background-color:hsla(var(--md-hue),15%,9%,1)}@media screen and (max-width:59.984375em){[data-md-color-primary=black] .md-nav__source{background-color:hsla(var(--md-hue),15%,11%,.87)}}@media screen and (max-width:76.234375em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:hsla(var(--md-hue),15%,9%,1)}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:hsla(var(--md-hue),15%,9%,1)}}
\ No newline at end of file
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"}
\ No newline at end of file
@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:#4287ff26;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#4287ff4d;--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1);--md-shadow-z1:0 0.2rem 0.5rem #0003,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000004d,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#bd78c9}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a682e3}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#6c91d5}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff9575}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c7846b}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#6c91d5}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:#ffffffb3;--md-primary-fg-color--dark:#00000012;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a;--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:#00000012}[data-md-color-primary=white] .md-search__form:hover{background-color:#00000052}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:#000000de}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:#0000008a;--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:#000000de}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:#ffffff1f}[data-md-color-primary=black] .md-search__form:hover{background-color:#ffffff4d}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}
\ No newline at end of file
{"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"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","file":"palette.css"}
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../qual_ade/" rel="prev"/> <link href="../qual_ade/" rel="prev"/>
<link href="../requirements/" rel="next"/> <link href="../requirements/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Grundbegriffe - CityDoctor2</title> <title>Grundbegriffe - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,95 +153,73 @@ ...@@ -153,95 +153,73 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="true" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -250,18 +228,14 @@ ...@@ -250,18 +228,14 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#begriffe-und-definitionen"> <a class="md-nav__link" href="#begriffe-und-definitionen">
<span class="md-ellipsis"> Begriffe und Definitionen
Begriffe und Definitionen </a>
</span>
</a>
<nav aria-label="Begriffe und Definitionen" class="md-nav"> <nav aria-label="Begriffe und Definitionen" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#zusatzliche-defintionen"> <a class="md-nav__link" href="#zusatzliche-defintionen">
<span class="md-ellipsis"> Zusätzliche Defintionen:
Zusätzliche Defintionen: </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -271,192 +245,140 @@ ...@@ -271,192 +245,140 @@
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -483,18 +405,14 @@ ...@@ -483,18 +405,14 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#begriffe-und-definitionen"> <a class="md-nav__link" href="#begriffe-und-definitionen">
<span class="md-ellipsis"> Begriffe und Definitionen
Begriffe und Definitionen </a>
</span>
</a>
<nav aria-label="Begriffe und Definitionen" class="md-nav"> <nav aria-label="Begriffe und Definitionen" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#zusatzliche-defintionen"> <a class="md-nav__link" href="#zusatzliche-defintionen">
<span class="md-ellipsis"> Zusätzliche Defintionen:
Zusätzliche Defintionen: </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -536,7 +454,6 @@ ...@@ -536,7 +454,6 @@
</blockquote> </blockquote>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -557,8 +474,8 @@ ...@@ -557,8 +474,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../requiredSoftware/" rel="prev"/> <link href="../requiredSoftware/" rel="prev"/>
<link href="../userInterface/" rel="next"/> <link href="../userInterface/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Erster Start - CityDoctor2</title> <title>Erster Start - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,46 +153,36 @@ ...@@ -153,46 +153,36 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Erster Start
Erster Start <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -201,251 +191,185 @@ ...@@ -201,251 +191,185 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#start"> <a class="md-nav__link" href="#start">
<span class="md-ellipsis"> Start
Start </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -472,10 +396,8 @@ ...@@ -472,10 +396,8 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#start"> <a class="md-nav__link" href="#start">
<span class="md-ellipsis"> Start
Start </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -503,7 +425,6 @@ ...@@ -503,7 +425,6 @@
</div> </div>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -524,8 +445,8 @@ ...@@ -524,8 +445,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../schemaRequirements/" rel="prev"/> <link href="../schemaRequirements/" rel="prev"/>
<link href="../semantic/" rel="next"/> <link href="../semantic/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Geometrische Anforderungen - CityDoctor2</title> <title>Geometrische Anforderungen - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,116 +153,88 @@ ...@@ -153,116 +153,88 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="true" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -270,231 +242,169 @@ ...@@ -270,231 +242,169 @@
</label> </label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#fehlercodes-for-geometrische-fehler"> <a class="md-nav__link" href="#fehlercodes-fur-geometrische-fehler">
<span class="md-ellipsis"> Fehlercodes für geometrische Fehler
Fehlercodes for geometrische Fehler </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#vertex-punkt-anforderungen"> <a class="md-nav__link" href="#vertex-punkt-anforderungen">
<span class="md-ellipsis"> Vertex (Punkt) Anforderungen
Vertex (Punkt) Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#linear-ring"> <a class="md-nav__link" href="#linear-ring">
<span class="md-ellipsis"> Linear Ring
Linear Ring </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#polygon"> <a class="md-nav__link" href="#polygon">
<span class="md-ellipsis"> Polygon
Polygon </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#solid-hulle-shell"> <a class="md-nav__link" href="#solid-hulle-shell">
<span class="md-ellipsis"> Solid / Hülle (Shell)
Solid / Hülle (Shell) </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#parameter-uberblick"> <a class="md-nav__link" href="#parameter-uberblick">
<span class="md-ellipsis"> Parameter Überblick
Parameter Überblick </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#abhangigkeitsbaum"> <a class="md-nav__link" href="#abhangigkeitsbaum">
<span class="md-ellipsis"> Abhängigkeitsbaum
Abhängigkeitsbaum </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#multisurface-und-solid-geometrie"> <a class="md-nav__link" href="#multisurface-und-solid-geometrie">
<span class="md-ellipsis"> Multisurface und Solid Geometrie
Multisurface und Solid Geometrie </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -520,60 +430,44 @@ ...@@ -520,60 +430,44 @@
</label> </label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#fehlercodes-for-geometrische-fehler"> <a class="md-nav__link" href="#fehlercodes-fur-geometrische-fehler">
<span class="md-ellipsis"> Fehlercodes für geometrische Fehler
Fehlercodes for geometrische Fehler </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#vertex-punkt-anforderungen"> <a class="md-nav__link" href="#vertex-punkt-anforderungen">
<span class="md-ellipsis"> Vertex (Punkt) Anforderungen
Vertex (Punkt) Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#linear-ring"> <a class="md-nav__link" href="#linear-ring">
<span class="md-ellipsis"> Linear Ring
Linear Ring </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#polygon"> <a class="md-nav__link" href="#polygon">
<span class="md-ellipsis"> Polygon
Polygon </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#solid-hulle-shell"> <a class="md-nav__link" href="#solid-hulle-shell">
<span class="md-ellipsis"> Solid / Hülle (Shell)
Solid / Hülle (Shell) </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#parameter-uberblick"> <a class="md-nav__link" href="#parameter-uberblick">
<span class="md-ellipsis"> Parameter Überblick
Parameter Überblick </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#abhangigkeitsbaum"> <a class="md-nav__link" href="#abhangigkeitsbaum">
<span class="md-ellipsis"> Abhängigkeitsbaum
Abhängigkeitsbaum </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#multisurface-und-solid-geometrie"> <a class="md-nav__link" href="#multisurface-und-solid-geometrie">
<span class="md-ellipsis"> Multisurface und Solid Geometrie
Multisurface und Solid Geometrie </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -583,7 +477,7 @@ ...@@ -583,7 +477,7 @@
<div class="md-content" data-md-component="content"> <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset"> <article class="md-content__inner md-typeset">
<h1 id="geometrieanforderungen">Geometrieanforderungen<a class="headerlink" href="#geometrieanforderungen" title="Permanent link">#</a></h1> <h1 id="geometrieanforderungen">Geometrieanforderungen<a class="headerlink" href="#geometrieanforderungen" title="Permanent link">#</a></h1>
<h2 id="fehlercodes-for-geometrische-fehler">Fehlercodes for geometrische Fehler<a class="headerlink" href="#fehlercodes-for-geometrische-fehler" title="Permanent link">#</a></h2> <h2 id="fehlercodes-fur-geometrische-fehler">Fehlercodes für geometrische Fehler<a class="headerlink" href="#fehlercodes-fur-geometrische-fehler" title="Permanent link">#</a></h2>
<p>Die Fehlercodes wurden übernommen aus dem <a href="http://mail.opengeospatial.org/lists/lt.php?id=fR4CDVYeAlJfHwhTCwA">CityGML Quality Interoperability Experiment, chapter 7.5</a>.</p> <p>Die Fehlercodes wurden übernommen aus dem <a href="http://mail.opengeospatial.org/lists/lt.php?id=fR4CDVYeAlJfHwhTCwA">CityGML Quality Interoperability Experiment, chapter 7.5</a>.</p>
<div class="admonition note"> <div class="admonition note">
<p class="admonition-title">Note</p> <p class="admonition-title">Note</p>
...@@ -626,8 +520,8 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn ...@@ -626,8 +520,8 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn
<tr> <tr>
<td><a href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">R_GE_R_CONSECUTIVE_POINTS_SAME</a></td> <td><a href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">R_GE_R_CONSECUTIVE_POINTS_SAME</a></td>
<td>2 aufeinanderfolgende Punkte sind gleich</td> <td>2 aufeinanderfolgende Punkte sind gleich</td>
<td>GE_R_CONCECUTIVE_POINTS_SAME</td> <td>GE_R_CONSECUTIVE_POINTS_SAME</td>
<td>C_GE_R_CONCECUTIVE_POINTS_SAME, C_GE_R_DUPLICATE_POINT</td> <td>C_GE_R_CONSECUTIVE_POINTS_SAME, C_GE_R_DUPLICATE_POINT</td>
</tr> </tr>
<tr> <tr>
<td><a href="../R_GE_R_NOT_CLOSED/">R_GE_R_NOT_CLOSED</a></td> <td><a href="../R_GE_R_NOT_CLOSED/">R_GE_R_NOT_CLOSED</a></td>
...@@ -863,7 +757,7 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn ...@@ -863,7 +757,7 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn
S0006--&gt;S0008; S0006--&gt;S0008;
</div> </div>
<h2 id="multisurface-und-solid-geometrie">Multisurface und Solid Geometrie<a class="headerlink" href="#multisurface-und-solid-geometrie" title="Permanent link">#</a></h2> <h2 id="multisurface-und-solid-geometrie">Multisurface und Solid Geometrie<a class="headerlink" href="#multisurface-und-solid-geometrie" title="Permanent link">#</a></h2>
<p>Um die Definition eines Validierungsplans zu vereinfachen werden zwei neue Anfoderungen zusätzlich eingeführt. Diese Anforderungen dienen lediglich zur Gruppierung von den vorhandenen Anforderungen und benötigen keine zusätzlichen Prüfungen.</p> <p>Um die Definition eines Validierungsplans zu vereinfachen werden zwei neue Anforderungen zusätzlich eingeführt. Diese Anforderungen dienen lediglich zur Gruppierung von den vorhandenen Anforderungen und benötigen keine zusätzlichen Prüfungen.</p>
<table> <table>
<thead> <thead>
<tr> <tr>
...@@ -893,7 +787,6 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn ...@@ -893,7 +787,6 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn
</table> </table>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -914,8 +807,8 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn ...@@ -914,8 +807,8 @@ Jeder Fehler kann (und sollte) zusätzliche Informationen beinhalten (z.B. Wenn
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
<script>mermaid.initialize({});</script></body> <script>mermaid.initialize({});</script></body>
</html> </html>
\ No newline at end of file
...@@ -8,17 +8,18 @@ ...@@ -8,17 +8,18 @@
<link href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/" rel="canonical"/> <link href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/" rel="canonical"/>
<link href="requiredSoftware/" rel="next"/> <link href="requiredSoftware/" rel="next"/>
<link href="img/citydoctor_logo.png" rel="icon"/> <link href="img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Über CityDoctor2 - CityDoctor2</title> <title>Über CityDoctor2 - CityDoctor2</title>
<link href="assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -29,13 +30,13 @@ ...@@ -29,13 +30,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href="." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href="." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -54,39 +55,38 @@ ...@@ -54,39 +55,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="None" hreflang="de"> <a class="md-select__link" href="." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -94,17 +94,17 @@ ...@@ -94,17 +94,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -136,14 +136,14 @@ ...@@ -136,14 +136,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href="." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href="." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -152,278 +152,206 @@ ...@@ -152,278 +152,206 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="."> <a class="md-nav__link md-nav__link--active" href=".">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="requiredSoftware/"> <a class="md-nav__link" href="requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="firstRun/"> <a class="md-nav__link" href="firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="userInterface/"> <a class="md-nav__link" href="userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="zipFiles/"> <a class="md-nav__link" href="zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="validationPlan/"> <a class="md-nav__link" href="validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="qual_ade/"> <a class="md-nav__link" href="qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="basic/"> <a class="md-nav__link" href="basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="requirements/"> <a class="md-nav__link" href="requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="schemaRequirements/"> <a class="md-nav__link" href="schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="geometric/"> <a class="md-nav__link" href="geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="semantic/"> <a class="md-nav__link" href="semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_MS/"> <a class="md-nav__link" href="R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="R_GE_SO/"> <a class="md-nav__link" href="R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -472,7 +400,6 @@ Momentan wird CityDoctor im Rahmen des Projekts <a href="https://transfer.hft-st ...@@ -472,7 +400,6 @@ Momentan wird CityDoctor im Rahmen des Projekts <a href="https://transfer.hft-st
</ul> </ul>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -493,8 +420,8 @@ Momentan wird CityDoctor im Rahmen des Projekts <a href="https://transfer.hft-st ...@@ -493,8 +420,8 @@ Momentan wird CityDoctor im Rahmen des Projekts <a href="https://transfer.hft-st
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": ".", "features": ["content.code.annotate", "navigation.sections"], "search": "assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": ".", "features": ["content.code.annotate", "navigation.sections"], "search": "assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="assets/javascripts/bundle.56dfad97.min.js"></script> <script src="assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../validationPlan/" rel="prev"/> <link href="../validationPlan/" rel="prev"/>
<link href="../basic/" rel="next"/> <link href="../basic/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Quality-ADE - CityDoctor2</title> <title>Quality-ADE - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,278 +153,206 @@ ...@@ -153,278 +153,206 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -454,7 +382,6 @@ ...@@ -454,7 +382,6 @@
<p>CityDoctor benutzt die <a href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/qualityade">Quality-ADE</a></p> <p>CityDoctor benutzt die <a href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/qualityade">Quality-ADE</a></p>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -475,8 +402,8 @@ ...@@ -475,8 +402,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href=".." rel="prev"/> <link href=".." rel="prev"/>
<link href="../firstRun/" rel="next"/> <link href="../firstRun/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Installation - CityDoctor2</title> <title>Installation - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,39 +153,31 @@ ...@@ -153,39 +153,31 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Installation
Installation <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -194,36 +186,28 @@ ...@@ -194,36 +186,28 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#versionen-ab-3130"> <a class="md-nav__link" href="#versionen-ab-3130">
<span class="md-ellipsis"> Versionen ab 3.13.0
Versionen ab 3.13.0 </a>
</span>
</a>
<nav aria-label="Versionen ab 3.13.0" class="md-nav"> <nav aria-label="Versionen ab 3.13.0" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#releaseversionen"> <a class="md-nav__link" href="#releaseversionen">
<span class="md-ellipsis"> Releaseversionen
Releaseversionen </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#versionen-bis-312x"> <a class="md-nav__link" href="#versionen-bis-312x">
<span class="md-ellipsis"> Versionen bis 3.12.x
Versionen bis 3.12.x </a>
</span>
</a>
<nav aria-label="Versionen bis 3.12.x" class="md-nav"> <nav aria-label="Versionen bis 3.12.x" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#java"> <a class="md-nav__link" href="#java">
<span class="md-ellipsis"> Java
Java </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -233,248 +217,182 @@ ...@@ -233,248 +217,182 @@
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -501,36 +419,28 @@ ...@@ -501,36 +419,28 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#versionen-ab-3130"> <a class="md-nav__link" href="#versionen-ab-3130">
<span class="md-ellipsis"> Versionen ab 3.13.0
Versionen ab 3.13.0 </a>
</span>
</a>
<nav aria-label="Versionen ab 3.13.0" class="md-nav"> <nav aria-label="Versionen ab 3.13.0" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#releaseversionen"> <a class="md-nav__link" href="#releaseversionen">
<span class="md-ellipsis"> Releaseversionen
Releaseversionen </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#versionen-bis-312x"> <a class="md-nav__link" href="#versionen-bis-312x">
<span class="md-ellipsis"> Versionen bis 3.12.x
Versionen bis 3.12.x </a>
</span>
</a>
<nav aria-label="Versionen bis 3.12.x" class="md-nav"> <nav aria-label="Versionen bis 3.12.x" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#java"> <a class="md-nav__link" href="#java">
<span class="md-ellipsis"> Java
Java </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -603,7 +513,6 @@ Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mit ...@@ -603,7 +513,6 @@ Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mit
</div> </div>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -624,8 +533,8 @@ Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mit ...@@ -624,8 +533,8 @@ Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mit
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../basic/" rel="prev"/> <link href="../basic/" rel="prev"/>
<link href="../schemaRequirements/" rel="next"/> <link href="../schemaRequirements/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Übersicht - CityDoctor2</title> <title>Übersicht - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,278 +153,206 @@ ...@@ -153,278 +153,206 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="true" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -461,7 +389,6 @@ ...@@ -461,7 +389,6 @@
</ul> </ul>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -482,8 +409,8 @@ ...@@ -482,8 +409,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../requirements/" rel="prev"/> <link href="../requirements/" rel="prev"/>
<link href="../geometric/" rel="next"/> <link href="../geometric/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Schemaanforderungen - CityDoctor2</title> <title>Schemaanforderungen - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,109 +153,83 @@ ...@@ -153,109 +153,83 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="true" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -264,25 +238,19 @@ ...@@ -264,25 +238,19 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#r_sc_schema_validation"> <a class="md-nav__link" href="#r_sc_schema_validation">
<span class="md-ellipsis"> R_SC_SCHEMA_VALIDATION
R_SC_SCHEMA_VALIDATION </a>
</span>
</a>
<nav aria-label="R_SC_SCHEMA_VALIDATION" class="md-nav"> <nav aria-label="R_SC_SCHEMA_VALIDATION" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#anforderung"> <a class="md-nav__link" href="#anforderung">
<span class="md-ellipsis"> Anforderung
Anforderung </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#prufung"> <a class="md-nav__link" href="#prufung">
<span class="md-ellipsis"> Prüfung
Prüfung </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -292,178 +260,130 @@ ...@@ -292,178 +260,130 @@
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../semantic/"> <a class="md-nav__link" href="../semantic/">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -490,25 +410,19 @@ ...@@ -490,25 +410,19 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#r_sc_schema_validation"> <a class="md-nav__link" href="#r_sc_schema_validation">
<span class="md-ellipsis"> R_SC_SCHEMA_VALIDATION
R_SC_SCHEMA_VALIDATION </a>
</span>
</a>
<nav aria-label="R_SC_SCHEMA_VALIDATION" class="md-nav"> <nav aria-label="R_SC_SCHEMA_VALIDATION" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#anforderung"> <a class="md-nav__link" href="#anforderung">
<span class="md-ellipsis"> Anforderung
Anforderung </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#prufung"> <a class="md-nav__link" href="#prufung">
<span class="md-ellipsis"> Prüfung
Prüfung </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -570,7 +484,6 @@ ...@@ -570,7 +484,6 @@
</table> </table>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -591,8 +504,8 @@ ...@@ -591,8 +504,8 @@
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
{"config":{"lang":["de"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"CityDoctor","text":"<p>Software zur Pr\u00fcfung und automatisierten Reparatur virtueller Stadtmodelle </p> <p>CityDoctor2 ist eine Qualit\u00e4tspr\u00fcfungssoftware f\u00fcr 3D Stadtmodelle im CityGML format. CityDoctor kann CityGML 1/2 Dokumente einlesen und seit Version 3.12 kann auch eingeschr\u00e4nkt CityGML 3 gelesen werden. Alle Pr\u00fcfergebnisse k\u00f6nnen in xml oder pdf Form ausgegeben werden. Zus\u00e4tzlich implementiert CityDoctor die QualityADE um Pr\u00fcfergebnisse direkt in CityGML zu speichern.</p> <p></p>"},{"location":"#lizenzen-versionen","title":"Lizenzen / Versionen","text":""},{"location":"#citydoctorvalidation","title":"CityDoctorValidation","text":"<p>Der Validierungsteil von CityDoctor ist frei verf\u00fcgbar und OpenSource</p>"},{"location":"#citydoctorgui","title":"CityDoctorGUI","text":"<p>Die grafische Oberfl\u00e4che ist frei verf\u00fcgbar und OpenSource</p>"},{"location":"#citydoctorhealer","title":"CityDoctorHealer","text":"<p>Der Teil zust\u00e4ndig f\u00fcr die Reparatur frei verf\u00fcgbar und OpenSource Die Reparatur funktioniert nur prototypisch und hat keine Garantie, dass jeder Fehler behoben werden kann oder es \u00fcberhaupt eine Verbesserung gibt.</p> <p>Bei Fragen Mail an: </p>"},{"location":"#projekte","title":"Projekte","text":"<p>CityDoctor wurde in mehreren Projekten entwickelt. Momentan wird CityDoctor im Rahmen des Projekts UDigitDoctor entwickelt.</p> <p>Vergangenes Projekt:</p> <ul> <li>CityDoctor2</li> </ul>"},{"location":"R_GE_MS/","title":"R_GE_MS","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_MS_0001</p>"},{"location":"R_GE_P_HOLE_OUTSIDE/","title":"R_GE_P_HOLE_OUTSIDE","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0004</p>"},{"location":"R_GE_P_INNER_RINGS_NESTED/","title":"R_GE_P_INNER_RINGS_NESTED","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0005</p>"},{"location":"R_GE_P_INTERIOR_DISCONNECTED/","title":"R_GE_P_INTERIOR_DISCONNECTED","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0003 </p>"},{"location":"R_GE_P_INTERSECTING_RINGS/","title":"R_GE_P_INTERSECTING_RINGS","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0001</p>"},{"location":"R_GE_P_NON_PLANAR/","title":"R_GE_P_NON_PLANAR","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0002 </p>"},{"location":"R_GE_P_ORIENTATION_RINGS_SAME/","title":"R_GE_P_ORIENTATION_RINGS_SAME","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_PO_0006 </p>"},{"location":"R_GE_R_COLLAPSED_TO_LINE/","title":"R_GE_R_COLLAPSED_TO_LINE","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_LR_0005</p>"},{"location":"R_GE_R_CONSECUTIVE_POINTS_SAME/","title":"R_GE_R_CONSECUTIVE_POINTS_SAME","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_LR_0002</p>"},{"location":"R_GE_R_NOT_CLOSED/","title":"R_GE_R_NOT_CLOSED","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_LR_0003</p>"},{"location":"R_GE_R_SELF_INTERSECTION/","title":"R_GE_R_SELF_INTERSECTION","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_LR_0004</p>"},{"location":"R_GE_R_TOO_FEW_POINTS/","title":"R_GE_R_TOO_FEW_POINTS","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_LR_0001</p>"},{"location":"R_GE_SO/","title":"R_GE_SO","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0009</p>"},{"location":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/","title":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0008</p>"},{"location":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/","title":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0005</p>"},{"location":"R_GE_S_NON_MANIFOLD_EDGE/","title":"R_GE_S_NON_MANIFOLD_EDGE","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0004</p>"},{"location":"R_GE_S_NON_MANIFOLD_VERTEX/","title":"R_GE_S_NON_MANIFOLD_VERTEX","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0003</p>"},{"location":"R_GE_S_NOT_CLOSED/","title":"R_GE_S_NOT_CLOSED","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0002</p>"},{"location":"R_GE_S_POLYGON_WRONG_ORIENTATION/","title":"R_GE_S_POLYGON_WRONG_ORIENTATION","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0007</p>"},{"location":"R_GE_S_SELF_INTERSECTION/","title":"R_GE_S_SELF_INTERSECTION","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0006</p>"},{"location":"R_GE_S_TOO_FEW_POLYGONS/","title":"R_GE_S_TOO_FEW_POLYGONS","text":"<p>siehe https://gitlab.com/volkercoors/agqual3d/-/wikis/Validierung/Anforderungen/GE_gml_SO_0001</p>"},{"location":"basic/","title":"Validierung von 3D Stadtmodellen in CityGML","text":""},{"location":"basic/#begriffe-und-definitionen","title":"Begriffe und Definitionen","text":"<p>nach CityGML Quality Interoperability Experiment, chapter 3</p> <p>Validierung</p> <p>Prozess des validierens einer CityGML Datei nach spezifizierten Anforderungen. Eine valide Datei entspricht allen Anforderungen.</p> <p>Anforderungen</p> <p>Regeln und Einschr\u00e4nkungen, die die Datenstruktur eindeutig definieren. Anforderungen k\u00f6nnen von dem CityGML Standard Dokument abgleitet werden oder gesondert, als Anforderung an den CityGML Standard, definiert werden um Mehrdeutigkeiten des Standards zu verhindern oder zus\u00e4tzliche nutzerabh\u00e4ngige Anforderungen zu definieren.</p> <p>Pr\u00fcfung</p> <p>Algorithmische Implementation um eine Anforderung innerhalb eines Validerungsprogramms zu pr\u00fcfen.</p> <p>Fehler</p> <p>Ergebnis einer Pr\u00fcfung im Falle einer Nichtkonformit\u00e4t von Anforderungen.</p> <p>Validierungsplan</p> <p>Strukturierte Liste von Anforderungen, \u00fcberlicherweise angepasst an den konkreten Fall.</p>"},{"location":"basic/#zusatzliche-defintionen","title":"Zus\u00e4tzliche Defintionen:","text":"<p>XSD valide</p> <p>Eine CityGML Datei XSD valide wenn sie dem CityGML XML Schema entspricht.</p>"},{"location":"firstRun/","title":"Erster Start","text":""},{"location":"firstRun/#start","title":"Start","text":"<p>Nach dem entpacken der Zip Datei sollte je nach Version (GUI oder Batch) eine Struktur \u00e4hnlich diesem Bild rauskommen (Beispiel CityDoctorGUI): </p> <p>Um CityDoctor zu starten kann die start.bat verwendet werden.</p> <p>Die .bat Datei enth\u00e4lt dabei nur den Befehl:</p> <pre><code>java -classpath app/*;plugins/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter\n</code></pre> <p>Note</p> <p>Der Befehl hat sich \u00fcber die Versionshistorie von CityDoctor ver\u00e4ndert.</p> <p>F\u00fcr die Batch Version ist der Befehl analog und kann entsprechend f\u00fcr andere Betriebsysteme angepasst werden.</p> <p>Note</p> <p>F\u00fcr Linux oder Mac kann dieser Befehl auch verwendet werden, es muss nur das \";\" durch \":\" ersetzt werden. Der Rest bleibt gleich.</p>"},{"location":"geometric/","title":"Geometrieanforderungen","text":""},{"location":"geometric/#fehlercodes-for-geometrische-fehler","title":"Fehlercodes for geometrische Fehler","text":"<p>Die Fehlercodes wurden \u00fcbernommen aus dem CityGML Quality Interoperability Experiment, chapter 7.5.</p> <p>Note</p> <p>Die Anforderungen wurden in CityDoctor umbenannt um einen auch von Menschen zu verstehenden Begriff, analog zu den Fehlercodes, darzustellen.</p> <p>Alle geometrischen Fehler sind in dem \"GE\" Definitionsbereich. Da geometrische Validierung basierend auf den Primitiven auf drei verschiedenen Ebenen ausgef\u00fchrt wird enth\u00e4lt jede Anforderung eine Ebene:</p> <ul> <li>Ring: R</li> <li>Polygon: P</li> <li>H\u00fclle (Shell): S</li> </ul> <p>Fehlercodes folgen dem selben Namensschema wie die Anforderungen, siehe auch Grundbegriffe. Jede Verletzung einer Anforderung muss in einem Fehler enden, der einen entsprechenden Fehlercode beinhaltet. Jeder Fehler kann (und sollte) zus\u00e4tzliche Informationen beinhalten (z.B. Wenn ein Ring nicht geschlossen ist, dann sollte die ID des Rings mitgegeben werden).</p>"},{"location":"geometric/#vertex-punkt-anforderungen","title":"Vertex (Punkt) Anforderungen","text":"<p>Zwei Punkte A und B sind gleich wenn die Euclidische-Distanz zwischen den beiden Punkten kleiner als eine definierte Gr\u00f6\u00dfe ist (minVertexDistance). Diese definierte Gr\u00f6\u00dfe findet auch in vielen Anforderungen wieder Anwendung, zum Beispiel ber\u00fchrt ein Punkt eine Kante wenn der Abstand des Punktes kleiner ist als minVertexDistance. In den folgenden Anforderungen wird die Gr\u00f6\u00dfe verwendet:</p> <ul> <li>R_GE_R_CONSECUTIVE_POINTS_SAME</li> <li>R_GE_R_NOT_CLOSED</li> <li>R_GE_R_SELF_INTERSECTION</li> <li>R_GE_P_INTERIOR_DISCONNECTED</li> </ul> <p>Die folgenden Anforderungen wurden auf den drei geometrischen Ebenen definiert (nach Ledoux (2013)):</p>"},{"location":"geometric/#linear-ring","title":"Linear Ring","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_R_TOO_FEW_POINTS Zu wenig Punkte in einem Ring GE_R_TOO_FEW_POINTS C_GE_R_TOO_FEW_POINTS R_GE_R_CONSECUTIVE_POINTS_SAME 2 aufeinanderfolgende Punkte sind gleich GE_R_CONCECUTIVE_POINTS_SAME C_GE_R_CONCECUTIVE_POINTS_SAME, C_GE_R_DUPLICATE_POINT R_GE_R_NOT_CLOSED Der erste und letzte Punkt sind nicht gleich GE_R_NOT_CLOSED C_GE_R_NOT_CLOSED R_GE_R_SELF_INTERSECTION Selbstverschneidung z.B. eine Schleife GE_R_SELF_INTERSECTION C_GE_R_SELF_INTERSECTION, C_GE_R_DUPLICATE_POINT R_GE_R_COLLAPSED_TO_LINE Momentan nicht in Benutzung, da redundant mit R_GE_R_SELF_INTERSECTION Ring ist ein Punkt oder eine Linie GE_R_COLLAPSED_TO_LINE C_GE_R_COLLAPSED_TO_LINE R_GE_R_ALL Container f\u00fcr: R_GE_R_TOO_FEW_POINTS, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED, R_GE_R_SELF_INTERSECTION -- --"},{"location":"geometric/#polygon","title":"Polygon","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_P_INTERSECTING_RINGS 2+ Ringe schneiden sich GE_P_INTERSECTING_RINGS C_GE_P_INTERSECTING_RINGS R_GE_P_NON_PLANAR Nicht planares Polygon, sowohl Distanz als auch Fl\u00e4chennormale Abweichungen GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION C_GE_P_NON_PLANAR R_GE_P_INTERIOR_DISCONNECTED Innenfl\u00e4che ist nicht verbunden GE_P_INTERIOR_DISCONNECTED C_GE_P_INTERIOR_DISCONNECTED R_GE_P_HOLE_OUTSIDE 1+ inneren Ringe ist komplett au\u00dferhalb des Polygons GE_P_HOLE_OUTSIDE C_GE_P_HOLE_OUTSIDE R_GE_P_INNER_RINGS_NESTED Innerer Ring ist komplett innerhalb eines anderen inneren Rings GE_P_INNER_RINGS_NESTED C_GE_P_INNER_RINGS_NESTED R_GE_P_ORIENTATION_RINGS_SAME \u00c4u\u00dferer Ring und innerer Ring haben die selbe Orientation GE_P_ORIENTATION_RINGS_SAME C_GE_P_ORIENTATION_RINGS_SAME R_GE_P_ALL Container f\u00fcr: R_GE_P_INTERSECTING_RINGS, R_GE_P_NON_PLANAR, R_GE_P_INTERIOR_DISCONNECTED, R_GE_P_HOLE_OUTSIDE, R_GE_P_INNER_RINGS_NESTED, R_GE_P_ORIENTATION_RINGS_SAME, R_GE_R_ALL -- --"},{"location":"geometric/#solid-hulle-shell","title":"Solid / H\u00fclle (Shell)","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_S_TOO_FEW_POLYGONS &lt;4 Polygone GE_S_TOO_FEW_POLYGONS C_GE_S_TOO_FEW_POLYGONS R_GE_S_NOT_CLOSED Die H\u00fclle ist nicht wasserdicht / hat 1+ L\u00f6cher GE_S_NOT_CLOSED C_GE_S_NOT_CLOSED R_GE_S_NON_MANIFOLD_VERTEX Jedes Polygon, das an einem Punkt anliegt muss \u00fcber Kanten mit den Anderen verbunden sein GE_S_NON_MANIFOLD_VERTEX C_GE_S_NON_MANIFOLD_VERTEX R_GE_S_NON_MANIFOLD_EDGE An jeder Kante d\u00fcrfen nur 2 Polygon anliegen GE_S_NON_MANIFOLD_EDGE C_GE_S_NON_MANIFOLD_EDGE R_GE_S_MULTIPLE_CONNECTED_COMPONENTS Alle Polygone m\u00fcssen \u00fcber Punkte und Kanten verbunden sein GE_S_MULTIPLE_CONNECTED_COMPONENTS C_GE_S_MULTIPLE_CONNECTED_COMPONENTS R_GE_S_SELF_INTERSECTION Die H\u00fclle selbstverschneidet sich GE_S_SELF_INTERSECTION C_GE_S_SELF_INTERSECTION R_GE_S_POLYGON_WRONG_ORIENTATION Die Orientierung eines Polygons ist falsch GE_S_POLYGON_WRONG_ORIENTATION C_GE_S_POLYGON_WRONG_ORIENTATION R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION Alle Polygone zeigen in die falsche Richtung GE_S_ALL_POLYGONS_WRONG_ORIENTATION C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION R_GE_S_ALL Container f\u00fcr: R_GE_S_TOO_FEW_POLYGONS, R_GE_S_NOT_CLOSED, R_GE_S_NON_MANIFOLD_VERTEX, R_GE_S_NON_MANIFOLD_EDGE, R_GE_S_MULTIPLE_CONNECTED_COMPONENTS, R_GE_S_SELF_INTERSECTION, R_GE_S_POLYGON_WRONG_ORIENTATION, R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION -- --"},{"location":"geometric/#parameter-uberblick","title":"Parameter \u00dcberblick","text":"Name Beschreibung Verwendet in Einheit minVertexDistance Minimale Abstand zwischen zwei Punkten bevor sie als der selbe Punkt angesehen werden R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED, R_GE_R_SELF_INTERSECTION, R_GE_P_INTERIOR_DISCONNECTED Meter type Planarit\u00e4tspr\u00fcfungsart, kann distance, angle, both sein R_GE_P_NON_PLANAR - distanceTolerance Maximale Distanz eines Punktes von der Ausgleichsebene eines Polygons bevor es als Fehler angesehen wird R_GE_P_NON_PLANAR Meter angleTolerance Maximale Differenz im Winkel von angrenzenden Dreiecken einer Triangulierung bevor ein Polygon nicht mehr als Planar angesehen wird R_GE_P_NON_PLANAR Radiant"},{"location":"geometric/#abhangigkeitsbaum","title":"Abh\u00e4ngigkeitsbaum","text":"<p>Dies ist die Reihenfolge in der die Pr\u00fcfungen ausgef\u00fchrt werden. Wenn eine abh\u00e4ngige Pr\u00fcfung einen Fehler geworfen hat oder nicht ausgef\u00fchrt wurde, so wird die darauffolgende Pr\u00fcfung auch nicht ausgef\u00fchrt.</p> <pre><code>graph TD;\n X0001[R_SC_SCHEMA_VALIDATION]\n R0001[R_GE_R_TOO_FEW_POINTS]\n R0002[R_GE_R_CONSECUTIVE_POINTS_SAME]\n R0003[R_GE_R_NOT_CLOSED]\n R0004[R_GE_R_SELF_INTERSECTION]\n P0001[R_GE_P_INTERSECTING_RINGS]\n P0002[R_GE_P_NON_PLANAR]\n P0003[R_GE_P_INTERIOR_DISCONNECTED]\n P0004[R_GE_P_HOLE_OUTSIDE]\n P0005[R_GE_P_INNER_RINGS_NESTED]\n P0006[R_GE_P_ORIENTATION_RINGS_SAME]\n\n S0001[R_GE_S_TOO_FEW_POLYGONS]\n S0002[R_GE_S_NOT_CLOSED]\n S0003[R_GE_S_NON_MANIFOLD_VERTEX]\n S0004[R_GE_S_NON_MANIFOLD_EDGE]\n S0005[R_GE_S_MULTIPLE_CONNECTED_COMPONENTS]\n S0006[R_GE_S_SELF_INTERSECTION]\n S0007[R_GE_S_POLYGON_WRONG_ORIENTATION]\n S0008[R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION]\n\n X0001--&gt;R0003;\n R0003--&gt;R0001;\n R0001--&gt;R0002;\n R0002--&gt;R0004;\n R0004--&gt;P0002;\n P0002--&gt;P0006;\n P0006--&gt;P0003;\n P0006--&gt;P0004;\n P0006--&gt;P0005;\n P0004--&gt;P0001;\n P0005--&gt;P0001;\n P0001--&gt;S0001;\n P0003--&gt;S0001;\n S0001--&gt;S0002;\n S0001--&gt;S0004;\n S0001--&gt;S0003;\n S0001--&gt;S0005;\n S0002--&gt;S0007;\n S0004--&gt;S0007;\n S0007--&gt;S0006;\n S0003--&gt;S0006;\n S0005--&gt;S0006;\n S0006--&gt;S0008; \n</code></pre>"},{"location":"geometric/#multisurface-und-solid-geometrie","title":"Multisurface und Solid Geometrie","text":"<p>Um die Definition eines Validierungsplans zu vereinfachen werden zwei neue Anfoderungen zus\u00e4tzlich eingef\u00fchrt. Diese Anforderungen dienen lediglich zur Gruppierung von den vorhandenen Anforderungen und ben\u00f6tigen keine zus\u00e4tzlichen Pr\u00fcfungen.</p> Anforderungs ID Beschreibung Abh\u00e4ngigkeiten Fehlercode Bekannte Pr\u00fcfungen R_GE_MS Valide Multisurface-Geometrie R_SC-SCHEMA-VALIDATION, R_GE_P_ALL -- -- R_GE_SO Valide H\u00fcllengeometrie R_SC-SCHEMA-VALIDATION, R_GE_S_ALL -- --"},{"location":"qual_ade/","title":"Quality-ADE","text":"<p>CityDoctor benutzt die Quality-ADE</p>"},{"location":"requiredSoftware/","title":"Ben\u00f6tigte Software","text":""},{"location":"requiredSoftware/#versionen-ab-3130","title":"Versionen ab 3.13.0","text":"<p>Ab Version 3.13.0 wurde ein Repository auf dem Transferportal der Hochschule erstellt, das fortan als Ablageort f\u00fcr fertige Releases verwendet wird: https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctorreleases</p> <p>Die Versionen sind dort unterteilt zwischen CityDoctorValidation und CityDoctorGUI und unter diesen Ordnern gibt es die entsprechenden Versionsordner.</p>"},{"location":"requiredSoftware/#releaseversionen","title":"Releaseversionen","text":"<p>F\u00fcr jede CityDoctor Variante (CityDoctorValidation oder CityDoctorGUI) werden vier verschiedene Versionen zum Download bereitgestellt. Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mitgeliefert. </p> Version Beschreibung CityDoctor*-no-runtime.zip Diese Version beinhaltet keine Runtime f\u00fcr Java. Falls auf Ihrem PC schon ein Java der Version 17 installiert ist (siehe Java), dann ist diese Version zu bevorzugen. CityDoctor*-win.zip Beinhaltet eine Windows Java Runtime zum ausf\u00fchren von CityDoctor, kein Java muss installiert sein. CityDoctor*-lin.zip Beinhaltet eine Linux Java Runtime zum ausf\u00fchren von CityDoctor CityDoctor*-mac.zip Beinhaltet eine Mac Java Runtime zum ausf\u00fchren von CityDoctor"},{"location":"requiredSoftware/#versionen-bis-312x","title":"Versionen bis 3.12.x","text":"<p>CityDoctor kann von verschiedenen Seiten heruntergeladen werden. Die aktuellste Stelle ist ein gitlab Repository. Alternativ werden Releases auch auf der CityDoctor Homepage der BHT gelistet. Es gibt dabei immer zwei Versionen:</p> <ul> <li>CityDoctorGUI-3.x.x.zip: Das ist die grafische Oberfl\u00e4che inklusive der Pr\u00fcfungen. Geeignet f\u00fcr den Endnutzer auf einem Desktop PC.</li> <li>CityDoctorValidation-3.x.x.zip: Das ist die Batch-Version die f\u00fcr die Integration in Servern oder anderen bestehenden Systemen geeignet ist und hat keine grafische Oberfl\u00e4che sondern arbeitet Dateibasiert als Prozess.</li> </ul> <p>Note</p> <p>Es gibt manchmal Spezialversionen die Testweise erstellt worden sind um verschiedene Auslieferungsm\u00f6glichkeiten zu testen. Bsp: CityDoctorGUI-x.x.x-win.zip beinhaltet die JavaFX Bibliotheken sodass eine Java Umgebung ohne JavaFX auch verwendet werden kann.</p>"},{"location":"requiredSoftware/#java","title":"Java","text":"<p>Vor der CityDoctor Version 3.12.x wird Java 8 entweder als JDK oder als JRE ben\u00f6tigt. Ab der Version 3.12.x wird Java 17 ben\u00f6tigt.</p> <p>Warning</p> <p>Es wichtig, dass die installierte Java Version die JavaFX Bibliotheken mit einschlie\u00dft. Diese werden f\u00fcr die grafische Oberfl\u00e4che ben\u00f6tigt.</p> <p>Die Liberica JRE oder JDK hat sich f\u00fcr einen Einsatz mit CityDoctor bew\u00e4hrt.</p> <p>Note</p> <p>Die Liberica Distribution ist zu 100% frei und OpenSource.</p> <p>Note</p> <p>F\u00fcr die Entwicklung mit CityDoctor wird eine JDK ben\u00f6tigt.</p>"},{"location":"requirements/","title":"Anforderungen und Pr\u00fcfungen f\u00fcr die Validierung von CityGML-Modellen","text":"<p>Die Anforderungen sind die Grundbausteine f\u00fcr ein Validierungsplan um CityGML-Modelle zu validieren. F\u00fcr Namenskonventionen und Definitionen, siehe Grundbegriffe. </p> <p>Eine Anforderung kann durch einen oder mehrere Pr\u00fcfungen validiert werden. Eine Pr\u00fcfung validiert ein oder mehrere Anforderungen bei einem Modell. Jede Pr\u00fcfung kann Vorbedingungen haben. Wenn diese Vorbedingungen nicht erf\u00fcllt sind wird die Pr\u00fcfung nicht ausgef\u00fchrt.</p> <p>Unterschieden wird dabei zwischen:</p> <ul> <li>Schemaanforderungen</li> <li>Geometrieanforderungen</li> <li>Semantische Anforderungen</li> </ul>"},{"location":"schemaRequirements/","title":"Schemaanforderungen","text":""},{"location":"schemaRequirements/#r_sc_schema_validation","title":"R_SC_SCHEMA_VALIDATION","text":""},{"location":"schemaRequirements/#anforderung","title":"Anforderung","text":"ID R_SC_SCHEMA_VALIDATION Beschreibung Eine grundlengende Anforderung ist, dass jedes CityGML Dokument wohl definiert sein muss und XSD valide ist. Fehlercode SC-SCHEMA-NOT-VALID"},{"location":"schemaRequirements/#prufung","title":"Pr\u00fcfung","text":"ID SC_SCHEMA_VALIDATION Anforderungs ID R_SC_SCHEMA_VALIDATION Vorbedingungen keine Beschreibung Werkzeuge um eine XSD Validierung durchzuf\u00fchren sind verf\u00fcgbar und geben verl\u00e4ssliche Ergebnisse Fehlercode SC_SCHEMA_NOT_VALID"},{"location":"semantic/","title":"Semantische Anforderungen","text":"<p>Die semantischen Anforderungen sind meistens auf Attributbasis. Daraus ergeben sich 3 Fehlerzust\u00e4nde f\u00fcr ein Attribut:</p> <ul> <li>SE_ATTRIBUTE_WRONG_VALUE: Wenn ein Attribut ein falschen Wert hat.</li> <li>SE_ATTRIBUTE_MISSING: Wenn ein Attribut fehlt, aber vorhanden sein sollte.</li> <li>SE_ATTRIBUTE_INVALID: Wenn ein Attribut vorhanden ist aber verboten ist.</li> </ul>"},{"location":"semantic/#schematron","title":"Schematron","text":"<p>In CityDoctor wurde das XML Validierungssystem Schematron integriert um flexibel Attributpr\u00fcfungen anzupassen und zu unterst\u00fctzen. </p> <p>Hier ist ein Beispiel f\u00fcr eine Schematron Datei die CityDoctor integrieren kann:</p>"},{"location":"semantic/#citydoctor-3130","title":"CityDoctor &gt;= 3.13.0","text":"<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;schema xmlns=\"http://purl.oclc.org/dsdl/schematron\" queryBinding=\"xslt2\"&gt;\n &lt;ns prefix=\"gml\" uri=\"http://www.opengis.net/gml\"/&gt;\n &lt;ns prefix=\"bldg\" uri=\"http://www.opengis.net/citygml/building/2.0\"/&gt;\n\n &lt;pattern&gt;\n &lt;rule context=\"//*:Building\"&gt;\n &lt;assert test=\"count(descendant::*:lod1Solid) &amp;gt; 0 or count(descendant::*:lod2Solid) &amp;gt; 0 or count(descendant::*:lod3Solid) &amp;gt; 0 or count(descendant::*:lod4Solid) &amp;gt; 0\"&gt;&lt;value-of select=\"@gml:id | @id\"/&gt;||||SE_ATTRIBUTE_MISSING||any solid&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;rule context=\"//*:BuildingPart\"&gt;\n &lt;assert test=\"count(*:lod1Solid) = 1 or count(*:lod2Solid) = 1 or count(*:lod3Solid) = 1 or count(*:lod4Solid) = 1\"&gt;&lt;value-of select=\"ancestor::*:Building/@*:id\"/&gt;||&lt;value-of select=\"@gml:id | @id\"/&gt;||SE_ATTRIBUTE_MISSING||any solid&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;/pattern&gt;\n&lt;/schema&gt; \n\n</code></pre>"},{"location":"semantic/#citydoctor-3130_1","title":"CityDoctor &lt; 3.13.0","text":"<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;schema xmlns=\"http://purl.oclc.org/dsdl/schematron\" queryBinding=\"xslt2\"&gt;\n &lt;ns prefix=\"gml\" uri=\"http://www.opengis.net/gml\"/&gt;\n &lt;ns prefix=\"bldg\" uri=\"http://www.opengis.net/citygml/building/2.0\"/&gt;\n\n &lt;pattern&gt;\n &lt;rule context=\"//*:Building\"&gt;\n &lt;assert test=\"count(descendant::*:lod1Solid) &amp;gt; 0 or count(descendant::*:lod2Solid) &amp;gt; 0 or count(descendant::*:lod3Solid) &amp;gt; 0 or count(descendant::*:lod4Solid) &amp;gt; 0\"&gt;&lt;value-of select=\"@gml:id | @id\"/&gt;||||SE_ATTRIBUTE_MISSING||any solid||false&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;rule context=\"//*:BuildingPart\"&gt;\n &lt;assert test=\"count(*:lod1Solid) = 1 or count(*:lod2Solid) = 1 or count(*:lod3Solid) = 1 or count(*:lod4Solid) = 1\"&gt;&lt;value-of select=\"ancestor::*:Building/@*:id\"/&gt;||&lt;value-of select=\"@gml:id | @id\"/&gt;||SE_ATTRIBUTE_MISSING||any solid||false&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;/pattern&gt;\n&lt;/schema&gt; \n</code></pre> <p>Diese Datei pr\u00fcft, dass alle Buildings in sich selbst oder in einem ihrer Unterelementen ein Solid beliebigen LODSs vorhanden ist. Au\u00dferdem stellt die Datei sicher, dass jedes BuildingPart ein Solid enth\u00e4lt. Wenn dies nicht der Fall ist wird eine Fehlermeldung ausgegeben. Die Fehlermeldung ist dabei so formattiert, dass CityDoctor sie interpretieren und in das interne Datenmodell einbinden kann.</p>"},{"location":"semantic/#fehlerformat","title":"Fehlerformat","text":"<p>Das Fehlerformat ist ein CSV-Format mit || als Trennzeichen</p> <pre><code>parent id||child id||error code||error type||is generic attribute\n</code></pre> <p>Die Fehlermeldung besteht aus den folgenden Teilen:</p> <ul> <li>Die <code>parent id</code> ist die gml id des obersten Elements z.B. Building oder Bridge. </li> <li>Falls der Fehler in einem Unterelement aufgetreten ist so kann diese ID in dem Feld f\u00fcr die <code>child id</code> eingetragen werden.</li> <li>Im Feld <code>error type</code> ist einer der 3 Fehlertypen einzutragen: <code>SE_ATTRIBUTE_WRONG_VALUE, SE_ATTRIBUTE_MISSING, SE_ATTRIBUTE_INVALID</code>.</li> </ul> <p>note Nur in CityDoctor &lt; 3.13.0: * Um ein generisches Attribut mit dem Namen <code>measuredHeight</code> von dem nicht generischen Attribut zu unterscheiden ist im letzten Feld vorgesehen <code>true</code> einzutragen wenn es sich um ein generisches Attribut handelt ansonsten <code>false</code>. </p>"},{"location":"udt_about/","title":"UDigiT-Doctor","text":"<p>Erweiterung des CityDoctor2 f\u00fcr die Integration von urbanen digitalen Zwillingen</p> <p></p> <p>Das UDigiT-Doctor Projekt sieht eine Weiterentwicklung des CityDoctor2 vor, mit dem Ziel die Pr\u00fcfung von urbanen digitalen Zwillingen durch die Validierungs- und Reparaturfunktionen des CityDoctors zu erm\u00f6glichen.</p>"},{"location":"udt_about/#fragestellung","title":"Fragestellung","text":"<p>Zusammengefasst k\u00f6nnen f\u00fcr eine \u00dcbertragung der Qualit\u00e4tssicherung von Geb\u00e4udemodellen auf UDT folgende wissenschaftliche und technische Schwerpunkteziele abgeleitet werden:</p> <ul> <li>Entwurf einer internen Datenstruktur und Erarbeitung von Verfahren zur Erzeugung eines integrierten Gesamtmodells </li> <li>\u00dcberpr\u00fcfung der topologischen Beziehungen von Objekten sowohl zur Sicherstellung grundlegender Eigenschaften eines allgemein verwendbaren Basis-Modells als auch f\u00fcr ausgew\u00e4hlte Anwendungsszenarien (Leitungsnetze, Geb\u00e4udeanschl\u00fcsse, etc.)</li> <li>Erweiterung des Pr\u00fcf- und Reparaturprozesses durch Vergleichsmethoden unter Verwendung von Referenzmodellen</li> <li>Umfassende und konfigurierbare Semantikpr\u00fcfung</li> </ul>"},{"location":"udt_about/#lizenz","title":"Lizenz","text":"<p>UDigiT-Doctor, bzw. CityDoctor2, wird weiterhin als FOSS unter der LGPL ver\u00f6ffentlicht.</p>"},{"location":"udt_about/#releases","title":"Releases","text":"<p>Releases von UDigiT-Doctor werden \u00fcber das GitLab Repository von CityDoctor2 verf\u00fcgbar gemacht.</p>"},{"location":"udt_about/#projektdaten","title":"Projektdaten","text":"<p>Projektlaufzeit: 01.04.2024 - 01.07.2027</p> <p>Projekt Website: UDigiT-Doctor: Hochschule f\u00fcr Technik Stuttgart UDigiT-Doctor: Berliner Hochschule f\u00fcr Technik</p> <p>Projektleitung: Prof. Dr.-Ing. Volker Coors</p> <p>Verbundpartner: Prof. Dr. Margitta Pries</p>"},{"location":"udt_about/#partner","title":"Partner","text":"<p>Kooperationspartner: Robert Bosch GmbH Geoplex GIS GmbH M.O.S.S. Computer Grafik Systeme GmbH LandPlan OS GmbH Point Cloud Technology GmbH virtualcitysystems GmbH</p> <p>Assoziative Partner: Open Geospatial Consortium Stadt Stuttgart Stadt Leverkusen </p> <p>Mittelgeber: Bundesamt f\u00fcr Bildung und Forschung</p> <p>Projekttr\u00e4ger: VDI Technologiezentrum </p>"},{"location":"udt_req_overview/","title":"Anforderungen an UDigiT-Doctor","text":"<ol> <li>Entwurf einer internen Datenstruktur und Erarbeitung von Verfahren zur Erzeugung eines integrierten Gesamtmodells.</li> <li>\u00dcberpr\u00fcfung der topologischen Beziehungen von Objekten sowohl zur Sicherstellung grundlegender Eigenschaften eines allgemein verwendbaren Basis-Modells als auch f\u00fcr ausgew\u00e4hlte Anwendungszenarien (Leitungsnetze, Geb\u00e4udeanschl\u00fcsse, ...)</li> <li>Erweiterung des Pr\u00fcf- und Reperaturprozesses durch Vergleichsmethoden unter Verwendung von Referenzmodellen</li> <li>Umfassende und konfigurierbare Semantikpr\u00fcfung</li> </ol> Spezielle Anforderungen von Relevant f\u00fcr Anforderungen Nr. Datenmodell 1., 2., 3. Topologische Konsistenz 2., 3. Semantische \u00dcberpr\u00fcfung 2., 4."},{"location":"udt_terms/","title":"Validierung von urbanen digitalen Zwillingen","text":""},{"location":"udt_terms/#begriffe-und-definitionen","title":"Begriffe und Definitionen","text":"<p>Siehe auch: Begriffe und Definitionen von CityDoctor2</p> <p>Urbaner digitaler Zwilling</p> <p>Ein urbaner digitaler Zwilling ist ein repr\u00e4sentatives, virtuelles Modell eines realen Geb\u00e4udes. Digitale Zwillinge dienen, unter anderem, der Simulation von verschiedenen Prozessen, als auch als zentraler Sammelpunkt f\u00fcr Daten und Informationen. Dies schlie\u00dft bei urbanen digitalen Zwillingen auch Daten von installierten Sensoren und Geb\u00e4udeleittechniksystemen ein.</p>"},{"location":"userInterface/","title":"Nutzeroberfl\u00e4che","text":""},{"location":"userInterface/#citydoctor","title":"CityDoctor","text":"<p>In der oberen Leiste sind folgende Schaltfl\u00e4chen in Reihenfolge:</p> <ul> <li>Laden: \u00d6ffnet den Dialog zum laden einer CityGML Datei</li> <li>Pr\u00fcfen: \u00d6ffnet den Dialog zum pr\u00fcfen einer geladenen CityGML</li> <li>Pr\u00fcfberichte: \u00d6ffnet den Dialog zum schreiben eines Pr\u00fcfprotokolls in xml oder pdf Form</li> <li>Gitternetz: Zeigt/Versteckt das Gitternetz anstatt gef\u00fcllter Polygone</li> <li>R\u00fcckseiten: Zeigt/Versteckt R\u00fcckseiten von Polygonen</li> <li>Globale Ansicht: L\u00e4dt alle Elemente einer CityGML in die Ansicht</li> <li>LODs: Schaltet einzelne LODs von der Ansicht an oder aus</li> <li>Speichern: Speichert eine CityGML Datei zur\u00fcck, falls die Datei gepr\u00fcft wurde wird die QualityADE mitgeschrieben.</li> <li>About: \u00d6ffnet den Dialog mit Informationen zu dem Projekt CityDoctor2</li> <li>Ansichten: Wechselt verschiedene Ansichten. F\u00fcr die Pr\u00fcfung gibt es nur eine.</li> <li>Sprache: Hier kann die Sprache eingestellt werden (Deutsch/Englisch)</li> </ul> <p>Warning</p> <p>Das Anzeigen der Globalen Ansicht kann bei gro\u00dfen CityGML Dateien (&gt; 100mb je nach System) zu abst\u00fcrzen f\u00fchren. Das Anzeigen kann kurz dauern.</p>"},{"location":"userInterface/#laden","title":"Laden","text":"<p>\u00dcber die Schaltfl\u00e4che Laden wird der Dialog zum laden einer CityGML Datei ge\u00f6ffnet.</p> <p></p> <p>In der Datei Leiste kann ein Dateipfad eingetragen werden oder \u00fcber die Schaltfl\u00e4che Ausw\u00e4hlen ausgew\u00e4hlt werden.</p> <p>Au\u00dferdem k\u00f6nnen weitere Einstellungen f\u00fcr das Lesen der Datei angegeben werden.</p> <ul> <li>NumberOfRoundingPlaces: Auf wie viele Nachkommastellen werden die eingelesenen Werte gerundet.</li> <li>XML-Validierung: F\u00fchrt eine XML Validierung durch. Fehler werden dabei direkt beim einlesen festgestellt und das Einlesen wird abgebrochen.</li> <li>Speicherverbrauch: Spart RAM um gr\u00f6\u00dfere Dateien in der GUI zu erm\u00f6glichen. Kostet geringf\u00fcgig Performance bei der Pr\u00fcfung.</li> </ul> <p>Beim Laden wird der Fortschritt ungef\u00e4hr durch den Ladebalken repr\u00e4sentiert.</p> <p>Note</p> <p>Dateien k\u00f6nnen auch direkt per Drag and Drop vom Dateimanager in die GUI gezogen werden ohne den Laden Dialog zu verwenden. Dabei werden die Default Werte angenommen (8 Nachkommastellen, keine XML-Validierung)</p> <p>Nach dem Laden einer CityGML Datei werden die Elemente in den einzelnen Tabs angezeigt. Durch ausw\u00e4hlen eines Elements wird das in der Ansicht angezeigt.</p> <p></p> <p>Note</p> <p>Durch Ausw\u00e4hlen des obersten Elements eines Reiters werden alle Elemente innerhalb diese Reiters angezeigt. Wie obige Warnung schon besagt, gilt auch hier, dass gr\u00f6\u00dfere Datenmengen zu Abst\u00fcrzen f\u00fchren.</p>"},{"location":"userInterface/#prufen","title":"Pr\u00fcfen","text":"<p>Im Pr\u00fcfdialog kann der Validierungsplan angepasst werden. Hier werden neben den Verf\u00fcgbaren Pr\u00fcfungen auch die globalen Parameter angezeigt.</p> <p>Ver\u00e4ndert k\u00f6nnen die Parameter mit einem Doppelklick in die Wert Spalte. Die Einheit ist dabei fest.</p> <p>Note</p> <p>Der Parameter numberOfRoundingPlaces kann nicht ver\u00e4ndert werden. Er wurde beim Laden der Datei festgelegt.</p> <p>Falls Pr\u00fcfungen nicht ausgef\u00fchrt werden sollen k\u00f6nnen sie in der Spalte Aktiv deaktiviert werden.</p> <p>Warning</p> <p>Wenn Pr\u00fcfungen deaktiviert wurden die andere aktiven Pr\u00fcfungen aber als Abh\u00e4ngigkeit ben\u00f6tigen werden sie bei der Pr\u00fcfung wieder aktiviert um die Stabilit\u00e4t zu gew\u00e4hrleisten. Siehe Anforderungen.</p> <p>In dem Feld Schematron Datei kann ein Pfad zu einer Schematron Datei eingetragen werden. In dieser Datei k\u00f6nnen flexible Regeln f\u00fcr die semantischen Anforderungen festgelegt werden. Siehe Semantische Pr\u00fcfungen</p> <p>\u00dcber die beiden Schaltfl\u00e4chen oben rechts kann der Pr\u00fcfplan gespeichert und geladen werden.</p> <p>Nach der Pr\u00fcfung werden fehlerhafte Elemente rot und fehlerfreie Elemente gr\u00fcn eingef\u00e4rbt. Bei der Auswahl eines Elements das fehler beinhaltet werden die Fehler in dem unteren Tab Fehler angezeigt. Dort kann der Fehler ausgew\u00e4hlt werden um ihn in CityDoctor anzuzeigen und weitere Informationen zu erhalten.</p> <p></p> <p>Die Elemente k\u00f6nnen mit dem Dropdown-Men\u00fc gefiltert werden um nur fehlerhafte Elemente anzuzeigen.</p>"},{"location":"userInterface/#prufberichte","title":"Pr\u00fcfberichte","text":"<p>In diesem Dialog gibt es nochmal eine \u00dcbersicht \u00fcber die Fehler in Bildform und die M\u00f6glichkeit einen xml oder pdf Bericht zu schreiben.</p> <p></p>"},{"location":"validationPlan/","title":"Validierungsplan","text":"<p>der Validierungsplan f\u00fcr CityDoctor wird in YAML angegeben.</p> <p>F\u00fcr die Version 3.12.x und neuere sieht ein Beispiel so aus:</p> <pre><code>globalParameters:\n numberOfRoundingPlaces: 8\n # in m\n minVertexDistance: 0.0001\n schematronPath: 'checkForSolid.xml'\nuseStreaming: true # (1)!\nrequirements:\n R_GE_R_TOO_FEW_POINTS:\n enabled: true\n R_GE_R_NOT_CLOSED:\n enabled: true\n R_GE_R_CONSECUTIVE_POINTS_SAME:\n enabled: true\n R_GE_R_SELF_INTERSECTION:\n enabled: true\n R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:\n enabled: true\n R_GE_P_INTERIOR_DISCONNECTED:\n enabled: true\n R_GE_P_INTERSECTING_RINGS:\n enabled: true\n R_GE_P_NON_PLANAR:\n enabled: true\n parameters:\n # one of (\"distance\", \"angle\", \"both\")\n type: distance\n # in m\n distanceTolerance: 0.01\n # in degree\n angleTolerance: 1\n R_GE_P_HOLE_OUTSIDE:\n enabled: true\n R_GE_P_ORIENTATION_RINGS_SAME:\n enabled: true\n R_GE_P_INNER_RINGS_NESTED:\n enabled: true\n R_GE_S_TOO_FEW_POLYGONS:\n enabled: true\n R_GE_S_NOT_CLOSED:\n enabled: true\n R_GE_S_NON_MANIFOLD_EDGE:\n enabled: true\n R_GE_S_POLYGON_WRONG_ORIENTATION:\n enabled: true\n R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:\n enabled: true\n R_GE_S_NON_MANIFOLD_VERTEX:\n enabled: true\n R_GE_S_SELF_INTERSECTION:\n enabled: true\n R_SE_BS_IS_WALL:\n enabled: false\n parameters:\n lowerAngle: '45'\n upperAngle: '135'\n R_SE_BS_IS_FLOOR:\n enabled: false\n R_SE_BS_GROUND_UNFRAGMENTED:\n enabled: false\n R_SE_BS_IS_GROUND:\n enabled: false\n R_SE_BS_IS_CEILING:\n enabled: false\n</code></pre> <ol> <li>Der Parameter <code>useStreaming</code> ist ein Schalter um eine Datei St\u00fcck f\u00fcr St\u00fcck einzulesen anstelle erst die komplette Datei zu lesen bevor die Pr\u00fcfung stattfindet. Mit dieser Einstellung k\u00f6nnen auch Dateien &gt; 2GB ohne gro\u00dfe RAM Anforderungen gepr\u00fcft werden.</li> </ol> <p>In dem Validierungsplan finden sich die selben Einstellungen wieder, die in der grafischen Oberfl\u00e4che auch aufgelistet sind.</p> <p>Unter requirements sind alle Anforderungen gelistet die gepr\u00fcft werden sollen. Dabei sind die semantischen Pr\u00fcfungen standardm\u00e4\u00dfig deaktiviert. </p>"},{"location":"zipFiles/","title":"Zip-Archive","text":"<p>CityDoctor kann Zip-Dateien einlesen und enthaltene CityGML Dateien validieren.</p>"},{"location":"zipFiles/#laden-von-zip-archiven","title":"Laden von Zip-Archiven","text":"<p>Zip-Dateien k\u00f6nnen \u00fcber den Ladedialog ausgew\u00e4hlt und importiert werden. CityDoctor durchsucht die Zip-Datei nach m\u00f6glichen CityGML Dateien</p>"},{"location":"zipFiles/#zip-eintrag-manager","title":"Zip-Eintrag Manager","text":"<p>Nachdem CityDoctor erfolgreich ein Zip-Archiv importiert hat, wird der Zip-Eintrag Manager angezeigt. Der Zip-Eintrag Manager hat folgende Schaltfl\u00e4chen:</p> <ol> <li>Modell anzeigen: Zeigt das Stadtmodell der ausgew\u00e4hlten, entpackten Datei im Hauptfenster von CityDoctor.</li> <li>Datei entpacken: Entpackt die ausgew\u00e4hlte Datei.</li> <li>Fehlerstatistik anzeigen: Zeigt die Fehlerstatistik der ausgew\u00e4hlten Datei. Nur verf\u00fcgbar bei validierten Dateien.</li> <li>Alle Dateien entpacken: Entpackt alle Dateien im Archiv.</li> <li>Alle Dateien pr\u00fcfen: \u00d6ffnet den Check-Dialog f\u00fcr die Batch-Validierung aller Dateien. Siehe Validierung f\u00fcr mehr Informationen.</li> <li>Validierungsergebnisse exportieren: Erm\u00f6glicht das Speichern der Validierungsberichte. Verf\u00fcgbar nachdem mindestens eine Datei validiert wurde.</li> </ol> <p></p> <p>Der aktuelle Status der Dateien wird mithilfe eines Farbcodes angezeigt:</p> <ul> <li>Komprimiert (Schwarz): Eine komprimierte Datei ist noch 'gezippt'.</li> <li>Entpackt (Blau): Eine entpackte Datei wurde erfolgreich in den Arbeitsspeicher geladen.</li> <li>Leeres Modell (Grau): Eine entpackte Datei, welche kein Stadtmodell oder ein Stadtmodell ohne Features beinhaltet.</li> <li>Fehlerhafte Datei (Dunkelrot): Eine Datei, welche nicht erfolgreich entpackt werden konnte. M\u00f6gliche Ursachen sind fehlerhafte CityGml Dateien, Modelle die zu gro\u00df f\u00fcr den verf\u00fcgbaren Arbeitsspeicher sind oder Probleme beim Einlesen der Datei. Der genaue Grund wird in den Metadaten angezeigt.</li> <li>Validierte Dateien mit / ohne Fehlern (Hellrot bzw. Gr\u00fcn)</li> </ul> <p>Note</p> <p>Das originale Zip-Archiv wird nicht ver\u00e4ndert, entpackte Dateien sind Kopien.</p>"},{"location":"zipFiles/#validierung","title":"Validierung","text":""},{"location":"zipFiles/#validierung-einzelner-dateien","title":"Validierung einzelner Dateien","text":"<p>Entpackte Dateien k\u00f6nnen \u00fcber das CityDoctor Hauptfenster validiert werden. Das jeweils letzte Ergebnis der Validierung von jeder Datei wird hierbei im Arbeitsspeicher behalten, bis CityDoctor geschlossen oder ein neues Zip-Archiv geladen wird.</p>"},{"location":"zipFiles/#batch-validierung","title":"Batch Validierung","text":"<p>Die \"Alle Dateien pr\u00fcfen\" Schaltfl\u00e4che \u00f6ffnet die Einstellungen f\u00fcr die Batch-Validierung. Sie kann ohne vorheriges entpacken der Dateien durchgef\u00fchrt werden und verf\u00fcgt \u00fcber zwei Vorgehensweisen:</p>"},{"location":"zipFiles/#standardmodus","title":"Standardmodus","text":"<p>Der Standardmodus f\u00fchrt die Validierung \u00fcber alle Dateien im Archiv aus. Komprimierte Dateien werden hierbei automatisch entpackt. Wie bei der Individuellen Validierung werden die Ergebnisse im Arbeitsspeicher gehalten und k\u00f6nnen mit dem CityDoctor inspiziert werden.</p>"},{"location":"zipFiles/#niedriger-arbeitsspeicherverbrauchsmodus-datenstream-modus","title":"Niedriger Arbeitsspeicherverbrauchsmodus (Datenstream Modus)","text":"<p>In diesem Modus werden Datenstreams genutzt, um die Features der Stadtmodelle einzeln einzulesen und zu validieren. Dies reduziert den ben\u00f6tigten Arbeitsspeicher, da die Dateien zur \u00fcberpr\u00fcfung nicht entpackt werden m\u00fcssen. Dies bedeutet jedoch auch, dass der Status der Dateien unver\u00e4ndert bleibt. Die Ergebnisse werden in Validierungsberichten gespeichert und k\u00f6nnen nicht in CityDoctor inspiziert werden.</p>"}]} {"config":{"lang":["de"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"CityDoctor","text":"<p>Software zur Pr\u00fcfung und automatisierten Reparatur virtueller Stadtmodelle </p> <p>CityDoctor2 ist eine Qualit\u00e4tspr\u00fcfungssoftware f\u00fcr 3D Stadtmodelle im CityGML format. CityDoctor kann CityGML 1/2 Dokumente einlesen und seit Version 3.12 kann auch eingeschr\u00e4nkt CityGML 3 gelesen werden. Alle Pr\u00fcfergebnisse k\u00f6nnen in xml oder pdf Form ausgegeben werden. Zus\u00e4tzlich implementiert CityDoctor die QualityADE um Pr\u00fcfergebnisse direkt in CityGML zu speichern.</p> <p></p>"},{"location":"#lizenzen-versionen","title":"Lizenzen / Versionen","text":""},{"location":"#citydoctorvalidation","title":"CityDoctorValidation","text":"<p>Der Validierungsteil von CityDoctor ist frei verf\u00fcgbar und OpenSource</p>"},{"location":"#citydoctorgui","title":"CityDoctorGUI","text":"<p>Die grafische Oberfl\u00e4che ist frei verf\u00fcgbar und OpenSource</p>"},{"location":"#citydoctorhealer","title":"CityDoctorHealer","text":"<p>Der Teil zust\u00e4ndig f\u00fcr die Reparatur frei verf\u00fcgbar und OpenSource Die Reparatur funktioniert nur prototypisch und hat keine Garantie, dass jeder Fehler behoben werden kann oder es \u00fcberhaupt eine Verbesserung gibt.</p> <p>Bei Fragen Mail an: </p>"},{"location":"#projekte","title":"Projekte","text":"<p>CityDoctor wurde in mehreren Projekten entwickelt. Momentan wird CityDoctor im Rahmen des Projekts UDigitDoctor entwickelt.</p> <p>Vergangenes Projekt:</p> <ul> <li>CityDoctor2</li> </ul>"},{"location":"R_GE_MS/","title":"R_GE_MS","text":""},{"location":"R_GE_MS/#anforderung","title":"Anforderung","text":"ID R_GE_MS Beschreibung Ein MultiSurface ist eine Sammlung von Polygonen ohne weitere Einschr\u00e4nkungen. Ein MultiSurface ist nur g\u00fcltig, wenn alle Polygone g\u00fcltig sind. Die Anforderungen R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED, R_GE_R_SELF_INTERSECTION, R_GE_R_TOO_FEW_POINTS, R_GE_P_HOLE_OUTSIDE, R_GE_P_INNER_RINGS_NESTED, R_GE_P_INTERIOR_DISCONNECTED, R_GE_P_INTERSECTING_RINGS, R_GE_P_NON_PLANAR, R_GE_P_ORIENTATION_RINGS_SAME m\u00fcssen erf\u00fcllt werden Fehlercode --"},{"location":"R_GE_MS/#prufung","title":"Pr\u00fcfung","text":"<p>Keine weiteren Pr\u00fcfungen notwendig. Die einzelnen Anforderungen haben eigene Pr\u00fcfungen f\u00fcr ihre Erf\u00fcllung.</p>"},{"location":"R_GE_MS/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis <p>Existierende Testf\u00e4lle k\u00f6nnen verwendet werden. </p>"},{"location":"R_GE_P_HOLE_OUTSIDE/","title":"R_GE_P_HOLE_OUTSIDE","text":""},{"location":"R_GE_P_HOLE_OUTSIDE/#anforderung","title":"Anforderung","text":"ID R_GE_P_HOLE_OUTSIDE Beschreibung Innerer Ring darf nicht komplett au\u00dferhalb des \u00e4u\u00dferen Rings sein. Fehlercode GE_P_HOLE_OUTSIDE <p>Beispiel: </p>"},{"location":"R_GE_P_HOLE_OUTSIDE/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_HOLE_OUTSIDE Anforderungs ID R_GE_P_HOLE_OUTSIDE Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_NON_PLANAR, R_GE_P_ORIENTATION_RINGS_SAME Beschreibung Fehlercode GE_P_HOLE_OUTSIDE"},{"location":"R_GE_P_HOLE_OUTSIDE/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0004-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK f\u00fcr diese Anforderung, GE_S_NOT_CLOSED Fehler in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0004-T0002 SimpleSolid_SrefBS-GE-gml-PO-0004-T0001.gml GE_P_HOLE_OUTSIDE in Polygon: _Simple_BD.1_PG.2"},{"location":"R_GE_P_INNER_RINGS_NESTED/","title":"R_GE_P_INNER_RINGS_NESTED","text":""},{"location":"R_GE_P_INNER_RINGS_NESTED/#anforderung","title":"Anforderung","text":"ID R_GE_P_INNER_RINGS_NESTED Beschreibung Innere Ringe d\u00fcrfen nicht innerhalb eines anderen inneren Rings sein. Fehlercode GE_P_INNER_RINGS_NESTED <p>Beispiel: </p>"},{"location":"R_GE_P_INNER_RINGS_NESTED/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_INNER_RINGS_NESTED Anforderungs ID R_GE_P_INNER_RINGS_NESTED Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_NON_PLANAR, R_GE_P_ORIENTATION_RINGS_SAME Beschreibung Fehlercode GE_P_INNER_RINGS_NESTED"},{"location":"R_GE_P_INNER_RINGS_NESTED/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0005-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK f\u00fcr diese Anforderung, GE_S_NOT_CLOSED Fehler in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0005-T0002 SimpleSolid_SrefBS-GE-gml-PO-0005-T0001.gml GE_P_INNER_RINGS_NESTED in Polygon: _Simple_BD.1_PG.2"},{"location":"R_GE_P_INTERIOR_DISCONNECTED/","title":"R_GE_P_INTERIOR_DISCONNECTED","text":""},{"location":"R_GE_P_INTERIOR_DISCONNECTED/#anforderung","title":"Anforderung","text":"ID R_GE_P_INTERIOR_DISCONNECTED Beschreibung Die innere Fl\u00e4che eines Polygons muss verbunden sein. Parameter minVertexDistance Ein Punkt ber\u00fchrt eine Kante, wenn der Abstand kleiner als minVertexDistance ist, siehe Vertex Anforderungen Fehlercode GE_P_INTERIOR_DISCONNECTED <p>Beispiele: </p> <p></p>"},{"location":"R_GE_P_INTERIOR_DISCONNECTED/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_INTERIOR_DISCONNECTED Anforderungs ID R_GE_P_INTERIOR_DISCONNECTED Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_NON_PLANAR, GE_P_ORIENTATION_RINGS_SAME Beschreibung Fehlercode GE_P_INTERIOR_DISCONNECTED"},{"location":"R_GE_P_INTERIOR_DISCONNECTED/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0003-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK f\u00fcr diese Anforderung, GE_S_NOT_CLOSED Fehler in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0003-T0002 SimpleSolid_SrefBS-GE-gml-PO-0003-T0001.gml GE_P_INTERIOR_DISCONNECTED in Polygon _Simple_BD.1_PG.2 GE-gml:PO-0003-T0003 SimpleSolid_SrefBS-GE-gml-PO-0003-T0002.gml GE_P_INTERIOR_DISCONNECTED in Polygon _Simple_BD.1_PG.2"},{"location":"R_GE_P_INTERSECTING_RINGS/","title":"R_GE_P_INTERSECTING_RINGS","text":""},{"location":"R_GE_P_INTERSECTING_RINGS/#anforderung","title":"Anforderung","text":"ID R_GE_P_INTERSECTING_RINGS Beschreibung \u00c4u\u00dferer und innere Ringe d\u00fcrfen sich nicht verschneiden Parameter minVertexDistance Zwei Ringe verschneiden sich nicht, wenn nur ein Punkt des einen Rings den Anderen ber\u00fchrt. Ein Punkt ber\u00fchrt eine Kante nur dann wenn der Abstand weniger als minVertexDistance ist. Punkte k\u00f6nnen als gleich angesehen werden, trotz (kleiner) Abst\u00e4nde, siehe Vertex Anforderungen Fehlercode GE_P_INTERSECTING_RINGS <p>Beispiele:</p> <p>\u00c4u\u00dferer Ring verschneidet inneren Ring: </p> <p>Zwei innere Ringe verschneiden sich: </p>"},{"location":"R_GE_P_INTERSECTING_RINGS/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_INTERSECTING_RINGS Anforderungs ID R_GE_P_INTERSECTING_RINGS Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_NON_PLANAR, R_GE_P_HOLE_OUTSIDE, R_GE_P_INNER_RINGS_NESTED, R_GE_P_ORIENTATION_RINGS_SAME Beschreibung Wenn ein Punkt eines inneren Rings au\u00dferhalb des \u00e4u\u00dferen ist oder innerhalb eines anderen inneren Rings, ist das eine Verschneidung. Fehlercode GE_P_INTERSECTING_RINGS"},{"location":"R_GE_P_INTERSECTING_RINGS/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0001-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0001.gml GE_P_INTERSECTING_RINGS in Polygon _Simple_BD.1_PG.2 GE-gml:PO-0001-T0002 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK f\u00fcr diese Anforderung, GE_S_NOT_CLOSED Fehler in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0001-T0003 SimpleSolid_SrefBS-GE-gml-PO-0001-T0003.gml GE_P_INTERSECTING_RINGS in Polygon _Simple_BD.1_PG.2"},{"location":"R_GE_P_NON_PLANAR/","title":"R_GE_P_NON_PLANAR","text":""},{"location":"R_GE_P_NON_PLANAR/#anforderung","title":"Anforderung","text":"ID R_GE_P_NON_PLANAR Beschreibung Jedes Polygon muss planar sein. Planarit\u00e4t ist erreicht, wenn kein Punkt weiter als distanceTolerance von der Regressionsebene aller Punkte entfernt ist, sowie die Normalen jedes Dreiecks des tessellierten Polygons keine gr\u00f6\u00dfere Winkelabweichung als angleTolerance haben. Parameter 1: type Der Typ der Planarit\u00e4tspr\u00fcfung kann ausgew\u00e4hlt werden. Muss eins von distance, angle, both sein.<ul><li>Wenn der Parameter distance ist: Nur die Distanzpr\u00fcfung wird ausgef\u00fchrt.</li><li> Wenn der Parameter angle ist: Nur die Normalenabweichungspr\u00fcfung wird ausgef\u00fchrt.</li><li>Wenn der Parameter both ist: Beide Pr\u00fcfungen werden ausgef\u00fchrt.</li></ul> Parameter 2: distanceTolerance Toleranz der Distanz eines Punktes von der Regressionsebene Parameter 3: angleTolerance Toleranz des Winkels der Dreiecksnormalen Fehlercodes GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION <p>Normalen Abweichung: </p>"},{"location":"R_GE_P_NON_PLANAR/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_NON_PLANAR Anforderungs ID R_GE_P_NON_PLANAR Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL Beschreibung Um die Normalenabweichung zu bestimmen, werden alle Polygone tesselliert, um die Dreiecksnormalen zu berechnen, deren Winkel f\u00fcr den Vergleich verwendet werden. Die Tessellierung der Polygone ist nicht eindeutig und damit ist das Ergebnis der Pr\u00fcfung der Normalenabweichung nicht eindeutig. F\u00fcr die Distanzpr\u00fcfung wird eine Regressionsebene aus allen Polygonpunkten erstellt, um den Abstand der Punkte zu dieser Ebene zu berechnen. Fehlercode GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"},{"location":"R_GE_P_NON_PLANAR/#implementierung","title":"Implementierung","text":"<p>In CityDoctor2 ist nur die Abstandspr\u00fcfung standardm\u00e4\u00dfig aktiv, da die Normalenpr\u00fcfung keine deterministischen Ergebnisse liefert.</p>"},{"location":"R_GE_P_NON_PLANAR/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0002-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK f\u00fcr diese Anforderung, GE_S_NOT_CLOSED Fehler in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0002-T0002 SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE in _Simple_BD.1_PG.2 mit distanceTolerance = 0.01 GE-gml:PO-0002-T0003 SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml OK f\u00fcr diese Anforderung mit distanceTolerance = 0.5, GE_P_ORIENTATION_RINGS_SAME in sp\u00e4teren Pr\u00fcfungen GE-gml:PO-0002-T0004 SimpleSolid_SrefBS-GE-gml-PO-0002-T0002.gml GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION in _Simple_BD.1_PG.1 mit Parameter type = angle"},{"location":"R_GE_P_ORIENTATION_RINGS_SAME/","title":"R_GE_P_ORIENTATION_RINGS_SAME","text":""},{"location":"R_GE_P_ORIENTATION_RINGS_SAME/#anforderung","title":"Anforderung","text":"ID R_GE_P_ORIENTATION_RINGS_SAME Beschreibung \u00c4u\u00dfere und innere Ringe d\u00fcrfen nicht die selbe Orientierung haben. Fehlercode GE_P_ORIENTATION_RINGS_SAME <p>Beispiel : </p>"},{"location":"R_GE_P_ORIENTATION_RINGS_SAME/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_P_ORIENTATION_RINGS_SAME Anforderungs ID R_GE_P_ORIENTATION_RINGS_SAME Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_NON_PLANAR Beschreibung Fehlercode GE_P_ORIENTATION_RINGS_SAME"},{"location":"R_GE_P_ORIENTATION_RINGS_SAME/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:PO-0006-T0001 SimpleSolid_SrefBS-GE-gml-PO-0001-T0002.gml OK GE-gml:PO-0006-T0002 SimpleSolid_SrefBS-GE-gml-PO-0006-T0001.gml GE_P_ORIENTATION_RINGS_SAME in Polygon: _Simple_BD.1_PG.2"},{"location":"R_GE_R_COLLAPSED_TO_LINE/","title":"R_GE_R_COLLAPSED_TO_LINE","text":""},{"location":"R_GE_R_COLLAPSED_TO_LINE/#anforderung","title":"Anforderung","text":"ID R_GE_R_COLLAPSED_TO_LINE Beschreibung Ein Spezialfall von Selbstverschneidung (GE_R_SELF_INTERSECTION): Der Ring ist eine Linie. Wenn der Ring einen Punkt darstellt, dann wird dies durch die Anforderungen GE_R_TOO_FEW_POINTS / GE_R_CONSECUTIVE_POINTS_SAME gepr\u00fcft ob es sich hierbei um einen Fehler handelt. Fehlercode GE_R_SELF_INTERSECTION, GE_R_COLLAPSED_TO_LINE, GE_R_TOO_FEW_POINTS, GE_R_CONSECUTIVE_POINTS_SAME"},{"location":"R_GE_R_COLLAPSED_TO_LINE/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_R_COLLAPSED_TO_LINE Anforderungs ID R_GE_R_COLLAPSED_TO_LINE Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_TOO_FEW_POINTS, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED Beschreibung Ring als ein Punkt kann nicht passieren, wegen den Vorbedingungen. Fehlercode GE_R_COLLAPSED_TO_LINE <p>Die Anforderung ist erf\u00fcllt mit R_GE_R_TOO_FEW_POINTS, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED und R_GE_R_SELF_INTERSECTION und ben\u00f6tigt demnach keine eigene Implementierung.</p>"},{"location":"R_GE_R_COLLAPSED_TO_LINE/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:LR-0005-T0001 GE-gml:LR-0005-T0001.gml GE_R_SELF_INTERSECTION"},{"location":"R_GE_R_CONSECUTIVE_POINTS_SAME/","title":"R_GE_R_CONSECUTIVE_POINTS_SAME","text":""},{"location":"R_GE_R_CONSECUTIVE_POINTS_SAME/#anforderung","title":"Anforderung","text":"ID R_GE_R_CONSECUTIVE_POINTS_SAME Beschreibung Punkte innerhalb eines Rings sollen sich nicht wiederholen (ausgenommen der erste und der letzte im Fall von GML, siehe R_GE_R_NOT_CLOSED). Dieser Fehler tritt oft auf, wenn zwei Punkte an derselben Stelle sind. Parameter minVertexDistance Punkte k\u00f6nnen als gleich angesehen werden, trotz (kleiner) Abst\u00e4nde, siehe Vertex Anforderungen Fehlercode GE_R_CONSECUTIVE_POINTS_SAME <p>Zum Beispiel dieser Ring ist fehlerhaft:</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre> <p>Dieser Ring ist auch Fehlerhaft mit dem Parameter minVertexDistance = 0.1</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;0.05 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre> <p>Das n\u00e4chste Beispiel zeigt einen fehlerhaften Ring mit einem Punkt, der zwei mal vorkommt aber die Wiederholung nicht aufeinanderfolgend ist. Dies resultiert in einer Selbstverschneidung, dies ist mit dieser Anforderung nicht abgedeckt.</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre>"},{"location":"R_GE_R_CONSECUTIVE_POINTS_SAME/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_R_CONSECUTIVE_POINTS_SAME Anforderungs ID R_GE_R_CONSECUTIVE_POINTS_SAME Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_NOT_CLOSED, R_GE_R_TOO_FEW_POINTS Beschreibung Pr\u00fcft ob sich ein Punkt wiederholt Fehlercode GE_R_CONSECUTIVE_POINTS_SAME ID C_GE_R_DUPLICATE_POINT Anforderungs ID R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_SELF_INTERSECTION (teilweise) Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_NOT_CLOSED, R_GE_R_TOO_FEW_POINTS Beschreibung Erkennt aufeinanderfolgende als auch andere wiederholende Punkte. Fehlercode GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION"},{"location":"R_GE_R_CONSECUTIVE_POINTS_SAME/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:LR-0002-T0001 SimpleSolid_SrefBS.gml OK GE-gml:LR-0002-T0002 SimpleSolid_SrefBS-GE-gml-LR-0002-T0001.gml GE_R_CONSECUTIVE_POINTS_SAME in Ring:_Simple_BD.1_PG.6_LR.1 GE-gml:LR-0002-T0003 SimpleSolid_SrefBS-GE-gml-LR-0002-T0002.gml OK nach dieser Anforderung, aber hat Fehler GE_R_SELF_INTERSECTION erkannt von C_GE_R_DUPLICATE_POINT GE-gml:LR-0002-T0004 SimpleSolid_SrefBS-GE-gml-LR-0002-T0003.gml OK nach dieser Anforderung, aber hat Fehler GE_R_SELF_INTERSECTION erkannt von C_GE_R_DUPLICATE_POINT GE-gml:LR-0002-T0005 SimpleSolid_SrefBS-GE-gml-LR-0002-T0004.gml GE_R_CONSECUTIVE_POINTS_SAME in Ring:_Simple_BD.1_PG.6_LR.1 mit Parameter minVertexDistance = 0.1, GE_S_NOT_CLOSED Fehler wenn minVertexDistance = 0.01 GE-gml:LR-0002-T0006 SimpleSolid_SrefBS-GE-gml-LR-0002-T0005.gml Nicht ausgef\u00fchrt da GE_R_TOO_FEW_POINTS in Ring:_Simple_BD.1_PG.6_LR.1"},{"location":"R_GE_R_NOT_CLOSED/","title":"R_GE_R_NOT_CLOSED","text":""},{"location":"R_GE_R_NOT_CLOSED/#anforderung","title":"Anforderung","text":"ID R_GE_R_NOT_CLOSED Beschreibung Der erste und letzte Punkt m\u00fcssen in GML der gleiche sein. Parameter minVertexDistance Punkte k\u00f6nnen als gleich angesehen werden, trotz (kleiner) Abst\u00e4nde, siehe Vertex Anforderungen Fehlercode GE_R_NOT_CLOSED <p>Zum Beispiel dieser Ring ist fehlerhaft:</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre> <p>OK mit Parameter minVertexDistance = 0.1:</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;1.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;0.0 0.0 0.05&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre>"},{"location":"R_GE_R_NOT_CLOSED/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_R_NOT_CLOSED Anforderungs ID R_GE_R_NOT_CLOSED Vorbedingungen R_SC_SCHEMA_VALIDATION Beschreibung Der erste und letzte Punkt innerhalb eines Rings sollen der gleiche sein. Fehlercode GE_R_NOT_CLOSED"},{"location":"R_GE_R_NOT_CLOSED/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:LR-0003-T0001 SimpleSolid_SrefBS.gml OK GE-gml:LR-0003-T0002 SimpleSolid_SrefBS-GE-gml-LR-0003-T0001.gml GE_R_NOT_CLOSED GE-gml:LR-0003-T0003 SimpleSolid_SrefBS-GE-gml-LR-0003-T0002.gml OK mit Parameter minVertexDistance = 0.1"},{"location":"R_GE_R_SELF_INTERSECTION/","title":"R_GE_R_SELF_INTERSECTION","text":""},{"location":"R_GE_R_SELF_INTERSECTION/#anforderung","title":"Anforderung","text":"ID R_GE_R_SELF_INTERSECTION Beschreibung Ein Ring soll einfach sein, also sich nicht selbstverschneiden. Die Selbstverschneidung kann an einem konkreten Punkt sein, oder auch nicht. Parameter minVertexDistance Punkte k\u00f6nnen als gleich angesehen werden, trotz (kleiner) Abst\u00e4nde, siehe Vertex Anforderungen. Dieser Parameter wird auch dazu verwendet um zu bestimmen wann ein Punkt eine Kante ber\u00fchrt. Fehlercode GE_R_SELF_INTERSECTION <p>Beispiele f\u00fcr Selbstverschneidungen:</p> <p>Schleife: </p> <p>Punkt ber\u00fchrt Kante mit Parameter minVertexDistance: </p> <p>Doppelte Punkte: </p> <p>Doppelte Kante (Gleich wie doppelte Punkte): </p>"},{"location":"R_GE_R_SELF_INTERSECTION/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_R_SELF_INTERSECTION Anforderungs ID R_GE_R_SELF_INTERSECTION Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_TOO_FEW_POINTS, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED Beschreibung Erkennt doppelte Punkte und Selbstverschneidende Kanten. Fehlercodes GE_R_SELF_INTERSECTION ID C_GE_R_DUPLICATE_POINT Anforderungs ID R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_SELF_INTERSECTION (teilweise) Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_TOO_FEW_POINTS, R_GE_R_NOT_CLOSED Beschreibung Erkennt wiederholende und nicht wiederholende doppelte Punkte. Letzteres ist eine Selbstverschneidung. Fehlercodes GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION"},{"location":"R_GE_R_SELF_INTERSECTION/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:LR-0004-T0001 SimpleSolid_SrefBS.gml OK GE-gml:LR-0004-T0002 SimpleSolid_SrefBS-GE-gml-LR-0002-T0002.gml Doppelte Punkte (Beispiel, nicht representativ f\u00fcr Fehler in Modell):GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1 GE-gml:LR-0004-T0003 SimpleSolid_SrefBS-GE-gml-LR-0002-T0003.gml Doppelte Punkte (resultiert in einer doppelten Kante)GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1 GE-gml:LR-0004-T0004 SimpleSolid_SrefBS-GE-gml-LR-0004-T0004.gml Schleife (Beispiel, nicht representativ f\u00fcr Fehler in Modell): GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1 GE-gml:LR-0004-T0005 SimpleSolid_SrefBS-GE-gml-LR-0004-T0005.gml Ber\u00fchrender Punkt mit Parameter minVertexDistance = 0.1: GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.2_LR.1 GE-gml:LR-0004-T0006 SimpleSolid_SrefBS-GE-gml-LR-0004-T0005.gml OK f\u00fcr diese Anforderung mit Parameter minVertexDistance = 0.01, GE_S_NOT_CLOSED in sp\u00e4teren Pr\u00fcfungen"},{"location":"R_GE_R_TOO_FEW_POINTS/","title":"R_GE_R_TOO_FEW_POINTS","text":""},{"location":"R_GE_R_TOO_FEW_POINTS/#anforderung","title":"Anforderung","text":"ID R_GE_R_TOO_FEW_POINTS Beschreibung Ein Ring muss mindestens 3 Punkte haben. F\u00fcr GML-Ringe ignoriert diese Anforderung die Tatsache, dass der erste und der letzte Punkt gleich sind (siehe R_GE_R_NOT_CLOSED). Ein GML-Ring ist nach dieser Anforderung valide, wenn er mindestens 3 unterschiedliche Punkte enth\u00e4lt, aber er ist dann nicht geschlossen (die Anforderung R_GE_R_NOT_CLOSED ist nicht erf\u00fcllt). Parameter minVertexDistance Punkte k\u00f6nnen als gleich angesehen werden, trotz (kleiner) Abst\u00e4nde, siehe Vertex Anforderungen Fehlercode GE_R_TOO_FEW_POINTS <p>Zum Beispiel, dieser Ring ist fehlerhaft:</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre> <p>Valide Ringe:</p> <p>(Dieser Ring ist nicht geschlossen, hat aber genug unterschiedliche Punkte, um dieser Anforderung zu gen\u00fcgen.)</p> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre> <pre><code>&lt;gml:LinearRing&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;1.0 0.0 0.0&lt;/gml:pos&gt; \n&lt;gml:pos&gt;0.0 1.0 0.0&lt;/gml:pos&gt;\n&lt;gml:pos&gt;0.0 0.0 0.0&lt;/gml:pos&gt;\n&lt;/gml:LinearRing&gt;\n</code></pre>"},{"location":"R_GE_R_TOO_FEW_POINTS/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_R_TOO_FEW_POINTS Anforderungs ID R_GE_R_TOO_FEW_POINTS Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_NOT_CLOSED Beschreibung Ring muss mindestens 3 unterschiedliche Punkte beinhalten Fehlercode GE_R_TOO_FEW_POINTS"},{"location":"R_GE_R_TOO_FEW_POINTS/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:LR-0001-T0001 SimpleSolid_SrefBS.gml OK GE-gml:LR-0001-T0002 SimpleSolid_SrefBS-GE-gml-LR-0001-T0001.gml GE_R_TOO_FEW_POINTSin Ring: _Simple_BD.1_PG.6_LR.1 GE-gml:LR-0001-T0003 SimpleSolid_SrefBS-GE-gml-LR-0001-T0002.gml Pr\u00fcfung nicht ausgef\u00fchrt da GE_R_NOT_CLOSEDRing _Simple_BD.1_PG.6_LR.1 ist nicht geschlossen, hat aber 3 Punkte."},{"location":"R_GE_SO/","title":"R_GE_SO","text":""},{"location":"R_GE_SO/#anforderung","title":"Anforderung","text":"ID R_GE_SO Beschreibung Ein Solid ist eine Sammlung von Polygonen mit Einschr\u00e4nkungen. Die Geometrie muss 'wasserdicht' sein. Siehe die Definition von Solids in Anhang A des CityGML QIE. Ein Solid ist g\u00fcltig, wenn die Anforderungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS, GE_S_NOT_CLOSED, GE_S_NON_MANIFOLD_VERTEX, GE_S_NON_MANIFOLD_EDGE, GE_S_MULTIPLE_CONNECTED_COMPONENTS, GE_S_POLYGON_WRONG_ORIENTATION, R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION, R_GE_S_SELF_INTERSECTION erf\u00fcllt sind. Fehlercode --"},{"location":"R_GE_SO/#prufung","title":"Pr\u00fcfung","text":"<p>keine weitere Pr\u00fcfung notwendig</p>"},{"location":"R_GE_SO/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis <p>Existierende Testf\u00e4lle der einzelnen Pr\u00fcfungen k\u00f6nnen verwendet werden.</p>"},{"location":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/","title":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION","text":""},{"location":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/#anforderung","title":"Anforderung","text":"ID R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION Beschreibung Alle Polygone haben die falsche Orientierung (definiert in GE_S_POLYGON_WRONG_ORIENTATION), so dass alle Polygone nach innen zeigen. Fehlercode GE_S_ALL_POLYGONS_WRONG_ORIENTATION"},{"location":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION Anforderungs ID R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS, GE_S_NOT_CLOSED, GE_S_NON_MANIFOLD_VERTEX, GE_S_NON_MANIFOLD_EDGE, GE_S_MULTIPLE_CONNECTED_COMPONENTS, GE_S_SELF_INTERSECTION, GE_S_POLYGON_WRONG_ORIENTATION Beschreibung Fehlercode GE_S_ALL_POLYGONS_WRONG_ORIENTATION"},{"location":"R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0008-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0008-T0002 SimpleSolid_SrefBS-GE-gml-SO-0008-T0001.gml GE_S_ALL_POLYGONS_WRONG_ORIENTATION"},{"location":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/","title":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS","text":""},{"location":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/#anforderung","title":"Anforderung","text":"ID R_GE_S_MULTIPLE_CONNECTED_COMPONENTS Beschreibung 1+ Polygone sind nicht mit derselben H\u00fclle verbunden. Fehlercode GE_S_MULTIPLE_CONNECTED_COMPONENTS"},{"location":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_MULTIPLE_CONNECTED_COMPONENTS Anforderungs ID R_GE_S_MULTIPLE_CONNECTED_COMPONENTS Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS Beschreibung Erstelle einen doppelten Graphen (Polygone werden Knoten, Polygone, die eine Kante teilen werden im Graph verbunden). Wenn der Graph nicht verbunden ist, gibt es mehrere verbundene Komponenten. Fehlercode GE_S_MULTIPLE_CONNECTED_COMPONENTS"},{"location":"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0005-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0005-T0002 SimpleSolid_SrefBS-GE-gml-SO-0005-T0001.gml GE_S_MULTIPLE_CONNECTED_COMPONENTS"},{"location":"R_GE_S_NON_MANIFOLD_EDGE/","title":"R_GE_S_NON_MANIFOLD_EDGE","text":""},{"location":"R_GE_S_NON_MANIFOLD_EDGE/#anforderung","title":"Anforderung","text":"ID R_GE_S_NON_MANIFOLD_EDGE Beschreibung Jede Kante sollte genau 2 Polygone begrenzen. Fehlercode GE_S_NON_MANIFOLD_EDGE Kommentar Diese Anforderung ist \u00e4hnlich zu GE_S_NOT_CLOSED: Wenn eine Kante mehr als 2 Polygone begrenzt, dann ist es ein GE_S_NON_MANIFOLD_EDGE Fehler. Wenn eine Kante nur ein Polygon begrenzt, ist es ein GE_S_NOT_CLOSED Fehler (ein Loch im Solid)"},{"location":"R_GE_S_NON_MANIFOLD_EDGE/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_NON_MANIFOLD_EDGE Anforderungs ID R_GE_S_NON_MANIFOLD_EDGE Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS Beschreibung Fehlercode GE_S_NON_MANIFOLD_EDGE"},{"location":"R_GE_S_NON_MANIFOLD_EDGE/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0004-T0000 SimpleSolid_SrefBS.gml OK GE-gml:SO-0004-T0001 SimpleSolid_SrefBS-GE-gml-SO-0004-T0001.gml GE_S_NON_MANIFOLD_EDGE"},{"location":"R_GE_S_NON_MANIFOLD_VERTEX/","title":"R_GE_S_NON_MANIFOLD_VERTEX","text":""},{"location":"R_GE_S_NON_MANIFOLD_VERTEX/#anforderung","title":"Anforderung","text":"ID R_GE_S_NON_MANIFOLD_VERTEX Beschreibung Jedes Polygon das an einem Punkt eines Solids anliegt muss \u00fcber Kanten mit den anderen anliegenden Polygonen verbunden sein. Punkt und anliegende Polygone m\u00fcssen ein 'Regenschirm' erzeugen. Fehlercode GE_S_NON_MANIFOLD_VERTEX"},{"location":"R_GE_S_NON_MANIFOLD_VERTEX/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_NON_MANIFOLD_VERTEX Anforderungs ID R_GE_S_NON_MANIFOLD_VERTEX Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS Beschreibung Fehlercode GE_S_NON_MANIFOLD_VERTEX"},{"location":"R_GE_S_NON_MANIFOLD_VERTEX/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0003-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0003-T0002 SimpleSolid_SrefBS-GE-gml-SO-0003-T0001.gml GE_S_NON_MANIFOLD_VERTEX"},{"location":"R_GE_S_NOT_CLOSED/","title":"R_GE_S_NOT_CLOSED","text":""},{"location":"R_GE_S_NOT_CLOSED/#anforderung","title":"Anforderung","text":"ID R_GE_S_NOT_CLOSED Beschreibung Die H\u00fclle darf keine L\u00f6cher haben, sie muss Wasserdicht sein. Fehlercode GE_S_NOT_CLOSED"},{"location":"R_GE_S_NOT_CLOSED/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_NOT_CLOSED Anforderungs ID R_GE_S_NOT_CLOSED Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS Beschreibung Fehlercode GE_S_NOT_CLOSED <p>Die Pr\u00fcfung sucht alle Kanten und ordnet sie den jeweiligen Gegenkanten zu. Falls eine Kante keine Gegenkante hat so wird hier ein Loch in der H\u00fclle erkannt und ein Fehler herausgegeben.</p>"},{"location":"R_GE_S_NOT_CLOSED/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0002-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0002-T0002 SimpleSolid_SrefBS-GE-gml-SO-0002-T0001.gml GE_S_NOT_CLOSED"},{"location":"R_GE_S_POLYGON_WRONG_ORIENTATION/","title":"R_GE_S_POLYGON_WRONG_ORIENTATION","text":""},{"location":"R_GE_S_POLYGON_WRONG_ORIENTATION/#anforderung","title":"Anforderung","text":"ID R_GE_S_POLYGON_WRONG_ORIENTATION Beschreibung Ein Polygon muss so orientiert sein, dass die Normale des \u00e4u\u00dferen Rings nach au\u00dfen zeigt. Die Punkte sind gegen den Uhrzeigersinn angeordnet. Fehlercode GE_S_POLYGON_WRONG_ORIENTATION"},{"location":"R_GE_S_POLYGON_WRONG_ORIENTATION/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_POLYGON_WRONG_ORIENTATION Anforderungs ID R_GE_S_POLYGON_WRONG_ORIENTATION Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS, GE_S_NOT_CLOSED, GE_S_NON_MANIFOLD_EDGE Beschreibung Fehlercode GE_S_POLYGON_WRONG_ORIENTATION"},{"location":"R_GE_S_POLYGON_WRONG_ORIENTATION/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0007-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0007-T0002 SimpleSolid_SrefBS-GE-gml-SO-0007-T0001.gml GE_S_POLYGON_WRONG_ORIENTATION"},{"location":"R_GE_S_SELF_INTERSECTION/","title":"R_GE_S_SELF_INTERSECTION","text":""},{"location":"R_GE_S_SELF_INTERSECTION/#anforderung","title":"Anforderung","text":"ID R_GE_S_SELF_INTERSECTION Beschreibung Der Solid darf sich nicht selbstverschneiden Fehlercode GE_S_SELF_INTERSECTION <p>Beispiel (links = OK, rechts = Fehlerhaft): </p>"},{"location":"R_GE_S_SELF_INTERSECTION/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_SELF_INTERSECTION Anforderungs ID R_GE_S_SELF_INTERSECTION Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, GE_S_TOO_FEW_POLYGONS, GE_S_NOT_CLOSED, GE_S_NON_MANIFOLD_VERTEX, GE_S_NON_MANIFOLD_EDGE, GE_S_MULTIPLE_CONNECTED_COMPONENTS, GE_S_POLYGON_WRONG_ORIENTATION Beschreibung Fehlercode GE_S_SELF_INTERSECTION"},{"location":"R_GE_S_SELF_INTERSECTION/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0006-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0006-T0002 SimpleSolid_SrefBS-GE-gml-SO-0006-T0001.gml GE_S_SELF_INTERSECTION"},{"location":"R_GE_S_TOO_FEW_POLYGONS/","title":"R_GE_S_TOO_FEW_POLYGONS","text":""},{"location":"R_GE_S_TOO_FEW_POLYGONS/#anforderung","title":"Anforderung","text":"ID R_GE_S_TOO_FEW_POLYGONS Beschreibung Solids m\u00fcssen mindestens 4 Polygone haben. Fehlercode GE_S_TOO_FEW_POLYGONS"},{"location":"R_GE_S_TOO_FEW_POLYGONS/#prufung","title":"Pr\u00fcfung","text":"ID C_GE_S_TOO_FEW_POLYGONS Anforderungs ID R_GE_S_TOO_FEW_POLYGONS Vorbedingungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL Beschreibung Fehlercode GE_S_TOO_FEW_POLYGONS"},{"location":"R_GE_S_TOO_FEW_POLYGONS/#testfalle","title":"Testf\u00e4lle","text":"Testfall ID CityGML Modell Erwartetes Ergebnis GE-gml:SO-0001-T0001 SimpleSolid_SrefBS.gml OK GE-gml:SO-0001-T0002 SimpleSolid_SrefBS-GE-gml-SO-0001-T0001.gml GE_S_TOO_FEW_POLYGONS"},{"location":"basic/","title":"Validierung von 3D Stadtmodellen in CityGML","text":""},{"location":"basic/#begriffe-und-definitionen","title":"Begriffe und Definitionen","text":"<p>nach CityGML Quality Interoperability Experiment, chapter 3</p> <p>Validierung</p> <p>Prozess des validierens einer CityGML Datei nach spezifizierten Anforderungen. Eine valide Datei entspricht allen Anforderungen.</p> <p>Anforderungen</p> <p>Regeln und Einschr\u00e4nkungen, die die Datenstruktur eindeutig definieren. Anforderungen k\u00f6nnen von dem CityGML Standard Dokument abgleitet werden oder gesondert, als Anforderung an den CityGML Standard, definiert werden um Mehrdeutigkeiten des Standards zu verhindern oder zus\u00e4tzliche nutzerabh\u00e4ngige Anforderungen zu definieren.</p> <p>Pr\u00fcfung</p> <p>Algorithmische Implementation um eine Anforderung innerhalb eines Validerungsprogramms zu pr\u00fcfen.</p> <p>Fehler</p> <p>Ergebnis einer Pr\u00fcfung im Falle einer Nichtkonformit\u00e4t von Anforderungen.</p> <p>Validierungsplan</p> <p>Strukturierte Liste von Anforderungen, \u00fcberlicherweise angepasst an den konkreten Fall.</p>"},{"location":"basic/#zusatzliche-defintionen","title":"Zus\u00e4tzliche Defintionen:","text":"<p>XSD valide</p> <p>Eine CityGML Datei XSD valide wenn sie dem CityGML XML Schema entspricht.</p>"},{"location":"firstRun/","title":"Erster Start","text":""},{"location":"firstRun/#start","title":"Start","text":"<p>Nach dem entpacken der Zip Datei sollte je nach Version (GUI oder Batch) eine Struktur \u00e4hnlich diesem Bild rauskommen (Beispiel CityDoctorGUI): </p> <p>Um CityDoctor zu starten kann die start.bat verwendet werden.</p> <p>Die .bat Datei enth\u00e4lt dabei nur den Befehl:</p> <pre><code>java -classpath app/*;plugins/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter\n</code></pre> <p>Note</p> <p>Der Befehl hat sich \u00fcber die Versionshistorie von CityDoctor ver\u00e4ndert.</p> <p>F\u00fcr die Batch Version ist der Befehl analog und kann entsprechend f\u00fcr andere Betriebsysteme angepasst werden.</p> <p>Note</p> <p>F\u00fcr Linux oder Mac kann dieser Befehl auch verwendet werden, es muss nur das \";\" durch \":\" ersetzt werden. Der Rest bleibt gleich.</p>"},{"location":"geometric/","title":"Geometrieanforderungen","text":""},{"location":"geometric/#fehlercodes-fur-geometrische-fehler","title":"Fehlercodes f\u00fcr geometrische Fehler","text":"<p>Die Fehlercodes wurden \u00fcbernommen aus dem CityGML Quality Interoperability Experiment, chapter 7.5.</p> <p>Note</p> <p>Die Anforderungen wurden in CityDoctor umbenannt um einen auch von Menschen zu verstehenden Begriff, analog zu den Fehlercodes, darzustellen.</p> <p>Alle geometrischen Fehler sind in dem \"GE\" Definitionsbereich. Da geometrische Validierung basierend auf den Primitiven auf drei verschiedenen Ebenen ausgef\u00fchrt wird enth\u00e4lt jede Anforderung eine Ebene:</p> <ul> <li>Ring: R</li> <li>Polygon: P</li> <li>H\u00fclle (Shell): S</li> </ul> <p>Fehlercodes folgen dem selben Namensschema wie die Anforderungen, siehe auch Grundbegriffe. Jede Verletzung einer Anforderung muss in einem Fehler enden, der einen entsprechenden Fehlercode beinhaltet. Jeder Fehler kann (und sollte) zus\u00e4tzliche Informationen beinhalten (z.B. Wenn ein Ring nicht geschlossen ist, dann sollte die ID des Rings mitgegeben werden).</p>"},{"location":"geometric/#vertex-punkt-anforderungen","title":"Vertex (Punkt) Anforderungen","text":"<p>Zwei Punkte A und B sind gleich wenn die Euclidische-Distanz zwischen den beiden Punkten kleiner als eine definierte Gr\u00f6\u00dfe ist (minVertexDistance). Diese definierte Gr\u00f6\u00dfe findet auch in vielen Anforderungen wieder Anwendung, zum Beispiel ber\u00fchrt ein Punkt eine Kante wenn der Abstand des Punktes kleiner ist als minVertexDistance. In den folgenden Anforderungen wird die Gr\u00f6\u00dfe verwendet:</p> <ul> <li>R_GE_R_CONSECUTIVE_POINTS_SAME</li> <li>R_GE_R_NOT_CLOSED</li> <li>R_GE_R_SELF_INTERSECTION</li> <li>R_GE_P_INTERIOR_DISCONNECTED</li> </ul> <p>Die folgenden Anforderungen wurden auf den drei geometrischen Ebenen definiert (nach Ledoux (2013)):</p>"},{"location":"geometric/#linear-ring","title":"Linear Ring","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_R_TOO_FEW_POINTS Zu wenig Punkte in einem Ring GE_R_TOO_FEW_POINTS C_GE_R_TOO_FEW_POINTS R_GE_R_CONSECUTIVE_POINTS_SAME 2 aufeinanderfolgende Punkte sind gleich GE_R_CONSECUTIVE_POINTS_SAME C_GE_R_CONSECUTIVE_POINTS_SAME, C_GE_R_DUPLICATE_POINT R_GE_R_NOT_CLOSED Der erste und letzte Punkt sind nicht gleich GE_R_NOT_CLOSED C_GE_R_NOT_CLOSED R_GE_R_SELF_INTERSECTION Selbstverschneidung z.B. eine Schleife GE_R_SELF_INTERSECTION C_GE_R_SELF_INTERSECTION, C_GE_R_DUPLICATE_POINT R_GE_R_COLLAPSED_TO_LINE Momentan nicht in Benutzung, da redundant mit R_GE_R_SELF_INTERSECTION Ring ist ein Punkt oder eine Linie GE_R_COLLAPSED_TO_LINE C_GE_R_COLLAPSED_TO_LINE R_GE_R_ALL Container f\u00fcr: R_GE_R_TOO_FEW_POINTS, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED, R_GE_R_SELF_INTERSECTION -- --"},{"location":"geometric/#polygon","title":"Polygon","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_P_INTERSECTING_RINGS 2+ Ringe schneiden sich GE_P_INTERSECTING_RINGS C_GE_P_INTERSECTING_RINGS R_GE_P_NON_PLANAR Nicht planares Polygon, sowohl Distanz als auch Fl\u00e4chennormale Abweichungen GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION C_GE_P_NON_PLANAR R_GE_P_INTERIOR_DISCONNECTED Innenfl\u00e4che ist nicht verbunden GE_P_INTERIOR_DISCONNECTED C_GE_P_INTERIOR_DISCONNECTED R_GE_P_HOLE_OUTSIDE 1+ inneren Ringe ist komplett au\u00dferhalb des Polygons GE_P_HOLE_OUTSIDE C_GE_P_HOLE_OUTSIDE R_GE_P_INNER_RINGS_NESTED Innerer Ring ist komplett innerhalb eines anderen inneren Rings GE_P_INNER_RINGS_NESTED C_GE_P_INNER_RINGS_NESTED R_GE_P_ORIENTATION_RINGS_SAME \u00c4u\u00dferer Ring und innerer Ring haben die selbe Orientation GE_P_ORIENTATION_RINGS_SAME C_GE_P_ORIENTATION_RINGS_SAME R_GE_P_ALL Container f\u00fcr: R_GE_P_INTERSECTING_RINGS, R_GE_P_NON_PLANAR, R_GE_P_INTERIOR_DISCONNECTED, R_GE_P_HOLE_OUTSIDE, R_GE_P_INNER_RINGS_NESTED, R_GE_P_ORIENTATION_RINGS_SAME, R_GE_R_ALL -- --"},{"location":"geometric/#solid-hulle-shell","title":"Solid / H\u00fclle (Shell)","text":"Anforderungs ID Beschreibung Fehlercode Bekannte Pr\u00fcfungen R_GE_S_TOO_FEW_POLYGONS &lt;4 Polygone GE_S_TOO_FEW_POLYGONS C_GE_S_TOO_FEW_POLYGONS R_GE_S_NOT_CLOSED Die H\u00fclle ist nicht wasserdicht / hat 1+ L\u00f6cher GE_S_NOT_CLOSED C_GE_S_NOT_CLOSED R_GE_S_NON_MANIFOLD_VERTEX Jedes Polygon, das an einem Punkt anliegt muss \u00fcber Kanten mit den Anderen verbunden sein GE_S_NON_MANIFOLD_VERTEX C_GE_S_NON_MANIFOLD_VERTEX R_GE_S_NON_MANIFOLD_EDGE An jeder Kante d\u00fcrfen nur 2 Polygon anliegen GE_S_NON_MANIFOLD_EDGE C_GE_S_NON_MANIFOLD_EDGE R_GE_S_MULTIPLE_CONNECTED_COMPONENTS Alle Polygone m\u00fcssen \u00fcber Punkte und Kanten verbunden sein GE_S_MULTIPLE_CONNECTED_COMPONENTS C_GE_S_MULTIPLE_CONNECTED_COMPONENTS R_GE_S_SELF_INTERSECTION Die H\u00fclle selbstverschneidet sich GE_S_SELF_INTERSECTION C_GE_S_SELF_INTERSECTION R_GE_S_POLYGON_WRONG_ORIENTATION Die Orientierung eines Polygons ist falsch GE_S_POLYGON_WRONG_ORIENTATION C_GE_S_POLYGON_WRONG_ORIENTATION R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION Alle Polygone zeigen in die falsche Richtung GE_S_ALL_POLYGONS_WRONG_ORIENTATION C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION R_GE_S_ALL Container f\u00fcr: R_GE_S_TOO_FEW_POLYGONS, R_GE_S_NOT_CLOSED, R_GE_S_NON_MANIFOLD_VERTEX, R_GE_S_NON_MANIFOLD_EDGE, R_GE_S_MULTIPLE_CONNECTED_COMPONENTS, R_GE_S_SELF_INTERSECTION, R_GE_S_POLYGON_WRONG_ORIENTATION, R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION -- --"},{"location":"geometric/#parameter-uberblick","title":"Parameter \u00dcberblick","text":"Name Beschreibung Verwendet in Einheit minVertexDistance Minimale Abstand zwischen zwei Punkten bevor sie als der selbe Punkt angesehen werden R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED, R_GE_R_SELF_INTERSECTION, R_GE_P_INTERIOR_DISCONNECTED Meter type Planarit\u00e4tspr\u00fcfungsart, kann distance, angle, both sein R_GE_P_NON_PLANAR - distanceTolerance Maximale Distanz eines Punktes von der Ausgleichsebene eines Polygons bevor es als Fehler angesehen wird R_GE_P_NON_PLANAR Meter angleTolerance Maximale Differenz im Winkel von angrenzenden Dreiecken einer Triangulierung bevor ein Polygon nicht mehr als Planar angesehen wird R_GE_P_NON_PLANAR Radiant"},{"location":"geometric/#abhangigkeitsbaum","title":"Abh\u00e4ngigkeitsbaum","text":"<p>Dies ist die Reihenfolge in der die Pr\u00fcfungen ausgef\u00fchrt werden. Wenn eine abh\u00e4ngige Pr\u00fcfung einen Fehler geworfen hat oder nicht ausgef\u00fchrt wurde, so wird die darauffolgende Pr\u00fcfung auch nicht ausgef\u00fchrt.</p> <pre><code>graph TD;\n X0001[R_SC_SCHEMA_VALIDATION]\n R0001[R_GE_R_TOO_FEW_POINTS]\n R0002[R_GE_R_CONSECUTIVE_POINTS_SAME]\n R0003[R_GE_R_NOT_CLOSED]\n R0004[R_GE_R_SELF_INTERSECTION]\n P0001[R_GE_P_INTERSECTING_RINGS]\n P0002[R_GE_P_NON_PLANAR]\n P0003[R_GE_P_INTERIOR_DISCONNECTED]\n P0004[R_GE_P_HOLE_OUTSIDE]\n P0005[R_GE_P_INNER_RINGS_NESTED]\n P0006[R_GE_P_ORIENTATION_RINGS_SAME]\n\n S0001[R_GE_S_TOO_FEW_POLYGONS]\n S0002[R_GE_S_NOT_CLOSED]\n S0003[R_GE_S_NON_MANIFOLD_VERTEX]\n S0004[R_GE_S_NON_MANIFOLD_EDGE]\n S0005[R_GE_S_MULTIPLE_CONNECTED_COMPONENTS]\n S0006[R_GE_S_SELF_INTERSECTION]\n S0007[R_GE_S_POLYGON_WRONG_ORIENTATION]\n S0008[R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION]\n\n X0001--&gt;R0003;\n R0003--&gt;R0001;\n R0001--&gt;R0002;\n R0002--&gt;R0004;\n R0004--&gt;P0002;\n P0002--&gt;P0006;\n P0006--&gt;P0003;\n P0006--&gt;P0004;\n P0006--&gt;P0005;\n P0004--&gt;P0001;\n P0005--&gt;P0001;\n P0001--&gt;S0001;\n P0003--&gt;S0001;\n S0001--&gt;S0002;\n S0001--&gt;S0004;\n S0001--&gt;S0003;\n S0001--&gt;S0005;\n S0002--&gt;S0007;\n S0004--&gt;S0007;\n S0007--&gt;S0006;\n S0003--&gt;S0006;\n S0005--&gt;S0006;\n S0006--&gt;S0008; \n</code></pre>"},{"location":"geometric/#multisurface-und-solid-geometrie","title":"Multisurface und Solid Geometrie","text":"<p>Um die Definition eines Validierungsplans zu vereinfachen werden zwei neue Anforderungen zus\u00e4tzlich eingef\u00fchrt. Diese Anforderungen dienen lediglich zur Gruppierung von den vorhandenen Anforderungen und ben\u00f6tigen keine zus\u00e4tzlichen Pr\u00fcfungen.</p> Anforderungs ID Beschreibung Abh\u00e4ngigkeiten Fehlercode Bekannte Pr\u00fcfungen R_GE_MS Valide Multisurface-Geometrie R_SC-SCHEMA-VALIDATION, R_GE_P_ALL -- -- R_GE_SO Valide H\u00fcllengeometrie R_SC-SCHEMA-VALIDATION, R_GE_S_ALL -- --"},{"location":"qual_ade/","title":"Quality-ADE","text":"<p>CityDoctor benutzt die Quality-ADE</p>"},{"location":"requiredSoftware/","title":"Ben\u00f6tigte Software","text":""},{"location":"requiredSoftware/#versionen-ab-3130","title":"Versionen ab 3.13.0","text":"<p>Ab Version 3.13.0 wurde ein Repository auf dem Transferportal der Hochschule erstellt, das fortan als Ablageort f\u00fcr fertige Releases verwendet wird: https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctorreleases</p> <p>Die Versionen sind dort unterteilt zwischen CityDoctorValidation und CityDoctorGUI und unter diesen Ordnern gibt es die entsprechenden Versionsordner.</p>"},{"location":"requiredSoftware/#releaseversionen","title":"Releaseversionen","text":"<p>F\u00fcr jede CityDoctor Variante (CityDoctorValidation oder CityDoctorGUI) werden vier verschiedene Versionen zum Download bereitgestellt. Es werden in verschiedenen Versionen Java Runtimes der Liberica Distribution mitgeliefert. </p> Version Beschreibung CityDoctor*-no-runtime.zip Diese Version beinhaltet keine Runtime f\u00fcr Java. Falls auf Ihrem PC schon ein Java der Version 17 installiert ist (siehe Java), dann ist diese Version zu bevorzugen. CityDoctor*-win.zip Beinhaltet eine Windows Java Runtime zum ausf\u00fchren von CityDoctor, kein Java muss installiert sein. CityDoctor*-lin.zip Beinhaltet eine Linux Java Runtime zum ausf\u00fchren von CityDoctor CityDoctor*-mac.zip Beinhaltet eine Mac Java Runtime zum ausf\u00fchren von CityDoctor"},{"location":"requiredSoftware/#versionen-bis-312x","title":"Versionen bis 3.12.x","text":"<p>CityDoctor kann von verschiedenen Seiten heruntergeladen werden. Die aktuellste Stelle ist ein gitlab Repository. Alternativ werden Releases auch auf der CityDoctor Homepage der BHT gelistet. Es gibt dabei immer zwei Versionen:</p> <ul> <li>CityDoctorGUI-3.x.x.zip: Das ist die grafische Oberfl\u00e4che inklusive der Pr\u00fcfungen. Geeignet f\u00fcr den Endnutzer auf einem Desktop PC.</li> <li>CityDoctorValidation-3.x.x.zip: Das ist die Batch-Version die f\u00fcr die Integration in Servern oder anderen bestehenden Systemen geeignet ist und hat keine grafische Oberfl\u00e4che sondern arbeitet Dateibasiert als Prozess.</li> </ul> <p>Note</p> <p>Es gibt manchmal Spezialversionen die Testweise erstellt worden sind um verschiedene Auslieferungsm\u00f6glichkeiten zu testen. Bsp: CityDoctorGUI-x.x.x-win.zip beinhaltet die JavaFX Bibliotheken sodass eine Java Umgebung ohne JavaFX auch verwendet werden kann.</p>"},{"location":"requiredSoftware/#java","title":"Java","text":"<p>Vor der CityDoctor Version 3.12.x wird Java 8 entweder als JDK oder als JRE ben\u00f6tigt. Ab der Version 3.12.x wird Java 17 ben\u00f6tigt.</p> <p>Warning</p> <p>Es wichtig, dass die installierte Java Version die JavaFX Bibliotheken mit einschlie\u00dft. Diese werden f\u00fcr die grafische Oberfl\u00e4che ben\u00f6tigt.</p> <p>Die Liberica JRE oder JDK hat sich f\u00fcr einen Einsatz mit CityDoctor bew\u00e4hrt.</p> <p>Note</p> <p>Die Liberica Distribution ist zu 100% frei und OpenSource.</p> <p>Note</p> <p>F\u00fcr die Entwicklung mit CityDoctor wird eine JDK ben\u00f6tigt.</p>"},{"location":"requirements/","title":"Anforderungen und Pr\u00fcfungen f\u00fcr die Validierung von CityGML-Modellen","text":"<p>Die Anforderungen sind die Grundbausteine f\u00fcr ein Validierungsplan um CityGML-Modelle zu validieren. F\u00fcr Namenskonventionen und Definitionen, siehe Grundbegriffe. </p> <p>Eine Anforderung kann durch einen oder mehrere Pr\u00fcfungen validiert werden. Eine Pr\u00fcfung validiert ein oder mehrere Anforderungen bei einem Modell. Jede Pr\u00fcfung kann Vorbedingungen haben. Wenn diese Vorbedingungen nicht erf\u00fcllt sind wird die Pr\u00fcfung nicht ausgef\u00fchrt.</p> <p>Unterschieden wird dabei zwischen:</p> <ul> <li>Schemaanforderungen</li> <li>Geometrieanforderungen</li> <li>Semantische Anforderungen</li> </ul>"},{"location":"schemaRequirements/","title":"Schemaanforderungen","text":""},{"location":"schemaRequirements/#r_sc_schema_validation","title":"R_SC_SCHEMA_VALIDATION","text":""},{"location":"schemaRequirements/#anforderung","title":"Anforderung","text":"ID R_SC_SCHEMA_VALIDATION Beschreibung Eine grundlengende Anforderung ist, dass jedes CityGML Dokument wohl definiert sein muss und XSD valide ist. Fehlercode SC-SCHEMA-NOT-VALID"},{"location":"schemaRequirements/#prufung","title":"Pr\u00fcfung","text":"ID SC_SCHEMA_VALIDATION Anforderungs ID R_SC_SCHEMA_VALIDATION Vorbedingungen keine Beschreibung Werkzeuge um eine XSD Validierung durchzuf\u00fchren sind verf\u00fcgbar und geben verl\u00e4ssliche Ergebnisse Fehlercode SC_SCHEMA_NOT_VALID"},{"location":"semantic/","title":"Semantische Anforderungen","text":"<p>Die semantischen Anforderungen sind meistens auf Attributbasis. Daraus ergeben sich 3 Fehlerzust\u00e4nde f\u00fcr ein Attribut:</p> <ul> <li>SE_ATTRIBUTE_WRONG_VALUE: Wenn ein Attribut ein falschen Wert hat.</li> <li>SE_ATTRIBUTE_MISSING: Wenn ein Attribut fehlt, aber vorhanden sein sollte.</li> <li>SE_ATTRIBUTE_INVALID: Wenn ein Attribut vorhanden ist aber verboten ist.</li> </ul>"},{"location":"semantic/#schematron","title":"Schematron","text":"<p>In CityDoctor wurde das XML Validierungssystem Schematron integriert um flexibel Attributpr\u00fcfungen anzupassen und zu unterst\u00fctzen. </p> <p>Hier ist ein Beispiel f\u00fcr eine Schematron Datei die CityDoctor integrieren kann:</p>"},{"location":"semantic/#citydoctor-3130","title":"CityDoctor &gt;= 3.13.0","text":"<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;schema xmlns=\"http://purl.oclc.org/dsdl/schematron\" queryBinding=\"xslt2\"&gt;\n &lt;ns prefix=\"gml\" uri=\"http://www.opengis.net/gml\"/&gt;\n &lt;ns prefix=\"bldg\" uri=\"http://www.opengis.net/citygml/building/2.0\"/&gt;\n\n &lt;pattern&gt;\n &lt;rule context=\"//*:Building\"&gt;\n &lt;assert test=\"count(descendant::*:lod1Solid) &amp;gt; 0 or count(descendant::*:lod2Solid) &amp;gt; 0 or count(descendant::*:lod3Solid) &amp;gt; 0 or count(descendant::*:lod4Solid) &amp;gt; 0\"&gt;&lt;value-of select=\"@gml:id | @id\"/&gt;||||SE_ATTRIBUTE_MISSING||any solid&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;rule context=\"//*:BuildingPart\"&gt;\n &lt;assert test=\"count(*:lod1Solid) = 1 or count(*:lod2Solid) = 1 or count(*:lod3Solid) = 1 or count(*:lod4Solid) = 1\"&gt;&lt;value-of select=\"ancestor::*:Building/@*:id\"/&gt;||&lt;value-of select=\"@gml:id | @id\"/&gt;||SE_ATTRIBUTE_MISSING||any solid&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;/pattern&gt;\n&lt;/schema&gt; \n\n</code></pre>"},{"location":"semantic/#citydoctor-3130_1","title":"CityDoctor &lt; 3.13.0","text":"<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;schema xmlns=\"http://purl.oclc.org/dsdl/schematron\" queryBinding=\"xslt2\"&gt;\n &lt;ns prefix=\"gml\" uri=\"http://www.opengis.net/gml\"/&gt;\n &lt;ns prefix=\"bldg\" uri=\"http://www.opengis.net/citygml/building/2.0\"/&gt;\n\n &lt;pattern&gt;\n &lt;rule context=\"//*:Building\"&gt;\n &lt;assert test=\"count(descendant::*:lod1Solid) &amp;gt; 0 or count(descendant::*:lod2Solid) &amp;gt; 0 or count(descendant::*:lod3Solid) &amp;gt; 0 or count(descendant::*:lod4Solid) &amp;gt; 0\"&gt;&lt;value-of select=\"@gml:id | @id\"/&gt;||||SE_ATTRIBUTE_MISSING||any solid||false&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;rule context=\"//*:BuildingPart\"&gt;\n &lt;assert test=\"count(*:lod1Solid) = 1 or count(*:lod2Solid) = 1 or count(*:lod3Solid) = 1 or count(*:lod4Solid) = 1\"&gt;&lt;value-of select=\"ancestor::*:Building/@*:id\"/&gt;||&lt;value-of select=\"@gml:id | @id\"/&gt;||SE_ATTRIBUTE_MISSING||any solid||false&lt;/assert&gt;\n &lt;/rule&gt;\n &lt;/pattern&gt;\n&lt;/schema&gt; \n</code></pre> <p>Diese Datei pr\u00fcft, dass alle Buildings in sich selbst oder in einem ihrer Unterelementen ein Solid beliebigen LODSs vorhanden ist. Au\u00dferdem stellt die Datei sicher, dass jedes BuildingPart ein Solid enth\u00e4lt. Wenn dies nicht der Fall ist wird eine Fehlermeldung ausgegeben. Die Fehlermeldung ist dabei so formattiert, dass CityDoctor sie interpretieren und in das interne Datenmodell einbinden kann.</p>"},{"location":"semantic/#fehlerformat","title":"Fehlerformat","text":"<p>Das Fehlerformat ist ein CSV-Format mit || als Trennzeichen</p> <pre><code>parent id||child id||error code||error type||is generic attribute\n</code></pre> <p>Die Fehlermeldung besteht aus den folgenden Teilen:</p> <ul> <li>Die <code>parent id</code> ist die gml id des obersten Elements z.B. Building oder Bridge. </li> <li>Falls der Fehler in einem Unterelement aufgetreten ist so kann diese ID in dem Feld f\u00fcr die <code>child id</code> eingetragen werden.</li> <li>Im Feld <code>error type</code> ist einer der 3 Fehlertypen einzutragen: <code>SE_ATTRIBUTE_WRONG_VALUE, SE_ATTRIBUTE_MISSING, SE_ATTRIBUTE_INVALID</code>.</li> </ul> <p>note Nur in CityDoctor &lt; 3.13.0: * Um ein generisches Attribut mit dem Namen <code>measuredHeight</code> von dem nicht generischen Attribut zu unterscheiden ist im letzten Feld vorgesehen <code>true</code> einzutragen wenn es sich um ein generisches Attribut handelt ansonsten <code>false</code>. </p>"},{"location":"udt_about/","title":"UDigiT-Doctor","text":"<p>Erweiterung des CityDoctor2 f\u00fcr die Integration von urbanen digitalen Zwillingen</p> <p></p> <p>Das UDigiT-Doctor Projekt sieht eine Weiterentwicklung des CityDoctor2 vor, mit dem Ziel die Pr\u00fcfung von urbanen digitalen Zwillingen durch die Validierungs- und Reparaturfunktionen des CityDoctors zu erm\u00f6glichen.</p>"},{"location":"udt_about/#fragestellung","title":"Fragestellung","text":"<p>Zusammengefasst k\u00f6nnen f\u00fcr eine \u00dcbertragung der Qualit\u00e4tssicherung von Geb\u00e4udemodellen auf UDT folgende wissenschaftliche und technische Schwerpunkteziele abgeleitet werden:</p> <ul> <li>Entwurf einer internen Datenstruktur und Erarbeitung von Verfahren zur Erzeugung eines integrierten Gesamtmodells </li> <li>\u00dcberpr\u00fcfung der topologischen Beziehungen von Objekten sowohl zur Sicherstellung grundlegender Eigenschaften eines allgemein verwendbaren Basis-Modells als auch f\u00fcr ausgew\u00e4hlte Anwendungsszenarien (Leitungsnetze, Geb\u00e4udeanschl\u00fcsse, etc.)</li> <li>Erweiterung des Pr\u00fcf- und Reparaturprozesses durch Vergleichsmethoden unter Verwendung von Referenzmodellen</li> <li>Umfassende und konfigurierbare Semantikpr\u00fcfung</li> </ul>"},{"location":"udt_about/#lizenz","title":"Lizenz","text":"<p>UDigiT-Doctor, bzw. CityDoctor2, wird weiterhin als FOSS unter der LGPL ver\u00f6ffentlicht.</p>"},{"location":"udt_about/#releases","title":"Releases","text":"<p>Releases von UDigiT-Doctor werden \u00fcber das GitLab Repository von CityDoctor2 verf\u00fcgbar gemacht.</p>"},{"location":"udt_about/#projektdaten","title":"Projektdaten","text":"<p>Projektlaufzeit: 01.04.2024 - 01.07.2027</p> <p>Projekt Website: UDigiT-Doctor: Hochschule f\u00fcr Technik Stuttgart UDigiT-Doctor: Berliner Hochschule f\u00fcr Technik</p> <p>Projektleitung: Prof. Dr.-Ing. Volker Coors</p> <p>Verbundpartner: Prof. Dr. Margitta Pries</p>"},{"location":"udt_about/#partner","title":"Partner","text":"<p>Kooperationspartner: Robert Bosch GmbH Geoplex GIS GmbH M.O.S.S. Computer Grafik Systeme GmbH LandPlan OS GmbH Point Cloud Technology GmbH virtualcitysystems GmbH</p> <p>Assoziative Partner: Open Geospatial Consortium Stadt Stuttgart Stadt Leverkusen </p> <p>Mittelgeber: Bundesamt f\u00fcr Bildung und Forschung</p> <p>Projekttr\u00e4ger: VDI Technologiezentrum </p>"},{"location":"udt_req_overview/","title":"Anforderungen an UDigiT-Doctor","text":"<ol> <li>Entwurf einer internen Datenstruktur und Erarbeitung von Verfahren zur Erzeugung eines integrierten Gesamtmodells.</li> <li>\u00dcberpr\u00fcfung der topologischen Beziehungen von Objekten sowohl zur Sicherstellung grundlegender Eigenschaften eines allgemein verwendbaren Basis-Modells als auch f\u00fcr ausgew\u00e4hlte Anwendungszenarien (Leitungsnetze, Geb\u00e4udeanschl\u00fcsse, ...)</li> <li>Erweiterung des Pr\u00fcf- und Reperaturprozesses durch Vergleichsmethoden unter Verwendung von Referenzmodellen</li> <li>Umfassende und konfigurierbare Semantikpr\u00fcfung</li> </ol> Spezielle Anforderungen von Relevant f\u00fcr Anforderungen Nr. Datenmodell 1., 2., 3. Topologische Konsistenz 2., 3. Semantische \u00dcberpr\u00fcfung 2., 4."},{"location":"udt_terms/","title":"Validierung von urbanen digitalen Zwillingen","text":""},{"location":"udt_terms/#begriffe-und-definitionen","title":"Begriffe und Definitionen","text":"<p>Siehe auch: Begriffe und Definitionen von CityDoctor2</p> <p>Urbaner digitaler Zwilling</p> <p>Ein urbaner digitaler Zwilling ist ein repr\u00e4sentatives, virtuelles Modell eines realen Geb\u00e4udes. Digitale Zwillinge dienen, unter anderem, der Simulation von verschiedenen Prozessen, als auch als zentraler Sammelpunkt f\u00fcr Daten und Informationen. Dies schlie\u00dft bei urbanen digitalen Zwillingen auch Daten von installierten Sensoren und Geb\u00e4udeleittechniksystemen ein.</p>"},{"location":"userInterface/","title":"Nutzeroberfl\u00e4che","text":""},{"location":"userInterface/#citydoctor","title":"CityDoctor","text":"<p>In der oberen Leiste sind folgende Schaltfl\u00e4chen in Reihenfolge:</p> <ul> <li>Laden: \u00d6ffnet den Dialog zum laden einer CityGML Datei</li> <li>Pr\u00fcfen: \u00d6ffnet den Dialog zum pr\u00fcfen einer geladenen CityGML</li> <li>Pr\u00fcfberichte: \u00d6ffnet den Dialog zum schreiben eines Pr\u00fcfprotokolls in xml oder pdf Form</li> <li>Gitternetz: Zeigt/Versteckt das Gitternetz anstatt gef\u00fcllter Polygone</li> <li>R\u00fcckseiten: Zeigt/Versteckt R\u00fcckseiten von Polygonen</li> <li>Globale Ansicht: L\u00e4dt alle Elemente einer CityGML in die Ansicht</li> <li>LODs: Schaltet einzelne LODs von der Ansicht an oder aus</li> <li>Speichern: Speichert eine CityGML Datei zur\u00fcck, falls die Datei gepr\u00fcft wurde wird die QualityADE mitgeschrieben.</li> <li>About: \u00d6ffnet den Dialog mit Informationen zu dem Projekt CityDoctor2</li> <li>Ansichten: Wechselt verschiedene Ansichten. F\u00fcr die Pr\u00fcfung gibt es nur eine.</li> <li>Sprache: Hier kann die Sprache eingestellt werden (Deutsch/Englisch)</li> </ul> <p>Warning</p> <p>Das Anzeigen der Globalen Ansicht kann bei gro\u00dfen CityGML Dateien (&gt; 100mb je nach System) zu abst\u00fcrzen f\u00fchren. Das Anzeigen kann kurz dauern.</p>"},{"location":"userInterface/#laden","title":"Laden","text":"<p>\u00dcber die Schaltfl\u00e4che Laden wird der Dialog zum laden einer CityGML Datei ge\u00f6ffnet.</p> <p></p> <p>In der Datei Leiste kann ein Dateipfad eingetragen werden oder \u00fcber die Schaltfl\u00e4che Ausw\u00e4hlen ausgew\u00e4hlt werden.</p> <p>Au\u00dferdem k\u00f6nnen weitere Einstellungen f\u00fcr das Lesen der Datei angegeben werden.</p> <ul> <li>NumberOfRoundingPlaces: Auf wie viele Nachkommastellen werden die eingelesenen Werte gerundet.</li> <li>XML-Validierung: F\u00fchrt eine XML Validierung durch. Fehler werden dabei direkt beim einlesen festgestellt und das Einlesen wird abgebrochen.</li> <li>Speicherverbrauch: Spart RAM um gr\u00f6\u00dfere Dateien in der GUI zu erm\u00f6glichen. Kostet geringf\u00fcgig Performance bei der Pr\u00fcfung.</li> </ul> <p>Beim Laden wird der Fortschritt ungef\u00e4hr durch den Ladebalken repr\u00e4sentiert.</p> <p>Note</p> <p>Dateien k\u00f6nnen auch direkt per Drag and Drop vom Dateimanager in die GUI gezogen werden ohne den Laden Dialog zu verwenden. Dabei werden die Default Werte angenommen (8 Nachkommastellen, keine XML-Validierung)</p> <p>Nach dem Laden einer CityGML Datei werden die Elemente in den einzelnen Tabs angezeigt. Durch ausw\u00e4hlen eines Elements wird das in der Ansicht angezeigt.</p> <p></p> <p>Note</p> <p>Durch Ausw\u00e4hlen des obersten Elements eines Reiters werden alle Elemente innerhalb diese Reiters angezeigt. Wie obige Warnung schon besagt, gilt auch hier, dass gr\u00f6\u00dfere Datenmengen zu Abst\u00fcrzen f\u00fchren.</p>"},{"location":"userInterface/#prufen","title":"Pr\u00fcfen","text":"<p>Im Pr\u00fcfdialog kann der Validierungsplan angepasst werden. Hier werden neben den Verf\u00fcgbaren Pr\u00fcfungen auch die globalen Parameter angezeigt.</p> <p>Ver\u00e4ndert k\u00f6nnen die Parameter mit einem Doppelklick in die Wert Spalte. Die Einheit ist dabei fest.</p> <p>Note</p> <p>Der Parameter numberOfRoundingPlaces kann nicht ver\u00e4ndert werden. Er wurde beim Laden der Datei festgelegt.</p> <p>Falls Pr\u00fcfungen nicht ausgef\u00fchrt werden sollen k\u00f6nnen sie in der Spalte Aktiv deaktiviert werden.</p> <p>Warning</p> <p>Wenn Pr\u00fcfungen deaktiviert wurden die andere aktiven Pr\u00fcfungen aber als Abh\u00e4ngigkeit ben\u00f6tigen werden sie bei der Pr\u00fcfung wieder aktiviert um die Stabilit\u00e4t zu gew\u00e4hrleisten. Siehe Anforderungen.</p> <p>In dem Feld Schematron Datei kann ein Pfad zu einer Schematron Datei eingetragen werden. In dieser Datei k\u00f6nnen flexible Regeln f\u00fcr die semantischen Anforderungen festgelegt werden. Siehe Semantische Pr\u00fcfungen</p> <p>\u00dcber die beiden Schaltfl\u00e4chen oben rechts kann der Pr\u00fcfplan gespeichert und geladen werden.</p> <p>Nach der Pr\u00fcfung werden fehlerhafte Elemente rot und fehlerfreie Elemente gr\u00fcn eingef\u00e4rbt. Bei der Auswahl eines Elements das fehler beinhaltet werden die Fehler in dem unteren Tab Fehler angezeigt. Dort kann der Fehler ausgew\u00e4hlt werden um ihn in CityDoctor anzuzeigen und weitere Informationen zu erhalten.</p> <p></p> <p>Die Elemente k\u00f6nnen mit dem Dropdown-Men\u00fc gefiltert werden um nur fehlerhafte Elemente anzuzeigen.</p>"},{"location":"userInterface/#prufberichte","title":"Pr\u00fcfberichte","text":"<p>In diesem Dialog gibt es nochmal eine \u00dcbersicht \u00fcber die Fehler in Bildform und die M\u00f6glichkeit einen xml oder pdf Bericht zu schreiben.</p> <p></p>"},{"location":"validationPlan/","title":"Validierungsplan","text":"<p>der Validierungsplan f\u00fcr CityDoctor wird in YAML angegeben.</p> <p>F\u00fcr die Version 3.12.x und neuere sieht ein Beispiel so aus:</p> <pre><code>globalParameters:\n numberOfRoundingPlaces: 8\n # in m\n minVertexDistance: 0.0001\n schematronPath: 'checkForSolid.xml'\nuseStreaming: true # (1)!\nrequirements:\n R_GE_R_TOO_FEW_POINTS:\n enabled: true\n R_GE_R_NOT_CLOSED:\n enabled: true\n R_GE_R_CONSECUTIVE_POINTS_SAME:\n enabled: true\n R_GE_R_SELF_INTERSECTION:\n enabled: true\n R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:\n enabled: true\n R_GE_P_INTERIOR_DISCONNECTED:\n enabled: true\n R_GE_P_INTERSECTING_RINGS:\n enabled: true\n R_GE_P_NON_PLANAR:\n enabled: true\n parameters:\n # one of (\"distance\", \"angle\", \"both\")\n type: distance\n # in m\n distanceTolerance: 0.01\n # in degree\n angleTolerance: 1\n R_GE_P_HOLE_OUTSIDE:\n enabled: true\n R_GE_P_ORIENTATION_RINGS_SAME:\n enabled: true\n R_GE_P_INNER_RINGS_NESTED:\n enabled: true\n R_GE_S_TOO_FEW_POLYGONS:\n enabled: true\n R_GE_S_NOT_CLOSED:\n enabled: true\n R_GE_S_NON_MANIFOLD_EDGE:\n enabled: true\n R_GE_S_POLYGON_WRONG_ORIENTATION:\n enabled: true\n R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:\n enabled: true\n R_GE_S_NON_MANIFOLD_VERTEX:\n enabled: true\n R_GE_S_SELF_INTERSECTION:\n enabled: true\n R_SE_BS_IS_WALL:\n enabled: false\n parameters:\n lowerAngle: '45'\n upperAngle: '135'\n R_SE_BS_IS_FLOOR:\n enabled: false\n R_SE_BS_GROUND_UNFRAGMENTED:\n enabled: false\n R_SE_BS_IS_GROUND:\n enabled: false\n R_SE_BS_IS_CEILING:\n enabled: false\n</code></pre> <ol> <li>Der Parameter <code>useStreaming</code> ist ein Schalter um eine Datei St\u00fcck f\u00fcr St\u00fcck einzulesen anstelle erst die komplette Datei zu lesen bevor die Pr\u00fcfung stattfindet. Mit dieser Einstellung k\u00f6nnen auch Dateien &gt; 2GB ohne gro\u00dfe RAM Anforderungen gepr\u00fcft werden.</li> </ol> <p>In dem Validierungsplan finden sich die selben Einstellungen wieder, die in der grafischen Oberfl\u00e4che auch aufgelistet sind.</p> <p>Unter requirements sind alle Anforderungen gelistet die gepr\u00fcft werden sollen. Dabei sind die semantischen Pr\u00fcfungen standardm\u00e4\u00dfig deaktiviert. </p>"},{"location":"zipFiles/","title":"Zip-Archive","text":"<p>CityDoctor kann Zip-Dateien einlesen und enthaltene CityGML Dateien validieren.</p>"},{"location":"zipFiles/#laden-von-zip-archiven","title":"Laden von Zip-Archiven","text":"<p>Zip-Dateien k\u00f6nnen \u00fcber den Ladedialog ausgew\u00e4hlt und importiert werden. CityDoctor durchsucht die Zip-Datei nach m\u00f6glichen CityGML Dateien</p>"},{"location":"zipFiles/#zip-eintrag-manager","title":"Zip-Eintrag Manager","text":"<p>Nachdem CityDoctor erfolgreich ein Zip-Archiv importiert hat, wird der Zip-Eintrag Manager angezeigt. Der Zip-Eintrag Manager hat folgende Schaltfl\u00e4chen:</p> <ol> <li>Modell anzeigen: Zeigt das Stadtmodell der ausgew\u00e4hlten, entpackten Datei im Hauptfenster von CityDoctor.</li> <li>Datei entpacken: Entpackt die ausgew\u00e4hlte Datei.</li> <li>Fehlerstatistik anzeigen: Zeigt die Fehlerstatistik der ausgew\u00e4hlten Datei. Nur verf\u00fcgbar bei validierten Dateien.</li> <li>Alle Dateien entpacken: Entpackt alle Dateien im Archiv.</li> <li>Alle Dateien pr\u00fcfen: \u00d6ffnet den Check-Dialog f\u00fcr die Batch-Validierung aller Dateien. Siehe Validierung f\u00fcr mehr Informationen.</li> <li>Validierungsergebnisse exportieren: Erm\u00f6glicht das Speichern der Validierungsberichte. Verf\u00fcgbar nachdem mindestens eine Datei validiert wurde.</li> </ol> <p></p> <p>Der aktuelle Status der Dateien wird mithilfe eines Farbcodes angezeigt:</p> <ul> <li>Komprimiert (Schwarz): Eine komprimierte Datei ist noch 'gezippt'.</li> <li>Entpackt (Blau): Eine entpackte Datei wurde erfolgreich in den Arbeitsspeicher geladen.</li> <li>Leeres Modell (Grau): Eine entpackte Datei, welche kein Stadtmodell oder ein Stadtmodell ohne Features beinhaltet.</li> <li>Fehlerhafte Datei (Dunkelrot): Eine Datei, welche nicht erfolgreich entpackt werden konnte. M\u00f6gliche Ursachen sind fehlerhafte CityGml Dateien, Modelle die zu gro\u00df f\u00fcr den verf\u00fcgbaren Arbeitsspeicher sind oder Probleme beim Einlesen der Datei. Der genaue Grund wird in den Metadaten angezeigt.</li> <li>Validierte Dateien mit / ohne Fehlern (Hellrot bzw. Gr\u00fcn)</li> </ul> <p>Note</p> <p>Das originale Zip-Archiv wird nicht ver\u00e4ndert, entpackte Dateien sind Kopien.</p>"},{"location":"zipFiles/#validierung","title":"Validierung","text":""},{"location":"zipFiles/#validierung-einzelner-dateien","title":"Validierung einzelner Dateien","text":"<p>Entpackte Dateien k\u00f6nnen \u00fcber das CityDoctor Hauptfenster validiert werden. Das jeweils letzte Ergebnis der Validierung von jeder Datei wird hierbei im Arbeitsspeicher behalten, bis CityDoctor geschlossen oder ein neues Zip-Archiv geladen wird.</p>"},{"location":"zipFiles/#batch-validierung","title":"Batch Validierung","text":"<p>Die \"Alle Dateien pr\u00fcfen\" Schaltfl\u00e4che \u00f6ffnet die Einstellungen f\u00fcr die Batch-Validierung. Sie kann ohne vorheriges entpacken der Dateien durchgef\u00fchrt werden und verf\u00fcgt \u00fcber zwei Vorgehensweisen:</p>"},{"location":"zipFiles/#standardmodus","title":"Standardmodus","text":"<p>Der Standardmodus f\u00fchrt die Validierung \u00fcber alle Dateien im Archiv aus. Komprimierte Dateien werden hierbei automatisch entpackt. Wie bei der Individuellen Validierung werden die Ergebnisse im Arbeitsspeicher gehalten und k\u00f6nnen mit dem CityDoctor inspiziert werden.</p>"},{"location":"zipFiles/#niedriger-arbeitsspeicherverbrauchsmodus-datenstream-modus","title":"Niedriger Arbeitsspeicherverbrauchsmodus (Datenstream Modus)","text":"<p>In diesem Modus werden Datenstreams genutzt, um die Features der Stadtmodelle einzeln einzulesen und zu validieren. Dies reduziert den ben\u00f6tigten Arbeitsspeicher, da die Dateien zur \u00fcberpr\u00fcfung nicht entpackt werden m\u00fcssen. Dies bedeutet jedoch auch, dass der Status der Dateien unver\u00e4ndert bleibt. Die Ergebnisse werden in Validierungsberichten gespeichert und k\u00f6nnen nicht in CityDoctor inspiziert werden.</p>"}]}
\ No newline at end of file \ No newline at end of file
...@@ -9,17 +9,18 @@ ...@@ -9,17 +9,18 @@
<link href="../geometric/" rel="prev"/> <link href="../geometric/" rel="prev"/>
<link href="../R_GE_R_TOO_FEW_POINTS/" rel="next"/> <link href="../R_GE_R_TOO_FEW_POINTS/" rel="next"/>
<link href="../img/citydoctor_logo.png" rel="icon"/> <link href="../img/citydoctor_logo.png" rel="icon"/>
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.34" name="generator"/> <meta content="mkdocs-1.4.2, mkdocs-material-9.0.6" name="generator"/>
<title>Semantische Anforderungen - CityDoctor2</title> <title>Semantische Anforderungen - CityDoctor2</title>
<link href="../assets/stylesheets/main.35f28582.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.558e4712.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.2505c338.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/> <link href="https://unpkg.com/mermaid/dist/mermaid.css" rel="stylesheet"/>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head> </head>
<body data-md-color-accent="indigo" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr"> <body data-md-color-accent="" data-md-color-primary="red" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/> <input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label> <label class="md-overlay" for="__drawer"></label>
...@@ -30,13 +31,13 @@ ...@@ -30,13 +31,13 @@
</div> </div>
<div data-md-component="announce"> <div data-md-component="announce">
</div> </div>
<header class="md-header md-header--shadow" data-md-component="header"> <header class="md-header" data-md-component="header">
<nav aria-label="Kopfzeile" class="md-header__inner md-grid"> <nav aria-label="Kopfzeile" class="md-header__inner md-grid">
<a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-header__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
<label class="md-header__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label> </label>
<div class="md-header__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis"> <div class="md-header__ellipsis">
...@@ -55,39 +56,38 @@ ...@@ -55,39 +56,38 @@
</div> </div>
</div> </div>
<form class="md-header__option" data-md-component="palette"> <form class="md-header__option" data-md-component="palette">
<input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/> <input aria-label="Dunkelmodus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="red" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Dunkelmodus verwenden"> <label class="md-header__button md-icon" for="__palette_2" hidden="" title="Dunkelmodus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
<input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/> <input aria-label="Hellen Modus verwenden" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Hellen Modus verwenden"> <label class="md-header__button md-icon" for="__palette_1" hidden="" title="Hellen Modus verwenden">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label> </label>
</form> </form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option"> <div class="md-header__option">
<div class="md-select"> <div class="md-select">
<button aria-label="Sprache wechseln" class="md-header__button md-icon"> <button aria-label="Sprache wechseln" class="md-header__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"></path></svg>
</button> </button>
<div class="md-select__inner"> <div class="md-select__inner">
<ul class="md-select__list"> <ul class="md-select__list">
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="../None" hreflang="de"> <a class="md-select__link" href=".." hreflang="de">
Deutsch Deutsch
</a> </a>
</li> </li>
<li class="md-select__item"> <li class="md-select__item">
<a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en"> <a class="md-select__link" href="https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/en/" hreflang="en">
English English
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<label class="md-header__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label> </label>
<div class="md-search" data-md-component="search" role="dialog"> <div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label> <label class="md-search__overlay" for="__search"></label>
...@@ -95,17 +95,17 @@ ...@@ -95,17 +95,17 @@
<form class="md-search__form" name="search"> <form class="md-search__form" name="search">
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/> <input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search"> <label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label> </label>
<nav aria-label="Suche" class="md-search__options"> <nav aria-label="Suche" class="md-search__options">
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset"> <button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button> </button>
</nav> </nav>
</form> </form>
<div class="md-search__output"> <div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0"> <div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result"> <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta"> <div class="md-search-result__meta">
Suche wird initialisiert Suche wird initialisiert
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="md-header__source"> <div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -137,14 +137,14 @@ ...@@ -137,14 +137,14 @@
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0"> <nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2"> <a aria-label="CityDoctor2" class="md-nav__button md-logo" data-md-component="logo" href=".." title="CityDoctor2">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path></svg> <svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a> </a>
CityDoctor2 CityDoctor2
</label> </label>
<div class="md-nav__source"> <div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository"> <a class="md-source" data-md-component="source" href="https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2" title="Zum Repository">
<div class="md-source__icon md-icon"> <div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg> <svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div> </div>
<div class="md-source__repository"> <div class="md-source__repository">
CityDoctor2 CityDoctor2
...@@ -153,123 +153,93 @@ ...@@ -153,123 +153,93 @@
</div> </div>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex=""> <label aria-expanded="true" class="md-nav__link" for="__nav_1" tabindex="0">
<span class="md-ellipsis"> CityDoctor2
CityDoctor2 <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1"> <nav aria-label="CityDoctor2" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1"> <label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
CityDoctor2 CityDoctor2
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href=".."> <a class="md-nav__link" href="..">
<span class="md-ellipsis"> Über CityDoctor2
Über CityDoctor2 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requiredSoftware/"> <a class="md-nav__link" href="../requiredSoftware/">
<span class="md-ellipsis"> Installation
Installation </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../firstRun/"> <a class="md-nav__link" href="../firstRun/">
<span class="md-ellipsis"> Erster Start
Erster Start </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../userInterface/"> <a class="md-nav__link" href="../userInterface/">
<span class="md-ellipsis"> Nutzeroberfläche
Nutzeroberfläche </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../zipFiles/"> <a class="md-nav__link" href="../zipFiles/">
<span class="md-ellipsis"> Zip Dateien
Zip Dateien </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../validationPlan/"> <a class="md-nav__link" href="../validationPlan/">
<span class="md-ellipsis"> Prüfplan
Prüfplan </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../qual_ade/"> <a class="md-nav__link" href="../qual_ade/">
<span class="md-ellipsis"> Quality-ADE
Quality-ADE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested"> <li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1_8" type="checkbox"/> <input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8" id="__nav_1_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8" id="__nav_1_8_label" tabindex="0"> <label aria-expanded="true" class="md-nav__link" for="__nav_1_8" tabindex="0">
<span class="md-ellipsis"> Anforderungen
Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="true" aria-labelledby="__nav_1_8_label" class="md-nav" data-md-level="2"> <nav aria-label="Anforderungen" class="md-nav" data-md-level="2">
<label class="md-nav__title" for="__nav_1_8"> <label class="md-nav__title" for="__nav_1_8">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Anforderungen Anforderungen
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../basic/"> <a class="md-nav__link" href="../basic/">
<span class="md-ellipsis"> Grundbegriffe
Grundbegriffe </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../requirements/"> <a class="md-nav__link" href="../requirements/">
<span class="md-ellipsis"> Übersicht
Übersicht </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../schemaRequirements/"> <a class="md-nav__link" href="../schemaRequirements/">
<span class="md-ellipsis"> Schemaanforderungen
Schemaanforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../geometric/"> <a class="md-nav__link" href="../geometric/">
<span class="md-ellipsis"> Geometrische Anforderungen
Geometrische Anforderungen </a>
</span>
</a>
</li> </li>
<li class="md-nav__item md-nav__item--active"> <li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<label class="md-nav__link md-nav__link--active" for="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<a class="md-nav__link md-nav__link--active" href="./"> <a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis"> Semantische Anforderungen
Semantische Anforderungen </a>
</span>
</a>
<nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary"> <nav aria-label="Inhaltsverzeichnis" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc"> <label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
...@@ -278,32 +248,24 @@ ...@@ -278,32 +248,24 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#schematron"> <a class="md-nav__link" href="#schematron">
<span class="md-ellipsis"> Schematron
Schematron </a>
</span>
</a>
<nav aria-label="Schematron" class="md-nav"> <nav aria-label="Schematron" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#citydoctor-3130"> <a class="md-nav__link" href="#citydoctor-3130">
<span class="md-ellipsis"> CityDoctor &gt;= 3.13.0
CityDoctor &gt;= 3.13.0 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#citydoctor-3130_1"> <a class="md-nav__link" href="#citydoctor-3130_1">
<span class="md-ellipsis"> CityDoctor &lt; 3.13.0
CityDoctor &lt; 3.13.0 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#fehlerformat"> <a class="md-nav__link" href="#fehlerformat">
<span class="md-ellipsis"> Fehlerformat
Fehlerformat </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -312,165 +274,121 @@ ...@@ -312,165 +274,121 @@
</nav> </nav>
</li> </li>
<li class="md-nav__item md-nav__item--nested"> <li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1_8_6" type="checkbox"/> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1_8_6" id="__nav_1_8_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_1_8_6" id="__nav_1_8_6_label" tabindex="0"> <label aria-expanded="false" class="md-nav__link" for="__nav_1_8_6" tabindex="0">
<span class="md-ellipsis"> Details
Details <span class="md-nav__icon md-icon"></span>
</span>
<span class="md-nav__icon md-icon"></span>
</label> </label>
<nav aria-expanded="false" aria-labelledby="__nav_1_8_6_label" class="md-nav" data-md-level="3"> <nav aria-label="Details" class="md-nav" data-md-level="3">
<label class="md-nav__title" for="__nav_1_8_6"> <label class="md-nav__title" for="__nav_1_8_6">
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
Details Details
</label> </label>
<ul class="md-nav__list" data-md-scrollfix=""> <ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/"> <a class="md-nav__link" href="../R_GE_R_TOO_FEW_POINTS/">
<span class="md-ellipsis"> R_TOO_FEW_POINTS
R_TOO_FEW_POINTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/"> <a class="md-nav__link" href="../R_GE_R_CONSECUTIVE_POINTS_SAME/">
<span class="md-ellipsis"> R_CONSECUTIVE_POINTS_SAME
R_CONSECUTIVE_POINTS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_R_NOT_CLOSED/">
<span class="md-ellipsis"> R_RING_NOT_CLOSED
R_RING_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_R_SELF_INTERSECTION/">
<span class="md-ellipsis"> R_RING_SELF_INTERSECTION
R_RING_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/"> <a class="md-nav__link" href="../R_GE_R_COLLAPSED_TO_LINE/">
<span class="md-ellipsis"> R_COLLAPSED_TO_LINE
R_COLLAPSED_TO_LINE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/"> <a class="md-nav__link" href="../R_GE_P_INTERSECTING_RINGS/">
<span class="md-ellipsis"> P_INTERSECTING_RINGS
P_INTERSECTING_RINGS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_NON_PLANAR/"> <a class="md-nav__link" href="../R_GE_P_NON_PLANAR/">
<span class="md-ellipsis"> P_NON_PLANAR
P_NON_PLANAR </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/"> <a class="md-nav__link" href="../R_GE_P_INTERIOR_DISCONNECTED/">
<span class="md-ellipsis"> P_INTERIOR_DISCONNECTED
P_INTERIOR_DISCONNECTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/"> <a class="md-nav__link" href="../R_GE_P_HOLE_OUTSIDE/">
<span class="md-ellipsis"> P_HOLE_OUTSIDE
P_HOLE_OUTSIDE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/"> <a class="md-nav__link" href="../R_GE_P_INNER_RINGS_NESTED/">
<span class="md-ellipsis"> P_INNER_RINGS_NESTED
P_INNER_RINGS_NESTED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/"> <a class="md-nav__link" href="../R_GE_P_ORIENTATION_RINGS_SAME/">
<span class="md-ellipsis"> P_ORIENTATION_RINGS_SAME
P_ORIENTATION_RINGS_SAME </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_MS/"> <a class="md-nav__link" href="../R_GE_MS/">
<span class="md-ellipsis"> MULTI_SURFACE
MULTI_SURFACE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/"> <a class="md-nav__link" href="../R_GE_S_TOO_FEW_POLYGONS/">
<span class="md-ellipsis"> S_TOO_FEW_POLYGONS
S_TOO_FEW_POLYGONS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/"> <a class="md-nav__link" href="../R_GE_S_NOT_CLOSED/">
<span class="md-ellipsis"> S_NOT_CLOSED
S_NOT_CLOSED </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_VERTEX/">
<span class="md-ellipsis"> S_NON_MANIFOLD_VERTEX
S_NON_MANIFOLD_VERTEX </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/"> <a class="md-nav__link" href="../R_GE_S_NON_MANIFOLD_EDGE/">
<span class="md-ellipsis"> S_NON_MANIFOLD_EDGE
S_NON_MANIFOLD_EDGE </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/"> <a class="md-nav__link" href="../R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/">
<span class="md-ellipsis"> S_MULTIPLE_CONNECTED_COMPONENTS
S_MULTIPLE_CONNECTED_COMPONENTS </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/"> <a class="md-nav__link" href="../R_GE_S_SELF_INTERSECTION/">
<span class="md-ellipsis"> S_SELF_INTERSECTION
S_SELF_INTERSECTION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_POLYGON_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_POLYGON_WRONG_ORIENTATION
S_POLYGON_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/"> <a class="md-nav__link" href="../R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/">
<span class="md-ellipsis"> S_ALL_POLYGONS_WRONG_ORIENTATION
S_ALL_POLYGONS_WRONG_ORIENTATION </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="../R_GE_SO/"> <a class="md-nav__link" href="../R_GE_SO/">
<span class="md-ellipsis"> SOLID
SOLID </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -497,32 +415,24 @@ ...@@ -497,32 +415,24 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix=""> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#schematron"> <a class="md-nav__link" href="#schematron">
<span class="md-ellipsis"> Schematron
Schematron </a>
</span>
</a>
<nav aria-label="Schematron" class="md-nav"> <nav aria-label="Schematron" class="md-nav">
<ul class="md-nav__list"> <ul class="md-nav__list">
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#citydoctor-3130"> <a class="md-nav__link" href="#citydoctor-3130">
<span class="md-ellipsis"> CityDoctor &gt;= 3.13.0
CityDoctor &gt;= 3.13.0 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#citydoctor-3130_1"> <a class="md-nav__link" href="#citydoctor-3130_1">
<span class="md-ellipsis"> CityDoctor &lt; 3.13.0
CityDoctor &lt; 3.13.0 </a>
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
<a class="md-nav__link" href="#fehlerformat"> <a class="md-nav__link" href="#fehlerformat">
<span class="md-ellipsis"> Fehlerformat
Fehlerformat </a>
</span>
</a>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -593,7 +503,6 @@ Nur in CityDoctor &lt; 3.13.0: ...@@ -593,7 +503,6 @@ Nur in CityDoctor &lt; 3.13.0:
* Um ein generisches Attribut mit dem Namen <code>measuredHeight</code> von dem nicht generischen Attribut zu unterscheiden ist im letzten Feld vorgesehen <code>true</code> einzutragen wenn es sich um ein generisches Attribut handelt ansonsten <code>false</code>. </p> * Um ein generisches Attribut mit dem Namen <code>measuredHeight</code> von dem nicht generischen Attribut zu unterscheiden ist im letzten Feld vorgesehen <code>true</code> einzutragen wenn es sich um ein generisches Attribut handelt ansonsten <code>false</code>. </p>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div> </div>
</main> </main>
<footer class="md-footer"> <footer class="md-footer">
...@@ -614,8 +523,8 @@ Nur in CityDoctor &lt; 3.13.0: ...@@ -614,8 +523,8 @@ Nur in CityDoctor &lt; 3.13.0:
<div class="md-dialog" data-md-component="dialog"> <div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script> <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "navigation.sections"], "search": "../assets/javascripts/workers/search.e5c33ebb.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
<script src="../assets/javascripts/bundle.56dfad97.min.js"></script> <script src="../assets/javascripts/bundle.51d95adb.min.js"></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script> <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -2,158 +2,197 @@ ...@@ -2,158 +2,197 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_MS/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_MS/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_HOLE_OUTSIDE/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_HOLE_OUTSIDE/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INNER_RINGS_NESTED/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INNER_RINGS_NESTED/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INTERIOR_DISCONNECTED/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INTERIOR_DISCONNECTED/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INTERSECTING_RINGS/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_INTERSECTING_RINGS/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_NON_PLANAR/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_NON_PLANAR/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_ORIENTATION_RINGS_SAME/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_P_ORIENTATION_RINGS_SAME/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_COLLAPSED_TO_LINE/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_COLLAPSED_TO_LINE/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_CONSECUTIVE_POINTS_SAME/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_CONSECUTIVE_POINTS_SAME/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_NOT_CLOSED/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_NOT_CLOSED/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_SELF_INTERSECTION/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_SELF_INTERSECTION/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_TOO_FEW_POINTS/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_R_TOO_FEW_POINTS/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_SO/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_SO/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_MULTIPLE_CONNECTED_COMPONENTS/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NON_MANIFOLD_EDGE/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NON_MANIFOLD_EDGE/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NON_MANIFOLD_VERTEX/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NON_MANIFOLD_VERTEX/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NOT_CLOSED/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_NOT_CLOSED/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_POLYGON_WRONG_ORIENTATION/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_POLYGON_WRONG_ORIENTATION/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_SELF_INTERSECTION/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_SELF_INTERSECTION/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_TOO_FEW_POLYGONS/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/R_GE_S_TOO_FEW_POLYGONS/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/basic/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/basic/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/firstRun/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/firstRun/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/geometric/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/geometric/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/qual_ade/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/qual_ade/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/requiredSoftware/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/requiredSoftware/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/requirements/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/requirements/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/schemaRequirements/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/schemaRequirements/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/semantic/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/semantic/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_about/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_about/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_data_model/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_data_model/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_overview/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_overview/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_sem/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_sem/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_topo/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_req_topo/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_terms/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/udt_terms/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/userInterface/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/userInterface/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/validationPlan/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/validationPlan/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
<url> <url>
<loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/zipFiles/</loc> <loc>https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/zipFiles/</loc>
<lastmod>2025-06-27</lastmod> <lastmod>2026-07-17</lastmod>
<changefreq>daily</changefreq>
</url> </url>
</urlset> </urlset>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment