html,body{min-height:100%;margin:0;padding:0}iframe{width:100%;border:none}input[type=text]{background-color:var(--search-bg);color:var(--text-color);border-color:var(--border-color)}kbd{background-color:var(--kbd-bg);border:1px solid var(--kbd-border);border-radius:4px;box-shadow:inset 0 -1px 0 var(--kbd-border);color:var(--kbd-color);display:inline-block;font-size:.9em;line-height:1;padding:.2em .4em;vertical-align:middle}:root{color-scheme:light dark;--menu-width: 270px;--reading-width: 72ch;--reading-width-max: 1200px;--page-padding: 0px;--gutter: 40px;--sidebar-inset: 1rem;--bg-color: #fff;--active-sitem-bg-color: rgba(0, 0, 0, 0.1);--text-color: #1f2328;--bold-color: #1f2328;--mermaid-bg: #fff;--link-color: #0066cc;--link-hover-color: #004499;--border-color: #e0e0e0;--heading-color: #222;--code-bg: #eee;--code-border: #d0d7de;--code-text: #24292f;--code-link-color: #0066cc;--menu-bg: #f6f8fa;--menu-text: #222;--menu-hover-bg: #e8ecf0;--menu-hover-text: #000;--gradient-shadow: rgba(0,0,0,0.08);--search-bg: #fff;--table-header-bg: #f8f8f8;--table-row-odd: #fff;--table-row-even: #fafafa;--table-border: #ddd;--blockquote-border: #e5e5e5;--blockquote-text: #666;--hr-border: #ccc;--kbd-bg: #fafbfc;--kbd-border: #c6cbd1;--kbd-color: #444d56}:root[data-theme=dark]{--bg-color: #0d1117;--active-sitem-bg-color: rgba(222, 222, 222, 0.3);--text-color: #e6edf3;--bold-color: #e6edf3;--mermaid-bg: #0d1117;--link-color: #58a6ff;--link-hover-color: #79b8ff;--border-color: #30363d;--heading-color: #e6edf3;--code-bg: #161b22;--code-text: #e6edf3;--code-border: #30363d;--code-link-color: #96d0ff;--menu-bg: #161b22;--menu-text: #e6edf3;--menu-hover-bg: rgba(56, 139, 253, 0.15);--menu-hover-text: #58a6ff;--gradient-shadow: rgba(0,0,0,0.2);--search-bg: #0d1117;--table-header-bg: #161b22;--table-row-odd: #161b22;--table-row-even: #0d1117;--table-border: #30363d;--blockquote-border: #3b434b;--blockquote-text: #8b949e;--hr-border: #30363d;--kbd-bg: #161b22;--kbd-border: #30363d;--kbd-color: #e6edf3}@media(prefers-color-scheme: dark){:root:not([data-theme=light]){--bg-color: #0d1117;--active-sitem-bg-color: rgba(222, 222, 222, 0.3);--text-color: #e6edf3;--bold-color: #e6edf3;--mermaid-bg: #0d1117;--link-color: #58a6ff;--link-hover-color: #79b8ff;--border-color: #30363d;--heading-color: #e6edf3;--code-bg: #161b22;--code-text: #e6edf3;--code-border: #30363d;--code-link-color: #96d0ff;--menu-bg: #161b22;--menu-text: #e6edf3;--menu-hover-bg: rgba(56, 139, 253, 0.15);--menu-hover-text: #58a6ff;--gradient-shadow: rgba(0,0,0,0.2);--search-bg: #0d1117;--table-header-bg: #161b22;--table-row-odd: #161b22;--table-row-even: #0d1117;--table-border: #30363d;--blockquote-border: #3b434b;--blockquote-text: #8b949e;--hr-border: #30363d;--kbd-bg: #161b22;--kbd-border: #30363d;--kbd-color: #e6edf3}}@media print{body{padding:.4in;font-size:12pt;color:#444}}div.twocolumn{column-count:2;column-gap:2.5em;column-rule:1px solid var(--border-color);margin-bottom:1.5em}div.twocolumn>*:last-child{margin-bottom:0}body{font-family:"Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--text-color);background-color:var(--menu-bg);margin:0;padding:var(--page-padding)}h1,h2,h3,h4,h5,h6{margin:2rem 0 .5rem;color:var(--heading-color)}h1,h2,h3{line-height:1.1}h1{font-size:2rem;margin-top:1.5rem;margin-bottom:.75rem}h2{font-size:1.5rem;margin-top:2.5rem;margin-bottom:.75rem}h3{font-size:1.25rem;margin-top:2rem;margin-bottom:.5rem}p,ul,ol,table,pre,dl{margin:0 0 20px}blockquote{border-left:1px solid var(--blockquote-border);margin:0;padding:0 0 0 20px;font-style:italic;color:var(--blockquote-text)}img{max-width:100%}small{font-size:11px}hr{border:0;background:var(--hr-border);height:1px;margin:0 0 20px}body div.wrapper{display:grid;grid-template-columns:var(--menu-width) minmax(var(--reading-width), var(--reading-width-max)) var(--menu-width);grid-template-rows:1fr auto;gap:0;width:100%;max-width:calc(var(--menu-width)*2 + var(--reading-width-max));height:calc(100vh - var(--page-padding)*2);margin:0 auto;position:relative}body div.wrapper::before{content:"";position:absolute;left:var(--menu-width);top:0;bottom:0;width:1px;background:var(--border-color);pointer-events:none}header{grid-column:1;grid-row:1;display:flex;flex-direction:column;background:var(--menu-bg);overflow:hidden;min-height:0;padding-left:var(--sidebar-inset)}header>h1,header>img,header>p,header>pagefind-modal-trigger,header>.header-actions,header>.downloads{padding-right:12px}section{grid-column:2;grid-row:1/span 2;background-color:var(--bg-color);overflow-y:auto;padding:0 var(--gutter)}section:focus{outline:none}#sitemap{grid-column:3;grid-row:1/span 2;border-left:1px solid var(--border-color);padding-left:1rem;padding-top:1.5rem;background:var(--menu-bg);width:100%;max-width:var(--menu-width);overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column}footer{grid-column:1;grid-row:2;height:auto;background:var(--menu-bg);border-top:1px solid var(--border-color);padding:12px 12px 8px 0;z-index:100;font-size:.8em;color:var(--blockquote-text)}header #theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;padding:.4em .5em;border:1px solid var(--border-color);border-radius:6px;background-color:var(--menu-bg);color:var(--menu-text);cursor:pointer;flex-shrink:0}header #theme-toggle-btn:hover{background-color:var(--menu-hover-bg)}header #theme-toggle-btn:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}section table{width:100%;border-color:var(--table-border);border-spacing:0;border-collapse:collapse}section table th{background-color:var(--table-header-bg);border-color:var(--table-border);color:var(--heading-color);padding:.25em .1em;text-align:left}section table td{border-color:var(--table-border);padding:.25em .1em;line-height:1em}section table tr:nth-child(odd){background-color:var(--table-row-odd)}section table tr:nth-child(even){background-color:var(--table-row-even)}.testlogs-note{color:var(--blockquote-text);font-size:.9em}.testlogs-summary th,.testlogs-summary td{padding:.35em 1em}.testlogs-summary th:first-child,.testlogs-summary td:first-child{padding-left:.2em}.testlogs-summary td.num,.testlogs-summary th.num{text-align:right;font-variant-numeric:tabular-nums}#testlogs summary{cursor:pointer}button.testlogs-toggle-all{font:inherit;padding:.3em .8em;border:1px solid var(--border-color);border-radius:6px;background:var(--menu-bg);color:var(--text-color);cursor:pointer}button.testlogs-toggle-all:hover{background:var(--menu-hover-bg)}#testlogs section{margin:.4em 0}#testlogs section>details>summary{padding:.15em 0}#testlogs .testlogs-failures{padding-left:1.5em}#testlogs .testlogs-failures>details{margin:.15em 0}#testlogs .testlogs-failures ul{margin:.3em 0 .7em;padding-left:1.5em}a{color:var(--link-color);text-decoration:none}a:hover{color:var(--link-hover-color);text-decoration:underline}section h2{padding-bottom:.3em;border-bottom:1px solid var(--border-color)}section>h1:first-child,section>h2:first-child,section>h3:first-child{margin-top:0}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}strong,b,strong em{color:var(--bold-color)}pre,code{background-color:var(--code-bg);border:1px solid var(--code-border);border-radius:6px;color:var(--code-text);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5}pre{padding:1em;overflow:auto}pre code,p code,li code{border:none}code{padding:.15em .4em}pre code{padding:0}code a{color:var(--code-link-color)}div.twocolumn ul{min-height:100%;margin:0}div.twocolumn ul li{break-inside:avoid;page-break-inside:avoid;-webkit-column-break-inside:avoid}div.threecolumn{column-count:3;column-rule:2px solid #add8e6;margin-bottom:1.5em}div.threecolumn ul{min-height:100%}div.threecolumn ul li{break-inside:avoid}div.code-toolbar{break-after:column}.badges{padding-top:1em}pagefind-modal-trigger{display:block;width:100%;--pf-font: inherit;--pf-text: var(--menu-text);--pf-background: var(--menu-bg);--pf-border: var(--border-color);--pf-border-focus: var(--link-color);--pf-hover: var(--menu-hover-bg)}header>pagefind-modal-trigger{width:calc(100% - 8px);margin:2px 6px 6px 2px}pagefind-modal{--pf-font: inherit;--pf-text: var(--text-color);--pf-background: var(--bg-color);--pf-border: var(--border-color);--pf-border-focus: var(--link-color);--pf-hover: var(--table-header-bg);--pf-skeleton: var(--table-header-bg);--pf-mark: var(--text-color)}.mobile-controls-bar{display:none}.breadcrumbs{font-size:.8em;color:var(--text-secondary, #6e7781);margin-top:1.5rem;margin-bottom:1.25em}.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0}.breadcrumbs li{display:flex;align-items:center}.breadcrumbs li::before{display:none}.breadcrumbs li:not(:first-child)::before{display:inline;content:"/";margin:0 .4em;color:var(--text-secondary, #6e7781);opacity:.5}.breadcrumbs a{color:var(--text-secondary, #6e7781);text-decoration:none}.breadcrumbs a:hover{color:var(--link-color);text-decoration:underline}.breadcrumbs li[aria-current=page]{color:var(--text-color)}.page-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:2.5em;padding-top:1em;padding-bottom:3em;border-top:1px solid var(--border-color, #d0d7de);font-size:.8em;color:var(--blockquote-text)}.page-meta .last-modified{color:var(--blockquote-text)}.page-meta .edit-on-github{color:var(--blockquote-text);text-decoration:none}.page-meta .edit-on-github:hover{color:var(--link-color);text-decoration:underline}header .header-actions{display:flex;flex-direction:row;align-items:center;gap:.5em;margin:0 0 1rem 2px}.view-project{display:inline-flex;align-items:center;gap:.5em;padding:.4em .75em;margin:0;border:1px solid var(--border-color);border-radius:6px;color:var(--menu-text);background-color:var(--menu-bg);text-decoration:none;font-size:.875em;align-self:flex-start;max-width:100%;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-project:hover{background-color:var(--menu-hover-bg);text-decoration:none}.view-project svg{flex-shrink:0}.left_toc a{color:var(--menu-text);display:block;padding:.2em .5em;border-radius:4px;text-align:left;word-wrap:break-word;overflow-wrap:break-word;transition:background-color .15s,color .15s}.left_toc a:hover,#sitemap a:hover{background-color:var(--menu-hover-bg);color:var(--menu-hover-text);text-decoration:none}.left_toc li.toc-active>a{color:var(--link-color);font-weight:600}.left_toc ul li{position:relative}.left_toc ul li::after{content:"";position:absolute;left:calc(-0.75em - 1px);top:0;bottom:0;width:2px;background:rgba(0,0,0,0);transition:background-color .15s}.left_toc ul li:hover::after{background:var(--menu-hover-text)}.left_toc ul li.toc-active::after{background:var(--link-color)}.left_toc ul{list-style:none;padding-left:.75em;margin-top:0;margin-bottom:0;margin-left:.5em;border-left:1px solid var(--border-color);word-wrap:break-word}.left_toc{padding-left:0;margin-left:0;border-left:none;width:100%}.left_toc::-webkit-scrollbar,#sitemap ul::-webkit-scrollbar{width:8px}.left_toc::-webkit-scrollbar-track,#sitemap ul::-webkit-scrollbar-track{background:var(--menu-bg)}.left_toc::-webkit-scrollbar-thumb,#sitemap ul::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.left_toc::-webkit-scrollbar-thumb:hover,#sitemap ul::-webkit-scrollbar-thumb:hover{background:var(--menu-hover-bg)}footer p{margin:0 0 .5em 0}#sitemap>ul li::before,#sitemap>ul li:last-child::before{content:none}.left_toc li{display:block;font-size:14px;font-weight:400;line-height:1.5}.left_toc>li{font-weight:500}#sitemap li>ul{list-style:none;padding-left:.6em;margin-top:0;margin-bottom:0;margin-left:.4em;border-left:1px solid var(--border-color);background:var(--menu-bg)}div.repolist ul li p{margin:0}#sitemap>*{opacity:1}#sitemap h1{font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--blockquote-text);margin:0 0 4px;padding-top:0;flex-shrink:0}#sitemap>ul{margin:0;padding:0;list-style:none;flex:1;overflow-y:auto;box-sizing:border-box}#sitemap li{display:block;position:relative;line-height:1.5}#sitemap li>a,#sitemap li>strong{display:block;padding:.25em .4em;border-radius:3px;overflow-wrap:break-word;word-wrap:break-word;transition:background-color .15s,color .15s}#sitemap ul a{line-height:1.5;font-size:11px;font-weight:400}#sitemap ul strong{line-height:1.5;font-size:11px;font-weight:400}#sitemap ul{list-style:none;padding-left:0;font-family:ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Consolas,monospace;font-size:11px}#sitemap>ul{padding-left:0}#sitemap a{color:var(--blockquote-text);text-decoration:none;word-wrap:break-word;overflow-wrap:break-word}.active-sitemap-item>a{color:var(--link-color);background-color:var(--menu-hover-bg);font-weight:600;opacity:1}#sitemap ul.sitemap{transition:opacity .2s}#sitemap a:hover{color:var(--text-color)}.language-mermaid{background:var(--mermaid-bg);padding:1em;margin:1em 0;border-radius:6px}.mermaid{background:var(--mermaid-bg)}[data-theme=dark] .mermaid,:root[data-theme=dark] .mermaid{--mermaid-theme: dark}@media(prefers-color-scheme: dark){:root:not([data-theme=light]) .mermaid{--mermaid-theme: dark}}.language-topojson,.language-geojson{background:var(--code-bg);padding:1em;margin:1em 0;border-radius:6px;border:1px solid var(--border-color)}.topojson-map,.geojson-map{background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;padding:10px;margin:1em 0;min-height:400px;width:100%;box-sizing:border-box}.topojson-map svg,.geojson-map svg{width:100%;height:auto}.hamburger-menu{display:none}#sitemap-backdrop{display:none}@media screen and (max-width: 1024px){body div.wrapper{grid-template-columns:var(--menu-width) minmax(0, var(--reading-width));max-width:calc(var(--menu-width) + var(--reading-width))}.hamburger-menu{flex-shrink:0;width:42px;height:42px;padding:0;font:inherit;background:var(--menu-bg);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:background-color .2s}.hamburger-menu:hover{background:var(--menu-hover-bg)}.hamburger-menu:focus-visible{outline:2px solid var(--link-color);outline-offset:2px}.hamburger-menu span{width:20px;height:2px;background:var(--text-color);position:relative;display:block}.hamburger-menu span::before,.hamburger-menu span::after{content:"";position:absolute;width:20px;height:2px;background:var(--text-color);left:0}.hamburger-menu span::before{top:-6px}.hamburger-menu span::after{top:6px}#sitemap-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9998}#sitemap-backdrop.show{display:block}#sitemap{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:90vw;background:var(--menu-bg);border:1px solid var(--border-color);border-left:none;box-shadow:4px 0 12px rgba(0,0,0,.15);z-index:9999;padding:15px;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;color:var(--text-color);display:none}#sitemap{background:var(--menu-bg);color:var(--text-color);border:1px solid var(--border-color)}#sitemap h1{font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--blockquote-text);margin:0 0 6px;padding-top:0;word-wrap:break-word}#sitemap a{color:var(--blockquote-text);font-size:11px;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}#sitemap a:hover{background-color:var(--menu-hover-bg);color:var(--menu-hover-text);text-decoration:none}#sitemap ul{background:rgba(0,0,0,0);word-wrap:break-word;overflow-wrap:break-word}#sitemap li{background:rgba(0,0,0,0);word-wrap:break-word;overflow-wrap:break-word}#sitemap.show{display:block}#sitemap>ul{position:static;top:auto;bottom:auto;width:100%;max-width:100%;height:auto;max-height:none;overflow-x:hidden;word-wrap:break-word}}@media screen and (max-width: 1200px){.main-container{margin-right:0}}@media screen and (min-width: 1025px){#sitemap{grid-area:sitemap;border-left:none;padding-left:var(--sidebar-inset);padding-top:1rem;min-height:0}#sitemap>ul{padding-right:12px}footer{padding-left:var(--sidebar-inset)}}@media screen and (min-width: 1025px)and (max-width: 1280px){body div.wrapper{--reserved-width: calc(var(--menu-width) + var(--reading-width-max));grid-template-columns:var(--menu-width) minmax(0, 1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"header  content" "sitemap content" "footer  content";margin-left:max(0px,(100% - var(--reserved-width))/2);margin-right:0;width:calc(100% - max(0px,(100% - var(--reserved-width))/2));max-width:100%}header{grid-area:header}footer{grid-area:footer}section{grid-area:content;padding-right:max(var(--gutter),100% - var(--gutter) - clamp(var(--reading-width),100% - var(--gutter)*2,var(--reading-width-max)))}}@media print,screen and (max-width: 1024px){body{display:flex;flex-direction:column;align-items:center;min-height:100%;height:auto;overflow-y:auto;background-color:var(--bg-color)}body div.wrapper{display:block;width:auto;height:auto;margin:0;grid-template-columns:none;grid-template-rows:none;gap:0}body div.wrapper::before{display:none}body .wrapper header{display:none}section{grid-column:auto;grid-row:auto;width:auto;margin-left:0;margin-right:0;padding:0;border:none}#sitemap{display:none}footer{grid-column:auto;grid-row:auto;position:static;width:auto;background:var(--bg-color)}div.highlight{background-color:rgba(0,0,0,0)}pre.highlight{background-color:var(--code-bg)}p,ul,ol,table,pre,dl{overflow:hidden}html body .wrapper{width:auto}body .wrapper section{width:auto;margin-left:0;margin-right:0;border:none}footer p{text-align:center}.mobile-controls-bar{display:flex;flex-direction:row;align-items:stretch;gap:8px;margin-top:5px;margin-bottom:1.5rem}.mobile-controls-bar .theme-toggle-btn{flex-shrink:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--menu-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);cursor:pointer;padding:0}.mobile-controls-bar .view-project{flex-shrink:0;width:42px;height:42px;justify-content:center;padding:0;align-self:auto}.mobile-controls-bar .view-project span{display:none}.mobile-controls-bar pagefind-modal-trigger{display:block;box-sizing:border-box;height:42px;overflow:hidden;flex:1;min-width:0;--pf-input-height: 42px}html body{padding:5px}html,body,body div.wrapper,body .wrapper section,section,.container,.main-content{width:auto;max-width:100vw;margin-left:0;margin-right:0;padding-left:5px;padding-right:5px;box-sizing:border-box}body .wrapper section pre{width:100%;max-width:calc(100vw - 20px);margin-left:0;margin-right:0;box-sizing:border-box;overflow-x:auto;white-space:pre;word-wrap:normal;-webkit-overflow-scrolling:touch}body .wrapper section .highlight pre,body .wrapper section div.code-toolbar pre{width:100%;max-width:100%}section table{width:auto;max-width:100%;table-layout:auto;word-wrap:break-word;overflow-wrap:break-word}section table th,section table td{width:auto;min-width:0;padding:.2em 2px;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}}#toc-desktop{display:none}@media screen and (min-width: 1281px){body div.wrapper{--reserved-width: calc(var(--menu-width) * 2 + var(--reading-width-max));grid-template-columns:var(--menu-width) minmax(var(--reading-width), var(--reading-width-max)) minmax(var(--menu-width), 1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"header  content toc" "sitemap content toc" "footer  content toc";margin-left:max(0px,(100% - var(--reserved-width))/2);margin-right:0;width:calc(100% - max(0px,(100% - var(--reserved-width))/2));max-width:100%}header{grid-area:header}section{grid-area:content}footer{grid-area:footer}#toc-desktop{grid-area:toc;display:flex;flex-direction:column;border-left:1px solid var(--border-color);padding-left:1rem;padding-top:1.5rem;background:var(--menu-bg);width:100%;overflow:hidden;box-sizing:border-box;min-height:0}#toc-desktop>.tocheader{margin:0 0 8px;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding-bottom:8px;color:var(--blockquote-text);flex-shrink:0}#toc-desktop .left_toc{flex:1 1 0;width:100%;overflow-y:auto;overflow-x:hidden;min-height:0;text-align:left;color:var(--menu-text);box-sizing:border-box;padding-right:max(0px,100% - var(--menu-width) + 1rem)}body div.wrapper.no-toc{grid-template-columns:var(--menu-width) minmax(0, 1fr);grid-template-areas:"header  content" "sitemap content" "footer  content"}.no-toc #toc-desktop{display:none}.no-toc section{padding-right:max(var(--gutter),100% - var(--gutter) - clamp(var(--reading-width),100% - var(--gutter)*2,var(--reading-width-max)))}}