From 3d39d991e4cd2d515d6d2cde2cc82a4680b633d4 Mon Sep 17 00:00:00 2001
From: bennibbelink <79653949+bennibbelink@users.noreply.github.com>
Date: Wed, 18 Sep 2024 22:00:01 -0400
Subject: [PATCH 1/3] add doxygen-awesome.css to doxygen build
---
doc/CMakeLists.txt | 2 +
doc/doxy.conf.in | 8 +-
doc/doxygen-awesome.css | 2681 +++++++++++++++++++++++++++++++++++++++
doc/logo2_bike.gif | Bin 0 -> 41942 bytes
docker/Dockerfile | 10 +-
src/cycamore.h | 11 +
6 files changed, 2705 insertions(+), 7 deletions(-)
create mode 100644 doc/doxygen-awesome.css
create mode 100644 doc/logo2_bike.gif
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 9c21d90b80..c360ffbf53 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -8,6 +8,8 @@ IF(DOXYGEN_FOUND)
SET(DOXYGEN_SOURCE_DIR ${CYCAMORE_SOURCE_DIR})
SET(DOXYGEN_INPUT ${DOC_INPUT_DIR}/doxygen.conf)
SET(DOXYGEN_OUTPUT ${DOC_OUTPUT_DIR}/html/index.html)
+ SET(PROJECT_LOGO "${DOC_INPUT_DIR}/logo2_bike.gif")
+ SET(DOXYGEN_STYLESHEET_FILE "${DOC_INPUT_DIR}/doxygen-awesome.css")
FIND_PACKAGE(HTMLHelp)
diff --git a/doc/doxy.conf.in b/doc/doxy.conf.in
index 4aa226f3de..3810d045d0 100644
--- a/doc/doxy.conf.in
+++ b/doc/doxy.conf.in
@@ -6,6 +6,12 @@ OUTPUT_LANGUAGE = @DOXYGEN_LANGUAGE@
INPUT_ENCODING =
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
+HTML_EXTRA_STYLESHEET = @DOXYGEN_STYLESHEET_FILE@
+PROJECT_LOGO = @PROJECT_LOGO@
+GENERATE_TREEVIEW = YES
+DISABLE_INDEX = NO
+FULL_SIDEBAR = NO
+HTML_COLORSTYLE = LIGHT
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
@@ -93,9 +99,7 @@ HHC_LOCATION = @HTML_HELP_COMPILER@
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
-DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
GENERATE_LATEX = @DOXYGEN_LATEX@
LATEX_OUTPUT = refman-latex
diff --git a/doc/doxygen-awesome.css b/doc/doxygen-awesome.css
new file mode 100644
index 0000000000..99ead768b3
--- /dev/null
+++ b/doc/doxygen-awesome.css
@@ -0,0 +1,2681 @@
+/**
+
+Doxygen Awesome
+https://github.com/jothepro/doxygen-awesome-css
+
+MIT License
+
+Copyright (c) 2021 - 2023 jothepro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+*/
+
+html {
+ /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
+ --primary-color: #1779c4;
+ --primary-dark-color: #335c80;
+ --primary-light-color: #70b1e9;
+
+ /* page base colors */
+ --page-background-color: #ffffff;
+ --page-foreground-color: #2f4153;
+ --page-secondary-foreground-color: #6f7e8e;
+
+ /* color for all separators on the website: hr, borders, ... */
+ --separator-color: #dedede;
+
+ /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
+ --border-radius-large: 8px;
+ --border-radius-small: 4px;
+ --border-radius-medium: 6px;
+
+ /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
+ --spacing-small: 5px;
+ --spacing-medium: 10px;
+ --spacing-large: 16px;
+
+ /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
+
+ --odd-color: rgba(0,0,0,.028);
+
+ /* font-families. will affect all text on the website
+ * font-family: the normal font for text, headlines, menus
+ * font-family-monospace: used for preformatted text in memtitle, code, fragments
+ */
+ --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
+ --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
+
+ /* font sizes */
+ --page-font-size: 15.6px;
+ --navigation-font-size: 14.4px;
+ --toc-font-size: 13.4px;
+ --code-font-size: 14px; /* affects code, fragment */
+ --title-font-size: 22px;
+
+ /* content text properties. These only affect the page content, not the navigation or any other ui elements */
+ --content-line-height: 27px;
+ /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
+ --content-maxwidth: 1050px;
+ --table-line-height: 24px;
+ --toc-sticky-top: var(--spacing-medium);
+ --toc-width: 200px;
+ --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
+
+ /* colors for various content boxes: @warning, @note, @deprecated @bug */
+ --warning-color: #faf3d8;
+ --warning-color-dark: #f3a600;
+ --warning-color-darker: #5f4204;
+ --note-color: #e4f3ff;
+ --note-color-dark: #1879C4;
+ --note-color-darker: #274a5c;
+ --todo-color: #e4dafd;
+ --todo-color-dark: #5b2bdd;
+ --todo-color-darker: #2a0d72;
+ --deprecated-color: #ecf0f3;
+ --deprecated-color-dark: #5b6269;
+ --deprecated-color-darker: #43454a;
+ --bug-color: #f8d1cc;
+ --bug-color-dark: #b61825;
+ --bug-color-darker: #75070f;
+ --invariant-color: #d8f1e3;
+ --invariant-color-dark: #44b86f;
+ --invariant-color-darker: #265532;
+
+ /* blockquote colors */
+ --blockquote-background: #f8f9fa;
+ --blockquote-foreground: #636568;
+
+ /* table colors */
+ --tablehead-background: #f1f1f1;
+ --tablehead-foreground: var(--page-foreground-color);
+
+ /* menu-display: block | none
+ * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
+ * `GENERATE_TREEVIEW` MUST be enabled!
+ */
+ --menu-display: block;
+
+ --menu-focus-foreground: var(--page-background-color);
+ --menu-focus-background: var(--primary-color);
+ --menu-selected-background: rgba(0,0,0,.05);
+
+
+ --header-background: var(--page-background-color);
+ --header-foreground: var(--page-foreground-color);
+
+ /* searchbar colors */
+ --searchbar-background: var(--side-nav-background);
+ --searchbar-foreground: var(--page-foreground-color);
+
+ /* searchbar size
+ * (`searchbar-width` is only applied on screens >= 768px.
+ * on smaller screens the searchbar will always fill the entire screen width) */
+ --searchbar-height: 33px;
+ --searchbar-width: 210px;
+ --searchbar-border-radius: var(--searchbar-height);
+
+ /* code block colors */
+ --code-background: #f5f5f5;
+ --code-foreground: var(--page-foreground-color);
+
+ /* fragment colors */
+ --fragment-background: #F8F9FA;
+ --fragment-foreground: #37474F;
+ --fragment-keyword: #bb6bb2;
+ --fragment-keywordtype: #8258b3;
+ --fragment-keywordflow: #d67c3b;
+ --fragment-token: #438a59;
+ --fragment-comment: #969696;
+ --fragment-link: #5383d6;
+ --fragment-preprocessor: #46aaa5;
+ --fragment-linenumber-color: #797979;
+ --fragment-linenumber-background: #f4f4f5;
+ --fragment-linenumber-border: #e3e5e7;
+ --fragment-lineheight: 20px;
+
+ /* sidebar navigation (treeview) colors */
+ --side-nav-background: #fbfbfb;
+ --side-nav-foreground: var(--page-foreground-color);
+ --side-nav-arrow-opacity: 0;
+ --side-nav-arrow-hover-opacity: 0.9;
+
+ --toc-background: var(--side-nav-background);
+ --toc-foreground: var(--side-nav-foreground);
+
+ /* height of an item in any tree / collapsible table */
+ --tree-item-height: 30px;
+
+ --memname-font-size: var(--code-font-size);
+ --memtitle-font-size: 18px;
+
+ --webkit-scrollbar-size: 7px;
+ --webkit-scrollbar-padding: 4px;
+ --webkit-scrollbar-color: var(--separator-color);
+
+ --animation-duration: .12s
+}
+
+@media screen and (max-width: 767px) {
+ html {
+ --page-font-size: 16px;
+ --navigation-font-size: 16px;
+ --toc-font-size: 15px;
+ --code-font-size: 15px; /* affects code, fragment */
+ --title-font-size: 22px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ html:not(.light-mode) {
+ color-scheme: dark;
+
+ --primary-color: #1982d2;
+ --primary-dark-color: #86a9c4;
+ --primary-light-color: #4779ac;
+
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
+
+ --odd-color: rgba(100,100,100,.06);
+
+ --menu-selected-background: rgba(0,0,0,.4);
+
+ --page-background-color: #1C1D1F;
+ --page-foreground-color: #d2dbde;
+ --page-secondary-foreground-color: #859399;
+ --separator-color: #38393b;
+ --side-nav-background: #252628;
+
+ --code-background: #2a2c2f;
+
+ --tablehead-background: #2a2c2f;
+
+ --blockquote-background: #222325;
+ --blockquote-foreground: #7e8c92;
+
+ --warning-color: #3b2e04;
+ --warning-color-dark: #f1b602;
+ --warning-color-darker: #ceb670;
+ --note-color: #163750;
+ --note-color-dark: #1982D2;
+ --note-color-darker: #dcf0fa;
+ --todo-color: #2a2536;
+ --todo-color-dark: #7661b3;
+ --todo-color-darker: #ae9ed6;
+ --deprecated-color: #2e323b;
+ --deprecated-color-dark: #738396;
+ --deprecated-color-darker: #abb0bd;
+ --bug-color: #2e1917;
+ --bug-color-dark: #ad2617;
+ --bug-color-darker: #f5b1aa;
+ --invariant-color: #303a35;
+ --invariant-color-dark: #76ce96;
+ --invariant-color-darker: #cceed5;
+
+ --fragment-background: #282c34;
+ --fragment-foreground: #dbe4eb;
+ --fragment-keyword: #cc99cd;
+ --fragment-keywordtype: #ab99cd;
+ --fragment-keywordflow: #e08000;
+ --fragment-token: #7ec699;
+ --fragment-comment: #999999;
+ --fragment-link: #98c0e3;
+ --fragment-preprocessor: #65cabe;
+ --fragment-linenumber-color: #cccccc;
+ --fragment-linenumber-background: #35393c;
+ --fragment-linenumber-border: #1f1f1f;
+ }
+}
+
+/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
+html.dark-mode {
+ color-scheme: dark;
+
+ --primary-color: #1982d2;
+ --primary-dark-color: #86a9c4;
+ --primary-light-color: #4779ac;
+
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
+
+ --odd-color: rgba(100,100,100,.06);
+
+ --menu-selected-background: rgba(0,0,0,.4);
+
+ --page-background-color: #1C1D1F;
+ --page-foreground-color: #d2dbde;
+ --page-secondary-foreground-color: #859399;
+ --separator-color: #38393b;
+ --side-nav-background: #252628;
+
+ --code-background: #2a2c2f;
+
+ --tablehead-background: #2a2c2f;
+
+ --blockquote-background: #222325;
+ --blockquote-foreground: #7e8c92;
+
+ --warning-color: #3b2e04;
+ --warning-color-dark: #f1b602;
+ --warning-color-darker: #ceb670;
+ --note-color: #163750;
+ --note-color-dark: #1982D2;
+ --note-color-darker: #dcf0fa;
+ --todo-color: #2a2536;
+ --todo-color-dark: #7661b3;
+ --todo-color-darker: #ae9ed6;
+ --deprecated-color: #2e323b;
+ --deprecated-color-dark: #738396;
+ --deprecated-color-darker: #abb0bd;
+ --bug-color: #2e1917;
+ --bug-color-dark: #ad2617;
+ --bug-color-darker: #f5b1aa;
+ --invariant-color: #303a35;
+ --invariant-color-dark: #76ce96;
+ --invariant-color-darker: #cceed5;
+
+ --fragment-background: #282c34;
+ --fragment-foreground: #dbe4eb;
+ --fragment-keyword: #cc99cd;
+ --fragment-keywordtype: #ab99cd;
+ --fragment-keywordflow: #e08000;
+ --fragment-token: #7ec699;
+ --fragment-comment: #999999;
+ --fragment-link: #98c0e3;
+ --fragment-preprocessor: #65cabe;
+ --fragment-linenumber-color: #cccccc;
+ --fragment-linenumber-background: #35393c;
+ --fragment-linenumber-border: #1f1f1f;
+}
+
+body {
+ color: var(--page-foreground-color);
+ background-color: var(--page-background-color);
+ font-size: var(--page-font-size);
+}
+
+body, table, div, p, dl, #nav-tree .label, .title,
+.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
+.SelectItem, #MSearchField, .navpath li.navelem a,
+.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3 {
+ font-family: var(--font-family);
+}
+
+h1, h2, h3, h4, h5 {
+ margin-top: 1em;
+ font-weight: 600;
+ line-height: initial;
+}
+
+p, div, table, dl, p.reference, p.definition {
+ font-size: var(--page-font-size);
+}
+
+p.reference, p.definition {
+ color: var(--page-secondary-foreground-color);
+}
+
+a:link, a:visited, a:hover, a:focus, a:active {
+ color: var(--primary-color) !important;
+ font-weight: 500;
+ background: none;
+}
+
+a.anchor {
+ scroll-margin-top: var(--spacing-large);
+ display: block;
+}
+
+/*
+ Title and top navigation
+ */
+
+#top {
+ background: var(--header-background);
+ border-bottom: 1px solid var(--separator-color);
+}
+
+@media screen and (min-width: 768px) {
+ #top {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+
+#main-nav {
+ flex-grow: 5;
+ padding: var(--spacing-small) var(--spacing-medium);
+}
+
+#titlearea {
+ width: auto;
+ padding: var(--spacing-medium) var(--spacing-large);
+ background: none;
+ color: var(--header-foreground);
+ border-bottom: none;
+}
+
+@media screen and (max-width: 767px) {
+ #titlearea {
+ padding-bottom: var(--spacing-small);
+ }
+}
+
+#titlearea table tbody tr {
+ height: auto !important;
+}
+
+#projectname {
+ font-size: var(--title-font-size);
+ font-weight: 600;
+}
+
+#projectnumber {
+ font-family: inherit;
+ font-size: 60%;
+}
+
+#projectbrief {
+ font-family: inherit;
+ font-size: 80%;
+}
+
+#projectlogo {
+ vertical-align: middle;
+}
+
+#projectlogo img {
+ max-height: calc(var(--title-font-size) * 2);
+ margin-right: var(--spacing-small);
+}
+
+.sm-dox, .tabs, .tabs2, .tabs3 {
+ background: none;
+ padding: 0;
+}
+
+.tabs, .tabs2, .tabs3 {
+ border-bottom: 1px solid var(--separator-color);
+ margin-bottom: -1px;
+}
+
+.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
+ background: var(--page-secondary-foreground-color);
+}
+
+@media screen and (max-width: 767px) {
+ .sm-dox a span.sub-arrow {
+ background: var(--code-background);
+ }
+
+ #main-menu a.has-submenu span.sub-arrow {
+ color: var(--page-secondary-foreground-color);
+ border-radius: var(--border-radius-medium);
+ }
+
+ #main-menu a.has-submenu:hover span.sub-arrow {
+ color: var(--page-foreground-color);
+ }
+}
+
+@media screen and (min-width: 768px) {
+ .sm-dox li, .tablist li {
+ display: var(--menu-display);
+ }
+
+ .sm-dox a span.sub-arrow {
+ border-color: var(--header-foreground) transparent transparent transparent;
+ }
+
+ .sm-dox a:hover span.sub-arrow {
+ border-color: var(--menu-focus-foreground) transparent transparent transparent;
+ }
+
+ .sm-dox ul a span.sub-arrow {
+ border-color: transparent transparent transparent var(--page-foreground-color);
+ }
+
+ .sm-dox ul a:hover span.sub-arrow {
+ border-color: transparent transparent transparent var(--menu-focus-foreground);
+ }
+}
+
+.sm-dox ul {
+ background: var(--page-background-color);
+ box-shadow: var(--box-shadow);
+ border: 1px solid var(--separator-color);
+ border-radius: var(--border-radius-medium) !important;
+ padding: var(--spacing-small);
+ animation: ease-out 150ms slideInMenu;
+}
+
+@keyframes slideInMenu {
+ from {
+ opacity: 0;
+ transform: translate(0px, -2px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translate(0px, 0px);
+ }
+}
+
+.sm-dox ul a {
+ color: var(--page-foreground-color) !important;
+ background: var(--page-background-color);
+ font-size: var(--navigation-font-size);
+}
+
+.sm-dox>li>ul:after {
+ border-bottom-color: var(--page-background-color) !important;
+}
+
+.sm-dox>li>ul:before {
+ border-bottom-color: var(--separator-color) !important;
+}
+
+.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
+ font-size: var(--navigation-font-size) !important;
+ color: var(--menu-focus-foreground) !important;
+ text-shadow: none;
+ background-color: var(--menu-focus-background);
+ border-radius: var(--border-radius-small) !important;
+}
+
+.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
+ text-shadow: none;
+ background: transparent;
+ background-image: none !important;
+ color: var(--header-foreground) !important;
+ font-weight: normal;
+ font-size: var(--navigation-font-size);
+ border-radius: var(--border-radius-small) !important;
+}
+
+.sm-dox a:focus {
+ outline: auto;
+}
+
+.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
+ text-shadow: none;
+ font-weight: normal;
+ background: var(--menu-focus-background);
+ color: var(--menu-focus-foreground) !important;
+ border-radius: var(--border-radius-small) !important;
+ font-size: var(--navigation-font-size);
+}
+
+.tablist li.current {
+ border-radius: var(--border-radius-small);
+ background: var(--menu-selected-background);
+}
+
+.tablist li {
+ margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
+}
+
+.tablist a {
+ padding: 0 var(--spacing-large);
+}
+
+
+/*
+ Search box
+ */
+
+#MSearchBox {
+ height: var(--searchbar-height);
+ background: var(--searchbar-background);
+ border-radius: var(--searchbar-border-radius);
+ border: 1px solid var(--separator-color);
+ overflow: hidden;
+ width: var(--searchbar-width);
+ position: relative;
+ box-shadow: none;
+ display: block;
+ margin-top: 0;
+}
+
+/* until Doxygen 1.9.4 */
+.left img#MSearchSelect {
+ left: 0;
+ user-select: none;
+ padding-left: 8px;
+}
+
+/* Doxygen 1.9.5 */
+.left span#MSearchSelect {
+ left: 0;
+ user-select: none;
+ margin-left: 8px;
+ padding: 0;
+}
+
+.left #MSearchSelect[src$=".png"] {
+ padding-left: 0
+}
+
+.SelectionMark {
+ user-select: none;
+}
+
+.tabs .left #MSearchSelect {
+ padding-left: 0;
+}
+
+.tabs #MSearchBox {
+ position: absolute;
+ right: var(--spacing-medium);
+}
+
+@media screen and (max-width: 767px) {
+ .tabs #MSearchBox {
+ position: relative;
+ right: 0;
+ margin-left: var(--spacing-medium);
+ margin-top: 0;
+ }
+}
+
+#MSearchSelectWindow, #MSearchResultsWindow {
+ z-index: 9999;
+}
+
+#MSearchBox.MSearchBoxActive {
+ border-color: var(--primary-color);
+ box-shadow: inset 0 0 0 1px var(--primary-color);
+}
+
+#main-menu > li:last-child {
+ margin-right: 0;
+}
+
+@media screen and (max-width: 767px) {
+ #main-menu > li:last-child {
+ height: 50px;
+ }
+}
+
+#MSearchField {
+ font-size: var(--navigation-font-size);
+ height: calc(var(--searchbar-height) - 2px);
+ background: transparent;
+ width: calc(var(--searchbar-width) - 64px);
+}
+
+.MSearchBoxActive #MSearchField {
+ color: var(--searchbar-foreground);
+}
+
+#MSearchSelect {
+ top: calc(calc(var(--searchbar-height) / 2) - 11px);
+}
+
+#MSearchBox span.left, #MSearchBox span.right {
+ background: none;
+ background-image: none;
+}
+
+#MSearchBox span.right {
+ padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
+ position: absolute;
+ right: var(--spacing-small);
+}
+
+.tabs #MSearchBox span.right {
+ top: calc(calc(var(--searchbar-height) / 2) - 12px);
+}
+
+@keyframes slideInSearchResults {
+ from {
+ opacity: 0;
+ transform: translate(0, 15px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translate(0, 20px);
+ }
+}
+
+#MSearchResultsWindow {
+ left: auto !important;
+ right: var(--spacing-medium);
+ border-radius: var(--border-radius-large);
+ border: 1px solid var(--separator-color);
+ transform: translate(0, 20px);
+ box-shadow: var(--box-shadow);
+ animation: ease-out 280ms slideInSearchResults;
+ background: var(--page-background-color);
+}
+
+iframe#MSearchResults {
+ margin: 4px;
+}
+
+iframe {
+ color-scheme: normal;
+}
+
+@media (prefers-color-scheme: dark) {
+ html:not(.light-mode) iframe#MSearchResults {
+ filter: invert() hue-rotate(180deg);
+ }
+}
+
+html.dark-mode iframe#MSearchResults {
+ filter: invert() hue-rotate(180deg);
+}
+
+#MSearchResults .SRPage {
+ background-color: transparent;
+}
+
+#MSearchResults .SRPage .SREntry {
+ font-size: 10pt;
+ padding: var(--spacing-small) var(--spacing-medium);
+}
+
+#MSearchSelectWindow {
+ border: 1px solid var(--separator-color);
+ border-radius: var(--border-radius-medium);
+ box-shadow: var(--box-shadow);
+ background: var(--page-background-color);
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+}
+
+#MSearchSelectWindow a.SelectItem {
+ font-size: var(--navigation-font-size);
+ line-height: var(--content-line-height);
+ margin: 0 var(--spacing-small);
+ border-radius: var(--border-radius-small);
+ color: var(--page-foreground-color) !important;
+ font-weight: normal;
+}
+
+#MSearchSelectWindow a.SelectItem:hover {
+ background: var(--menu-focus-background);
+ color: var(--menu-focus-foreground) !important;
+}
+
+@media screen and (max-width: 767px) {
+ #MSearchBox {
+ margin-top: var(--spacing-medium);
+ margin-bottom: var(--spacing-medium);
+ width: calc(100vw - 30px);
+ }
+
+ #main-menu > li:last-child {
+ float: none !important;
+ }
+
+ #MSearchField {
+ width: calc(100vw - 110px);
+ }
+
+ @keyframes slideInSearchResultsMobile {
+ from {
+ opacity: 0;
+ transform: translate(0, 15px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translate(0, 20px);
+ }
+ }
+
+ #MSearchResultsWindow {
+ left: var(--spacing-medium) !important;
+ right: var(--spacing-medium);
+ overflow: auto;
+ transform: translate(0, 20px);
+ animation: ease-out 280ms slideInSearchResultsMobile;
+ width: auto !important;
+ }
+
+ /*
+ * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
+ */
+ label.main-menu-btn ~ #searchBoxPos1 {
+ top: 3px !important;
+ right: 6px !important;
+ left: 45px;
+ display: flex;
+ }
+
+ label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
+ margin-top: 0;
+ margin-bottom: 0;
+ flex-grow: 2;
+ float: left;
+ }
+}
+
+/*
+ Tree view
+ */
+
+#side-nav {
+ padding: 0 !important;
+ background: var(--side-nav-background);
+ min-width: 8px;
+ max-width: 50vw;
+}
+
+@media screen and (max-width: 767px) {
+ #side-nav {
+ display: none;
+ }
+
+ #doc-content {
+ margin-left: 0 !important;
+ }
+}
+
+#nav-tree {
+ background: transparent;
+ margin-right: 1px;
+}
+
+#nav-tree .label {
+ font-size: var(--navigation-font-size);
+}
+
+#nav-tree .item {
+ height: var(--tree-item-height);
+ line-height: var(--tree-item-height);
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#nav-tree .item > a:focus {
+ outline: none;
+}
+
+#nav-sync {
+ bottom: 12px;
+ right: 12px;
+ top: auto !important;
+ user-select: none;
+}
+
+#nav-tree .selected {
+ text-shadow: none;
+ background-image: none;
+ background-color: transparent;
+ position: relative;
+ color: var(--primary-color) !important;
+ font-weight: 500;
+}
+
+#nav-tree .selected::after {
+ content: "";
+ position: absolute;
+ top: 1px;
+ bottom: 1px;
+ left: 0;
+ width: 4px;
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
+ background: var(--primary-color);
+}
+
+
+#nav-tree a {
+ color: var(--side-nav-foreground) !important;
+ font-weight: normal;
+}
+
+#nav-tree a:focus {
+ outline-style: auto;
+}
+
+#nav-tree .arrow {
+ opacity: var(--side-nav-arrow-opacity);
+ background: none;
+}
+
+.arrow {
+ color: inherit;
+ cursor: pointer;
+ font-size: 45%;
+ vertical-align: middle;
+ margin-right: 2px;
+ font-family: serif;
+ height: auto;
+ text-align: right;
+}
+
+#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
+ opacity: var(--side-nav-arrow-hover-opacity);
+}
+
+#nav-tree .selected a {
+ color: var(--primary-color) !important;
+ font-weight: bolder;
+ font-weight: 600;
+}
+
+.ui-resizable-e {
+ width: 4px;
+ background: transparent;
+ box-shadow: inset -1px 0 0 0 var(--separator-color);
+}
+
+/*
+ Contents
+ */
+
+div.header {
+ border-bottom: 1px solid var(--separator-color);
+ background-color: var(--page-background-color);
+ background-image: none;
+}
+
+@media screen and (min-width: 1000px) {
+ #doc-content > div > div.contents,
+ .PageDoc > div.contents {
+ display: flex;
+ flex-direction: row-reverse;
+ flex-wrap: nowrap;
+ align-items: flex-start;
+ }
+
+ div.contents .textblock {
+ min-width: 200px;
+ flex-grow: 1;
+ }
+}
+
+div.contents, div.header .title, div.header .summary {
+ max-width: var(--content-maxwidth);
+}
+
+div.contents, div.header .title {
+ line-height: initial;
+ margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
+}
+
+div.header .summary {
+ margin: var(--spacing-medium) auto 0 auto;
+}
+
+div.headertitle {
+ padding: 0;
+}
+
+div.header .title {
+ font-weight: 600;
+ font-size: 225%;
+ padding: var(--spacing-medium) var(--spacing-large);
+ word-break: break-word;
+}
+
+div.header .summary {
+ width: auto;
+ display: block;
+ float: none;
+ padding: 0 var(--spacing-large);
+}
+
+td.memSeparator {
+ border-color: var(--separator-color);
+}
+
+span.mlabel {
+ background: var(--primary-color);
+ border: none;
+ padding: 4px 9px;
+ border-radius: 12px;
+ margin-right: var(--spacing-medium);
+}
+
+span.mlabel:last-of-type {
+ margin-right: 2px;
+}
+
+div.contents {
+ padding: 0 var(--spacing-large);
+}
+
+div.contents p, div.contents li {
+ line-height: var(--content-line-height);
+}
+
+div.contents div.dyncontent {
+ margin: var(--spacing-medium) 0;
+}
+
+@media (prefers-color-scheme: dark) {
+ html:not(.light-mode) div.contents div.dyncontent img,
+ html:not(.light-mode) div.contents center img,
+ html:not(.light-mode) div.contents > table img,
+ html:not(.light-mode) div.contents div.dyncontent iframe,
+ html:not(.light-mode) div.contents center iframe,
+ html:not(.light-mode) div.contents table iframe,
+ html:not(.light-mode) div.contents .dotgraph iframe {
+ filter: brightness(89%) hue-rotate(180deg) invert();
+ }
+}
+
+html.dark-mode div.contents div.dyncontent img,
+html.dark-mode div.contents center img,
+html.dark-mode div.contents > table img,
+html.dark-mode div.contents div.dyncontent iframe,
+html.dark-mode div.contents center iframe,
+html.dark-mode div.contents table iframe,
+html.dark-mode div.contents .dotgraph iframe
+ {
+ filter: brightness(89%) hue-rotate(180deg) invert();
+}
+
+h2.groupheader {
+ border-bottom: 0px;
+ color: var(--page-foreground-color);
+ box-shadow:
+ 100px 0 var(--page-background-color),
+ -100px 0 var(--page-background-color),
+ 100px 0.75px var(--separator-color),
+ -100px 0.75px var(--separator-color),
+ 500px 0 var(--page-background-color),
+ -500px 0 var(--page-background-color),
+ 500px 0.75px var(--separator-color),
+ -500px 0.75px var(--separator-color),
+ 900px 0 var(--page-background-color),
+ -900px 0 var(--page-background-color),
+ 900px 0.75px var(--separator-color),
+ -900px 0.75px var(--separator-color),
+ 1400px 0 var(--page-background-color),
+ -1400px 0 var(--page-background-color),
+ 1400px 0.75px var(--separator-color),
+ -1400px 0.75px var(--separator-color),
+ 1900px 0 var(--page-background-color),
+ -1900px 0 var(--page-background-color),
+ 1900px 0.75px var(--separator-color),
+ -1900px 0.75px var(--separator-color);
+}
+
+blockquote {
+ margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
+ padding: var(--spacing-small) var(--spacing-large);
+ background: var(--blockquote-background);
+ color: var(--blockquote-foreground);
+ border-left: 0;
+ overflow: visible;
+ border-radius: var(--border-radius-medium);
+ overflow: visible;
+ position: relative;
+}
+
+blockquote::before, blockquote::after {
+ font-weight: bold;
+ font-family: serif;
+ font-size: 360%;
+ opacity: .15;
+ position: absolute;
+}
+
+blockquote::before {
+ content: "“";
+ left: -10px;
+ top: 4px;
+}
+
+blockquote::after {
+ content: "”";
+ right: -8px;
+ bottom: -25px;
+}
+
+blockquote p {
+ margin: var(--spacing-small) 0 var(--spacing-medium) 0;
+}
+.paramname, .paramname em {
+ font-weight: 600;
+ color: var(--primary-dark-color);
+}
+
+.paramname > code {
+ border: 0;
+}
+
+table.params .paramname {
+ font-weight: 600;
+ font-family: var(--font-family-monospace);
+ font-size: var(--code-font-size);
+ padding-right: var(--spacing-small);
+ line-height: var(--table-line-height);
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px var(--primary-light-color);
+}
+
+.alphachar a {
+ color: var(--page-foreground-color);
+}
+
+.dotgraph {
+ max-width: 100%;
+ overflow-x: scroll;
+}
+
+.dotgraph .caption {
+ position: sticky;
+ left: 0;
+}
+
+/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
+.interactive_dotgraph .dotgraph iframe {
+ max-width: 100%;
+}
+
+/*
+ Table of Contents
+ */
+
+div.contents .toc {
+ max-height: var(--toc-max-height);
+ min-width: var(--toc-width);
+ border: 0;
+ border-left: 1px solid var(--separator-color);
+ border-radius: 0;
+ background-color: var(--page-background-color);
+ box-shadow: none;
+ position: sticky;
+ top: var(--toc-sticky-top);
+ padding: 0 var(--spacing-large);
+ margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
+}
+
+div.toc h3 {
+ color: var(--toc-foreground);
+ font-size: var(--navigation-font-size);
+ margin: var(--spacing-large) 0 var(--spacing-medium) 0;
+}
+
+div.toc li {
+ padding: 0;
+ background: none;
+ line-height: var(--toc-font-size);
+ margin: var(--toc-font-size) 0 0 0;
+}
+
+div.toc li::before {
+ display: none;
+}
+
+div.toc ul {
+ margin-top: 0
+}
+
+div.toc li a {
+ font-size: var(--toc-font-size);
+ color: var(--page-foreground-color) !important;
+ text-decoration: none;
+}
+
+div.toc li a:hover, div.toc li a.active {
+ color: var(--primary-color) !important;
+}
+
+div.toc li a.aboveActive {
+ color: var(--page-secondary-foreground-color) !important;
+}
+
+
+@media screen and (max-width: 999px) {
+ div.contents .toc {
+ max-height: 45vh;
+ float: none;
+ width: auto;
+ margin: 0 0 var(--spacing-medium) 0;
+ position: relative;
+ top: 0;
+ position: relative;
+ border: 1px solid var(--separator-color);
+ border-radius: var(--border-radius-medium);
+ background-color: var(--toc-background);
+ box-shadow: var(--box-shadow);
+ }
+
+ div.contents .toc.interactive {
+ max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
+ overflow: hidden;
+ }
+
+ div.contents .toc > h3 {
+ -webkit-tap-highlight-color: transparent;
+ cursor: pointer;
+ position: sticky;
+ top: 0;
+ background-color: var(--toc-background);
+ margin: 0;
+ padding: var(--spacing-large) 0;
+ display: block;
+ }
+
+ div.contents .toc.interactive > h3::before {
+ content: "";
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 5px solid var(--primary-color);
+ display: inline-block;
+ margin-right: var(--spacing-small);
+ margin-bottom: calc(var(--navigation-font-size) / 4);
+ transform: rotate(-90deg);
+ transition: transform var(--animation-duration) ease-out;
+ }
+
+ div.contents .toc.interactive.open > h3::before {
+ transform: rotate(0deg);
+ }
+
+ div.contents .toc.interactive.open {
+ max-height: 45vh;
+ overflow: auto;
+ transition: max-height 0.2s ease-in-out;
+ }
+
+ div.contents .toc a, div.contents .toc a.active {
+ color: var(--primary-color) !important;
+ }
+
+ div.contents .toc a:hover {
+ text-decoration: underline;
+ }
+}
+
+/*
+ Code & Fragments
+ */
+
+code, div.fragment, pre.fragment {
+ border-radius: var(--border-radius-small);
+ border: 1px solid var(--separator-color);
+ overflow: hidden;
+}
+
+code {
+ display: inline;
+ background: var(--code-background);
+ color: var(--code-foreground);
+ padding: 2px 6px;
+}
+
+div.fragment, pre.fragment {
+ margin: var(--spacing-medium) 0;
+ padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
+ background: var(--fragment-background);
+ color: var(--fragment-foreground);
+ overflow-x: auto;
+}
+
+@media screen and (max-width: 767px) {
+ div.fragment, pre.fragment {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-right: 0;
+ }
+
+ .contents > div.fragment,
+ .textblock > div.fragment,
+ .textblock > pre.fragment,
+ .textblock > .tabbed > ul > li > div.fragment,
+ .textblock > .tabbed > ul > li > pre.fragment,
+ .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
+ .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
+ .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment,
+ .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
+ .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment {
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
+ border-radius: 0;
+ border-left: 0;
+ }
+
+ .textblock li > .fragment,
+ .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
+ }
+
+ .memdoc li > .fragment,
+ .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
+ }
+
+ .textblock ul, .memdoc ul {
+ overflow: initial;
+ }
+
+ .memdoc > div.fragment,
+ .memdoc > pre.fragment,
+ dl dd > div.fragment,
+ dl dd pre.fragment,
+ .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
+ .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
+ dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
+ dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
+ border-radius: 0;
+ border-left: 0;
+ }
+}
+
+code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
+ font-family: var(--font-family-monospace);
+ font-size: var(--code-font-size) !important;
+}
+
+div.line:after {
+ margin-right: var(--spacing-medium);
+}
+
+div.fragment .line, pre.fragment {
+ white-space: pre;
+ word-wrap: initial;
+ line-height: var(--fragment-lineheight);
+}
+
+div.fragment span.keyword {
+ color: var(--fragment-keyword);
+}
+
+div.fragment span.keywordtype {
+ color: var(--fragment-keywordtype);
+}
+
+div.fragment span.keywordflow {
+ color: var(--fragment-keywordflow);
+}
+
+div.fragment span.stringliteral {
+ color: var(--fragment-token)
+}
+
+div.fragment span.comment {
+ color: var(--fragment-comment);
+}
+
+div.fragment a.code {
+ color: var(--fragment-link) !important;
+}
+
+div.fragment span.preprocessor {
+ color: var(--fragment-preprocessor);
+}
+
+div.fragment span.lineno {
+ display: inline-block;
+ width: 27px;
+ border-right: none;
+ background: var(--fragment-linenumber-background);
+ color: var(--fragment-linenumber-color);
+}
+
+div.fragment span.lineno a {
+ background: none;
+ color: var(--fragment-link) !important;
+}
+
+div.fragment > .line:first-child .lineno {
+ box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
+ background-color: var(--fragment-linenumber-background) !important;
+}
+
+div.line {
+ border-radius: var(--border-radius-small);
+}
+
+div.line.glow {
+ background-color: var(--primary-light-color);
+ box-shadow: none;
+}
+
+/*
+ dl warning, attention, note, deprecated, bug, ...
+ */
+
+dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
+ font-weight: bold !important;
+}
+
+dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
+ padding: var(--spacing-medium);
+ margin: var(--spacing-medium) 0;
+ color: var(--page-background-color);
+ overflow: hidden;
+ margin-left: 0;
+ border-radius: var(--border-radius-small);
+}
+
+dl.section dd {
+ margin-bottom: 2px;
+}
+
+dl.warning, dl.attention {
+ background: var(--warning-color);
+ border-left: 8px solid var(--warning-color-dark);
+ color: var(--warning-color-darker);
+}
+
+dl.warning dt, dl.attention dt {
+ color: var(--warning-color-dark);
+}
+
+dl.note, dl.remark {
+ background: var(--note-color);
+ border-left: 8px solid var(--note-color-dark);
+ color: var(--note-color-darker);
+}
+
+dl.note dt, dl.remark dt {
+ color: var(--note-color-dark);
+}
+
+dl.todo {
+ background: var(--todo-color);
+ border-left: 8px solid var(--todo-color-dark);
+ color: var(--todo-color-darker);
+}
+
+dl.todo dt a {
+ color: var(--todo-color-dark) !important;
+}
+
+dl.bug dt a {
+ color: var(--todo-color-dark) !important;
+}
+
+dl.bug {
+ background: var(--bug-color);
+ border-left: 8px solid var(--bug-color-dark);
+ color: var(--bug-color-darker);
+}
+
+dl.bug dt a {
+ color: var(--bug-color-dark) !important;
+}
+
+dl.deprecated {
+ background: var(--deprecated-color);
+ border-left: 8px solid var(--deprecated-color-dark);
+ color: var(--deprecated-color-darker);
+}
+
+dl.deprecated dt a {
+ color: var(--deprecated-color-dark) !important;
+}
+
+dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
+ margin-inline-start: 0px;
+}
+
+dl.invariant, dl.pre, dl.post {
+ background: var(--invariant-color);
+ border-left: 8px solid var(--invariant-color-dark);
+ color: var(--invariant-color-darker);
+}
+
+dl.invariant dt, dl.pre dt, dl.post dt {
+ color: var(--invariant-color-dark);
+}
+
+/*
+ memitem
+ */
+
+div.memdoc, div.memproto, h2.memtitle {
+ box-shadow: none;
+ background-image: none;
+ border: none;
+}
+
+div.memdoc {
+ padding: 0 var(--spacing-medium);
+ background: var(--page-background-color);
+}
+
+h2.memtitle, div.memitem {
+ border: 1px solid var(--separator-color);
+ box-shadow: var(--box-shadow);
+}
+
+h2.memtitle {
+ box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
+}
+
+div.memitem {
+ transition: none;
+}
+
+div.memproto, h2.memtitle {
+ background: var(--fragment-background);
+}
+
+h2.memtitle {
+ font-weight: 500;
+ font-size: var(--memtitle-font-size);
+ font-family: var(--font-family-monospace);
+ border-bottom: none;
+ border-top-left-radius: var(--border-radius-medium);
+ border-top-right-radius: var(--border-radius-medium);
+ word-break: break-all;
+ position: relative;
+}
+
+h2.memtitle:after {
+ content: "";
+ display: block;
+ background: var(--fragment-background);
+ height: var(--spacing-medium);
+ bottom: calc(0px - var(--spacing-medium));
+ left: 0;
+ right: -14px;
+ position: absolute;
+ border-top-right-radius: var(--border-radius-medium);
+}
+
+h2.memtitle > span.permalink {
+ font-size: inherit;
+}
+
+h2.memtitle > span.permalink > a {
+ text-decoration: none;
+ padding-left: 3px;
+ margin-right: -4px;
+ user-select: none;
+ display: inline-block;
+ margin-top: -6px;
+}
+
+h2.memtitle > span.permalink > a:hover {
+ color: var(--primary-dark-color) !important;
+}
+
+a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
+ border-color: var(--primary-light-color);
+}
+
+div.memitem {
+ border-top-right-radius: var(--border-radius-medium);
+ border-bottom-right-radius: var(--border-radius-medium);
+ border-bottom-left-radius: var(--border-radius-medium);
+ overflow: hidden;
+ display: block !important;
+}
+
+div.memdoc {
+ border-radius: 0;
+}
+
+div.memproto {
+ border-radius: 0 var(--border-radius-small) 0 0;
+ overflow: auto;
+ border-bottom: 1px solid var(--separator-color);
+ padding: var(--spacing-medium);
+ margin-bottom: -1px;
+}
+
+div.memtitle {
+ border-top-right-radius: var(--border-radius-medium);
+ border-top-left-radius: var(--border-radius-medium);
+}
+
+div.memproto table.memname {
+ font-family: var(--font-family-monospace);
+ color: var(--page-foreground-color);
+ font-size: var(--memname-font-size);
+ text-shadow: none;
+}
+
+div.memproto div.memtemplate {
+ font-family: var(--font-family-monospace);
+ color: var(--primary-dark-color);
+ font-size: var(--memname-font-size);
+ margin-left: 2px;
+ text-shadow: none;
+}
+
+table.mlabels, table.mlabels > tbody {
+ display: block;
+}
+
+td.mlabels-left {
+ width: auto;
+}
+
+td.mlabels-right {
+ margin-top: 3px;
+ position: sticky;
+ left: 0;
+}
+
+table.mlabels > tbody > tr:first-child {
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+}
+
+.memname, .memitem span.mlabels {
+ margin: 0
+}
+
+/*
+ reflist
+ */
+
+dl.reflist {
+ box-shadow: var(--box-shadow);
+ border-radius: var(--border-radius-medium);
+ border: 1px solid var(--separator-color);
+ overflow: hidden;
+ padding: 0;
+}
+
+
+dl.reflist dt, dl.reflist dd {
+ box-shadow: none;
+ text-shadow: none;
+ background-image: none;
+ border: none;
+ padding: 12px;
+}
+
+
+dl.reflist dt {
+ font-weight: 500;
+ border-radius: 0;
+ background: var(--code-background);
+ border-bottom: 1px solid var(--separator-color);
+ color: var(--page-foreground-color)
+}
+
+
+dl.reflist dd {
+ background: none;
+}
+
+/*
+ Table
+ */
+
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
+ display: inline-block;
+ max-width: 100%;
+}
+
+.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
+ margin-left: calc(0px - var(--spacing-large));
+ margin-right: calc(0px - var(--spacing-large));
+ max-width: calc(100% + 2 * var(--spacing-large));
+}
+
+table.fieldtable,
+table.markdownTable tbody,
+table.doxtable tbody {
+ border: none;
+ margin: var(--spacing-medium) 0;
+ box-shadow: 0 0 0 1px var(--separator-color);
+ border-radius: var(--border-radius-small);
+}
+
+table.markdownTable, table.doxtable, table.fieldtable {
+ padding: 1px;
+}
+
+table.doxtable caption {
+ display: block;
+}
+
+table.fieldtable {
+ border-collapse: collapse;
+ width: 100%;
+}
+
+th.markdownTableHeadLeft,
+th.markdownTableHeadRight,
+th.markdownTableHeadCenter,
+th.markdownTableHeadNone,
+table.doxtable th {
+ background: var(--tablehead-background);
+ color: var(--tablehead-foreground);
+ font-weight: 600;
+ font-size: var(--page-font-size);
+}
+
+th.markdownTableHeadLeft:first-child,
+th.markdownTableHeadRight:first-child,
+th.markdownTableHeadCenter:first-child,
+th.markdownTableHeadNone:first-child,
+table.doxtable tr th:first-child {
+ border-top-left-radius: var(--border-radius-small);
+}
+
+th.markdownTableHeadLeft:last-child,
+th.markdownTableHeadRight:last-child,
+th.markdownTableHeadCenter:last-child,
+th.markdownTableHeadNone:last-child,
+table.doxtable tr th:last-child {
+ border-top-right-radius: var(--border-radius-small);
+}
+
+table.markdownTable td,
+table.markdownTable th,
+table.fieldtable td,
+table.fieldtable th,
+table.doxtable td,
+table.doxtable th {
+ border: 1px solid var(--separator-color);
+ padding: var(--spacing-small) var(--spacing-medium);
+}
+
+table.markdownTable td:last-child,
+table.markdownTable th:last-child,
+table.fieldtable td:last-child,
+table.fieldtable th:last-child,
+table.doxtable td:last-child,
+table.doxtable th:last-child {
+ border-right: none;
+}
+
+table.markdownTable td:first-child,
+table.markdownTable th:first-child,
+table.fieldtable td:first-child,
+table.fieldtable th:first-child,
+table.doxtable td:first-child,
+table.doxtable th:first-child {
+ border-left: none;
+}
+
+table.markdownTable tr:first-child td,
+table.markdownTable tr:first-child th,
+table.fieldtable tr:first-child td,
+table.fieldtable tr:first-child th,
+table.doxtable tr:first-child td,
+table.doxtable tr:first-child th {
+ border-top: none;
+}
+
+table.markdownTable tr:last-child td,
+table.markdownTable tr:last-child th,
+table.fieldtable tr:last-child td,
+table.fieldtable tr:last-child th,
+table.doxtable tr:last-child td,
+table.doxtable tr:last-child th {
+ border-bottom: none;
+}
+
+table.markdownTable tr, table.doxtable tr {
+ border-bottom: 1px solid var(--separator-color);
+}
+
+table.markdownTable tr:last-child, table.doxtable tr:last-child {
+ border-bottom: none;
+}
+
+.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
+ display: block;
+}
+
+.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
+ display: table;
+ width: 100%;
+}
+
+table.fieldtable th {
+ font-size: var(--page-font-size);
+ font-weight: 600;
+ background-image: none;
+ background-color: var(--tablehead-background);
+ color: var(--tablehead-foreground);
+}
+
+table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th {
+ border-bottom: 1px solid var(--separator-color);
+ border-right: 1px solid var(--separator-color);
+}
+
+table.fieldtable tr:last-child td:first-child {
+ border-bottom-left-radius: var(--border-radius-small);
+}
+
+table.fieldtable tr:last-child td:last-child {
+ border-bottom-right-radius: var(--border-radius-small);
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: var(--primary-light-color);
+ box-shadow: none;
+}
+
+table.memberdecls {
+ display: block;
+ -webkit-tap-highlight-color: transparent;
+}
+
+table.memberdecls tr[class^='memitem'] {
+ font-family: var(--font-family-monospace);
+ font-size: var(--code-font-size);
+}
+
+table.memberdecls tr[class^='memitem'] .memTemplParams {
+ font-family: var(--font-family-monospace);
+ font-size: var(--code-font-size);
+ color: var(--primary-dark-color);
+ white-space: normal;
+}
+
+table.memberdecls .memItemLeft,
+table.memberdecls .memItemRight,
+table.memberdecls .memTemplItemLeft,
+table.memberdecls .memTemplItemRight,
+table.memberdecls .memTemplParams {
+ transition: none;
+ padding-top: var(--spacing-small);
+ padding-bottom: var(--spacing-small);
+ border-top: 1px solid var(--separator-color);
+ border-bottom: 1px solid var(--separator-color);
+ background-color: var(--fragment-background);
+}
+
+table.memberdecls .memTemplItemLeft,
+table.memberdecls .memTemplItemRight {
+ padding-top: 2px;
+}
+
+table.memberdecls .memTemplParams {
+ border-bottom: 0;
+ border-left: 1px solid var(--separator-color);
+ border-right: 1px solid var(--separator-color);
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
+ padding-bottom: var(--spacing-small);
+}
+
+table.memberdecls .memTemplItemLeft {
+ border-radius: 0 0 0 var(--border-radius-small);
+ border-left: 1px solid var(--separator-color);
+ border-top: 0;
+}
+
+table.memberdecls .memTemplItemRight {
+ border-radius: 0 0 var(--border-radius-small) 0;
+ border-right: 1px solid var(--separator-color);
+ padding-left: 0;
+ border-top: 0;
+}
+
+table.memberdecls .memItemLeft {
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
+ border-left: 1px solid var(--separator-color);
+ padding-left: var(--spacing-medium);
+ padding-right: 0;
+}
+
+table.memberdecls .memItemRight {
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
+ border-right: 1px solid var(--separator-color);
+ padding-right: var(--spacing-medium);
+ padding-left: 0;
+
+}
+
+table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
+ background: none;
+ color: var(--page-foreground-color);
+ padding: var(--spacing-small) 0;
+}
+
+table.memberdecls .memItemLeft,
+table.memberdecls .memTemplItemLeft {
+ padding-right: var(--spacing-medium);
+}
+
+table.memberdecls .memSeparator {
+ background: var(--page-background-color);
+ height: var(--spacing-large);
+ border: 0;
+ transition: none;
+}
+
+table.memberdecls .groupheader {
+ margin-bottom: var(--spacing-large);
+}
+
+table.memberdecls .inherit_header td {
+ padding: 0 0 var(--spacing-medium) 0;
+ text-indent: -12px;
+ color: var(--page-secondary-foreground-color);
+}
+
+table.memberdecls img[src="closed.png"],
+table.memberdecls img[src="open.png"],
+div.dynheader img[src="open.png"],
+div.dynheader img[src="closed.png"] {
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 5px solid var(--primary-color);
+ margin-top: 8px;
+ display: block;
+ float: left;
+ margin-left: -10px;
+ transition: transform var(--animation-duration) ease-out;
+}
+
+table.memberdecls img {
+ margin-right: 10px;
+}
+
+table.memberdecls img[src="closed.png"],
+div.dynheader img[src="closed.png"] {
+ transform: rotate(-90deg);
+
+}
+
+.compoundTemplParams {
+ font-family: var(--font-family-monospace);
+ color: var(--primary-dark-color);
+ font-size: var(--code-font-size);
+}
+
+@media screen and (max-width: 767px) {
+
+ table.memberdecls .memItemLeft,
+ table.memberdecls .memItemRight,
+ table.memberdecls .mdescLeft,
+ table.memberdecls .mdescRight,
+ table.memberdecls .memTemplItemLeft,
+ table.memberdecls .memTemplItemRight,
+ table.memberdecls .memTemplParams {
+ display: block;
+ text-align: left;
+ padding-left: var(--spacing-large);
+ margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
+ border-right: none;
+ border-left: none;
+ border-radius: 0;
+ white-space: normal;
+ }
+
+ table.memberdecls .memItemLeft,
+ table.memberdecls .mdescLeft,
+ table.memberdecls .memTemplItemLeft {
+ border-bottom: 0;
+ padding-bottom: 0;
+ }
+
+ table.memberdecls .memTemplItemLeft {
+ padding-top: 0;
+ }
+
+ table.memberdecls .mdescLeft {
+ margin-bottom: calc(0px - var(--page-font-size));
+ }
+
+ table.memberdecls .memItemRight,
+ table.memberdecls .mdescRight,
+ table.memberdecls .memTemplItemRight {
+ border-top: 0;
+ padding-top: 0;
+ padding-right: var(--spacing-large);
+ overflow-x: auto;
+ }
+
+ table.memberdecls tr[class^='memitem']:not(.inherit) {
+ display: block;
+ width: calc(100vw - 2 * var(--spacing-large));
+ }
+
+ table.memberdecls .mdescRight {
+ color: var(--page-foreground-color);
+ }
+
+ table.memberdecls tr.inherit {
+ visibility: hidden;
+ }
+
+ table.memberdecls tr[style="display: table-row;"] {
+ display: block !important;
+ visibility: visible;
+ width: calc(100vw - 2 * var(--spacing-large));
+ animation: fade .5s;
+ }
+
+ @keyframes fade {
+ 0% {
+ opacity: 0;
+ max-height: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ max-height: 200px;
+ }
+ }
+}
+
+
+/*
+ Horizontal Rule
+ */
+
+hr {
+ margin-top: var(--spacing-large);
+ margin-bottom: var(--spacing-large);
+ height: 1px;
+ background-color: var(--separator-color);
+ border: 0;
+}
+
+.contents hr {
+ box-shadow: 100px 0 var(--separator-color),
+ -100px 0 var(--separator-color),
+ 500px 0 var(--separator-color),
+ -500px 0 var(--separator-color),
+ 900px 0 var(--separator-color),
+ -900px 0 var(--separator-color),
+ 1400px 0 var(--separator-color),
+ -1400px 0 var(--separator-color),
+ 1900px 0 var(--separator-color),
+ -1900px 0 var(--separator-color);
+}
+
+.contents img, .contents .center, .contents center, .contents div.image object {
+ max-width: 100%;
+ overflow: auto;
+}
+
+@media screen and (max-width: 767px) {
+ .contents .dyncontent > .center, .contents > center {
+ margin-left: calc(0px - var(--spacing-large));
+ margin-right: calc(0px - var(--spacing-large));
+ max-width: calc(100% + 2 * var(--spacing-large));
+ }
+}
+
+/*
+ Directories
+ */
+div.directory {
+ border-top: 1px solid var(--separator-color);
+ border-bottom: 1px solid var(--separator-color);
+ width: auto;
+}
+
+table.directory {
+ font-family: var(--font-family);
+ font-size: var(--page-font-size);
+ font-weight: normal;
+ width: 100%;
+}
+
+table.directory td.entry, table.directory td.desc {
+ padding: calc(var(--spacing-small) / 2) var(--spacing-small);
+ line-height: var(--table-line-height);
+}
+
+table.directory tr.even td:last-child {
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
+}
+
+table.directory tr.even td:first-child {
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
+}
+
+table.directory tr.even:last-child td:last-child {
+ border-radius: 0 var(--border-radius-small) 0 0;
+}
+
+table.directory tr.even:last-child td:first-child {
+ border-radius: var(--border-radius-small) 0 0 0;
+}
+
+table.directory td.desc {
+ min-width: 250px;
+}
+
+table.directory tr.even {
+ background-color: var(--odd-color);
+}
+
+table.directory tr.odd {
+ background-color: transparent;
+}
+
+.icona {
+ width: auto;
+ height: auto;
+ margin: 0 var(--spacing-small);
+}
+
+.icon {
+ background: var(--primary-color);
+ border-radius: var(--border-radius-small);
+ font-size: var(--page-font-size);
+ padding: calc(var(--page-font-size) / 5);
+ line-height: var(--page-font-size);
+ transform: scale(0.8);
+ height: auto;
+ width: var(--page-font-size);
+ user-select: none;
+}
+
+.iconfopen, .icondoc, .iconfclosed {
+ background-position: center;
+ margin-bottom: 0;
+ height: var(--table-line-height);
+}
+
+.icondoc {
+ filter: saturate(0.2);
+}
+
+@media screen and (max-width: 767px) {
+ div.directory {
+ margin-left: calc(0px - var(--spacing-large));
+ margin-right: calc(0px - var(--spacing-large));
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
+ filter: hue-rotate(180deg) invert();
+ }
+}
+
+html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
+ filter: hue-rotate(180deg) invert();
+}
+
+/*
+ Class list
+ */
+
+.classindex dl.odd {
+ background: var(--odd-color);
+ border-radius: var(--border-radius-small);
+}
+
+.classindex dl.even {
+ background-color: transparent;
+}
+
+/*
+ Class Index Doxygen 1.8
+*/
+
+table.classindex {
+ margin-left: 0;
+ margin-right: 0;
+ width: 100%;
+}
+
+table.classindex table div.ah {
+ background-image: none;
+ background-color: initial;
+ border-color: var(--separator-color);
+ color: var(--page-foreground-color);
+ box-shadow: var(--box-shadow);
+ border-radius: var(--border-radius-large);
+ padding: var(--spacing-small);
+}
+
+div.qindex {
+ background-color: var(--odd-color);
+ border-radius: var(--border-radius-small);
+ border: 1px solid var(--separator-color);
+ padding: var(--spacing-small) 0;
+}
+
+/*
+ Footer and nav-path
+ */
+
+#nav-path {
+ width: 100%;
+}
+
+#nav-path ul {
+ background-image: none;
+ background: var(--page-background-color);
+ border: none;
+ border-top: 1px solid var(--separator-color);
+ border-bottom: 1px solid var(--separator-color);
+ border-bottom: 0;
+ box-shadow: 0 0.75px 0 var(--separator-color);
+ font-size: var(--navigation-font-size);
+}
+
+img.footer {
+ width: 60px;
+}
+
+.navpath li.footer {
+ color: var(--page-secondary-foreground-color);
+}
+
+address.footer {
+ color: var(--page-secondary-foreground-color);
+ margin-bottom: var(--spacing-large);
+}
+
+#nav-path li.navelem {
+ background-image: none;
+ display: flex;
+ align-items: center;
+}
+
+.navpath li.navelem a {
+ text-shadow: none;
+ display: inline-block;
+ color: var(--primary-color) !important;
+}
+
+.navpath li.navelem b {
+ color: var(--primary-dark-color);
+ font-weight: 500;
+}
+
+li.navelem {
+ padding: 0;
+ margin-left: -8px;
+}
+
+li.navelem:first-child {
+ margin-left: var(--spacing-large);
+}
+
+li.navelem:first-child:before {
+ display: none;
+}
+
+#nav-path li.navelem:after {
+ content: '';
+ border: 5px solid var(--page-background-color);
+ border-bottom-color: transparent;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ transform: translateY(-1px) scaleY(4.2);
+ z-index: 10;
+ margin-left: 6px;
+}
+
+#nav-path li.navelem:before {
+ content: '';
+ border: 5px solid var(--separator-color);
+ border-bottom-color: transparent;
+ border-right-color: transparent;
+ border-top-color: transparent;
+ transform: translateY(-1px) scaleY(3.2);
+ margin-right: var(--spacing-small);
+}
+
+.navpath li.navelem a:hover {
+ color: var(--primary-color);
+}
+
+/*
+ Scrollbars for Webkit
+*/
+
+#nav-tree::-webkit-scrollbar,
+div.fragment::-webkit-scrollbar,
+pre.fragment::-webkit-scrollbar,
+div.memproto::-webkit-scrollbar,
+.contents center::-webkit-scrollbar,
+.contents .center::-webkit-scrollbar,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
+div.contents .toc::-webkit-scrollbar,
+.contents .dotgraph::-webkit-scrollbar,
+.contents .tabs-overview-container::-webkit-scrollbar {
+ background: transparent;
+ width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
+ height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
+}
+
+#nav-tree::-webkit-scrollbar-thumb,
+div.fragment::-webkit-scrollbar-thumb,
+pre.fragment::-webkit-scrollbar-thumb,
+div.memproto::-webkit-scrollbar-thumb,
+.contents center::-webkit-scrollbar-thumb,
+.contents .center::-webkit-scrollbar-thumb,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
+div.contents .toc::-webkit-scrollbar-thumb,
+.contents .dotgraph::-webkit-scrollbar-thumb,
+.contents .tabs-overview-container::-webkit-scrollbar-thumb {
+ background-color: transparent;
+ border: var(--webkit-scrollbar-padding) solid transparent;
+ border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
+ background-clip: padding-box;
+}
+
+#nav-tree:hover::-webkit-scrollbar-thumb,
+div.fragment:hover::-webkit-scrollbar-thumb,
+pre.fragment:hover::-webkit-scrollbar-thumb,
+div.memproto:hover::-webkit-scrollbar-thumb,
+.contents center:hover::-webkit-scrollbar-thumb,
+.contents .center:hover::-webkit-scrollbar-thumb,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
+div.contents .toc:hover::-webkit-scrollbar-thumb,
+.contents .dotgraph:hover::-webkit-scrollbar-thumb,
+.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
+ background-color: var(--webkit-scrollbar-color);
+}
+
+#nav-tree::-webkit-scrollbar-track,
+div.fragment::-webkit-scrollbar-track,
+pre.fragment::-webkit-scrollbar-track,
+div.memproto::-webkit-scrollbar-track,
+.contents center::-webkit-scrollbar-track,
+.contents .center::-webkit-scrollbar-track,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
+div.contents .toc::-webkit-scrollbar-track,
+.contents .dotgraph::-webkit-scrollbar-track,
+.contents .tabs-overview-container::-webkit-scrollbar-track {
+ background: transparent;
+}
+
+#nav-tree::-webkit-scrollbar-corner {
+ background-color: var(--side-nav-background);
+}
+
+#nav-tree,
+div.fragment,
+pre.fragment,
+div.memproto,
+.contents center,
+.contents .center,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
+div.contents .toc {
+ overflow-x: auto;
+ overflow-x: overlay;
+}
+
+#nav-tree {
+ overflow-x: auto;
+ overflow-y: auto;
+ overflow-y: overlay;
+}
+
+/*
+ Scrollbars for Firefox
+*/
+
+#nav-tree,
+div.fragment,
+pre.fragment,
+div.memproto,
+.contents center,
+.contents .center,
+.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
+div.contents .toc,
+.contents .dotgraph,
+.contents .tabs-overview-container {
+ scrollbar-width: thin;
+}
+
+/*
+ Optional Dark mode toggle button
+*/
+
+doxygen-awesome-dark-mode-toggle {
+ display: inline-block;
+ margin: 0 0 0 var(--spacing-small);
+ padding: 0;
+ width: var(--searchbar-height);
+ height: var(--searchbar-height);
+ background: none;
+ border: none;
+ border-radius: var(--searchbar-height);
+ vertical-align: middle;
+ text-align: center;
+ line-height: var(--searchbar-height);
+ font-size: 22px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ user-select: none;
+ cursor: pointer;
+}
+
+doxygen-awesome-dark-mode-toggle > svg {
+ transition: transform var(--animation-duration) ease-in-out;
+}
+
+doxygen-awesome-dark-mode-toggle:active > svg {
+ transform: scale(.5);
+}
+
+doxygen-awesome-dark-mode-toggle:hover {
+ background-color: rgba(0,0,0,.03);
+}
+
+html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
+ background-color: rgba(0,0,0,.18);
+}
+
+/*
+ Optional fragment copy button
+*/
+.doxygen-awesome-fragment-wrapper {
+ position: relative;
+}
+
+doxygen-awesome-fragment-copy-button {
+ opacity: 0;
+ background: var(--fragment-background);
+ width: 28px;
+ height: 28px;
+ position: absolute;
+ right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
+ top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
+ border: 1px solid var(--fragment-foreground);
+ cursor: pointer;
+ border-radius: var(--border-radius-small);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
+ opacity: .28;
+}
+
+doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
+ opacity: 1 !important;
+}
+
+doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
+ transform: scale(.91);
+}
+
+doxygen-awesome-fragment-copy-button svg {
+ fill: var(--fragment-foreground);
+ width: 18px;
+ height: 18px;
+}
+
+doxygen-awesome-fragment-copy-button.success svg {
+ fill: rgb(14, 168, 14);
+}
+
+doxygen-awesome-fragment-copy-button.success {
+ border-color: rgb(14, 168, 14);
+}
+
+@media screen and (max-width: 767px) {
+ .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
+ .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
+ .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
+ .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
+ dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
+ right: 0;
+ }
+}
+
+/*
+ Optional paragraph link button
+*/
+
+a.anchorlink {
+ font-size: 90%;
+ margin-left: var(--spacing-small);
+ color: var(--page-foreground-color) !important;
+ text-decoration: none;
+ opacity: .15;
+ display: none;
+ transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out;
+}
+
+a.anchorlink svg {
+ fill: var(--page-foreground-color);
+}
+
+h3 a.anchorlink svg, h4 a.anchorlink svg {
+ margin-bottom: -3px;
+ margin-top: -4px;
+}
+
+a.anchorlink:hover {
+ opacity: .45;
+}
+
+h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink {
+ display: inline-block;
+}
+
+/*
+ Optional tab feature
+*/
+
+.tabbed > ul {
+ padding-inline-start: 0px;
+ margin: 0;
+ padding: var(--spacing-small) 0;
+}
+
+.tabbed > ul > li {
+ display: none;
+}
+
+.tabbed > ul > li.selected {
+ display: block;
+}
+
+.tabs-overview-container {
+ overflow-x: auto;
+ display: block;
+ overflow-y: visible;
+}
+
+.tabs-overview {
+ border-bottom: 1px solid var(--separator-color);
+ display: flex;
+ flex-direction: row;
+}
+
+@media screen and (max-width: 767px) {
+ .tabs-overview-container {
+ margin: 0 calc(0px - var(--spacing-large));
+ }
+ .tabs-overview {
+ padding: 0 var(--spacing-large)
+ }
+}
+
+.tabs-overview button.tab-button {
+ color: var(--page-foreground-color);
+ margin: 0;
+ border: none;
+ background: transparent;
+ padding: calc(var(--spacing-large) / 2) 0;
+ display: inline-block;
+ font-size: var(--page-font-size);
+ cursor: pointer;
+ box-shadow: 0 1px 0 0 var(--separator-color);
+ position: relative;
+
+ -webkit-tap-highlight-color: transparent;
+}
+
+.tabs-overview button.tab-button .tab-title::before {
+ display: block;
+ content: attr(title);
+ font-weight: 600;
+ height: 0;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.tabs-overview button.tab-button .tab-title {
+ float: left;
+ white-space: nowrap;
+ font-weight: normal;
+ padding: calc(var(--spacing-large) / 2) var(--spacing-large);
+ border-radius: var(--border-radius-medium);
+ transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
+}
+
+.tabs-overview button.tab-button:not(:last-child) .tab-title {
+ box-shadow: 8px 0 0 -7px var(--separator-color);
+}
+
+.tabs-overview button.tab-button:hover .tab-title {
+ background: var(--separator-color);
+ box-shadow: none;
+}
+
+.tabs-overview button.tab-button.active .tab-title {
+ font-weight: 600;
+}
+
+.tabs-overview button.tab-button::after {
+ content: '';
+ display: block;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ height: 0;
+ width: 0%;
+ margin: 0 auto;
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
+ background-color: var(--primary-color);
+ transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
+}
+
+.tabs-overview button.tab-button.active::after {
+ width: 100%;
+ box-sizing: border-box;
+ height: 3px;
+}
+
+
+/*
+ Navigation Buttons
+*/
+
+.section_buttons:not(:empty) {
+ margin-top: calc(var(--spacing-large) * 3);
+}
+
+.section_buttons table.markdownTable {
+ display: block;
+ width: 100%;
+}
+
+.section_buttons table.markdownTable tbody {
+ display: table !important;
+ width: 100%;
+ box-shadow: none;
+ border-spacing: 10px;
+}
+
+.section_buttons table.markdownTable td {
+ padding: 0;
+}
+
+.section_buttons table.markdownTable th {
+ display: none;
+}
+
+.section_buttons table.markdownTable tr.markdownTableHead {
+ border: none;
+}
+
+.section_buttons tr th, .section_buttons tr td {
+ background: none;
+ border: none;
+ padding: var(--spacing-large) 0 var(--spacing-small);
+}
+
+.section_buttons a {
+ display: inline-block;
+ border: 1px solid var(--separator-color);
+ border-radius: var(--border-radius-medium);
+ color: var(--page-secondary-foreground-color) !important;
+ text-decoration: none;
+ transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
+}
+
+.section_buttons a:hover {
+ color: var(--page-foreground-color) !important;
+ background-color: var(--odd-color);
+}
+
+.section_buttons tr td.markdownTableBodyLeft a {
+ padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
+}
+
+.section_buttons tr td.markdownTableBodyRight a {
+ padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
+}
+
+.section_buttons tr td.markdownTableBodyLeft a::before,
+.section_buttons tr td.markdownTableBodyRight a::after {
+ color: var(--page-secondary-foreground-color) !important;
+ display: inline-block;
+ transition: color .08s ease-in-out, transform .09s ease-in-out;
+}
+
+.section_buttons tr td.markdownTableBodyLeft a::before {
+ content: '〈';
+ padding-right: var(--spacing-large);
+}
+
+
+.section_buttons tr td.markdownTableBodyRight a::after {
+ content: '〉';
+ padding-left: var(--spacing-large);
+}
+
+
+.section_buttons tr td.markdownTableBodyLeft a:hover::before {
+ color: var(--page-foreground-color) !important;
+ transform: translateX(-3px);
+}
+
+.section_buttons tr td.markdownTableBodyRight a:hover::after {
+ color: var(--page-foreground-color) !important;
+ transform: translateX(3px);
+}
+
+@media screen and (max-width: 450px) {
+ .section_buttons a {
+ width: 100%;
+ box-sizing: border-box;
+ }
+
+ .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
+ border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
+ border-right: none;
+ }
+
+ .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
+ border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
+ }
+}
\ No newline at end of file
diff --git a/doc/logo2_bike.gif b/doc/logo2_bike.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7d6d0fc63e2e942b506999df94ad5aa545e474fa
GIT binary patch
literal 41942
zcmag_S5TAR_W=Ap=?Mh#B!m`
e%UmVJn
zfC@=aE(OY$gGvcd9RVtnfNDw5O*yDW9%_?=?*5ylpj;IwUk%FDf%3JXYX(q(A#}|I
zDlmu2RG>O#s8R>Is{*xYLNzp~%p9sQhj=@oRs*QT0=jDo^~ghgD$rwX=%FSwU<5rg
zg(i1EJPPqKwT%HE`O*j0;)X&l}1B#7onC*P-hg>YXc2BK~px+t3A++
zE%ay~H0lNQAB5%(L(e>*d3R{xAoMU0nh1a<0->28s4of{iiBQ8LDT1;w*k=GQ_#l{
zX!$7g=`8f|BD8P;TDkmy&F+bddzh9sn2|A@lk>QsV1UaVyKw_5j)%%)p#~0g^D5LD
z4|SwMB{@)SAyj=GYR!c1WkGieppLwWva)BjwbQq5J#T87ZEbzo)%AqOgKBO}*DHHmf
z4K3tDAB&)GIncKP=utV;TL%qSL%l7~@Li~{3wquGy()!1mqYJsq4jd;dmZ%i7WDQu
z^sN>8eh>QD3AJ}acLt#Qig>#(Az=idmr?(7yA7O`Y{ZBoPxeTg?>*$-(Nz)Iq1;>^kf-&
zx(LlJKupDe=
zH}9>-(R)T?(gNLb<>+*y*jfBoy%s&@Knoios<@{!big_K=I|nG4EAhbhpcof^;^>(
zRDwb9tC8C+PppHLFm#)h8SinFP-xJ4{wwgL(f?8L))%pXHKK?8=MLjWL0D0P(q-(mV7Pk!EdbjSa?p^|yjvVd|FcT%Xcbg*=Ifu{+U^(W{30
z+wnht$IrVHES`Z%#Gep=HlETT4x;FY^O6z3W%m;Tnb;5$R#J4wQ5Mq(KZc|uZ(x__
z6RG)R!k%PFo&zI@Av2p&dNXp?Uy9tC>=S~bv(X>os}|DDNqr9Rdyes(1G80ui)XZ@
z=v*blNTnxS_+9gDj^Zw3c>os?NQs@Bf39|U?};-<0+Zj{z5OpxJrS1Wj$;j~?{EtY
zxIQ+&fin`R3Ots7@yCp;vi(HlVrp!&rvwTu^IzGGG$RoizcZI*14?rAtIEsrj+sgs
zW%)R2UJ8rydLN1l4Ej)QQ~m6Hl~40?GU1Hk5jRu{eKwL^o8Wn8{Y&4zo|dPT
z09L?8ExdXMU<#;@T#ZtUWomA_Gro9Ra9-#!BW5Z{|y0
zt>Vh}7lQFv{`74{0cX%=M;cw&<9-&{cs)4N{@r^@k_UT*$(?jk*fmFs!78(Sk$c;x^$2yf7{{A_3(D6u-o+O=O)gfs7^Aj*Xf{!ZU+RC%dvYJKyN*T*IT+(*O
zC84c+N@4)7u^44dj%K)9YaIgv6tj5P)KZ*n1e_xHjj?F=SH+eysq=gocJO>R17=1(z(&&faQPLWhZ+G3zS*7d_V*St13<-X`bXktUt7LeO|}W;
z!$m;;OpL?BtLy&BM%C`ESgSPR9^xfgG6P$VwI$}km0tTXQQBi{p2fTKNAZhxro6T~
z*M0;h6Ct)8dwa`8j^u0R;7$)ty!@VVQLOLPltQw$jYv2(f0>OoXC+CaUF9xcF3T3&Ev-?u{o-HVlvEl{1{cw0fr{6)e4r%Np|oDN^@WvM|BxHvQyyi&+pl9rFjA+
z)Ox7=nfG!w#I;L&ENVWfmtj`&f+mim`;u{SvQ$^;kB!YZi`ATvdDnAy)_Ppf%WE0~YU%NOa5odYU0BkB#PDn!1=!QKI5HDS>a~Z$GMTtl$4$
z9qE{G_~-##Pm+IsR&@8S^0VdFcge81Ey(;ozLv1Yx_xj5Hby)XTPR$RO`*q;e(O-g
zWn${QF1&j^yQGFA$D!Wo#QI+Ix(|~Gs4w#4ClTPj-!cIS_u03?W5GRaahd;=MpuC7
zgvldI`d3qZY>Em2{`i&6?u!S<_G~HD98HMO-XWif3JczdIqZ-;#G8@CY{DblQu@@?54bbH}N}(^y2nQe4}sz%ASZ;|9rf3_%wHM?zNe{gFJ0B
zHIBA%|G839OM!iix5)BWcBRufgSCX(=cBk0@h9hQ=X}1BWQ|R&kpFg!8_c}?MGwiO
zj{$;zspH>QXJ2n9L-kx0o2GL)##p2L{StCe*}K-%dx?fC_gmchOVMEn@-1+Eu}{LX
z{x8N|MK_*S9wS-r5U{giofc
zF`7Na-^JMfePIO6_5(Ho#oXAP;TeYXh6Hb}{Mx)$eLSHdahDzy_vISc%|yBGKzM0@
z?{jQr!lJ0Y9L2EnRDKi&Cfe$c`pyDxF|Q0uTtH+V{P9%IQWZR^ZdL|{$NI~*cMzB9
z=XR*VpC6YepH=fP0;AMy4cO->VFZtzX50B{3hBPmF5G
z<8(NH*)k_(hzVK#LDL&4!7zm;eejcmSy!iu>~lAO2ITG}4N|TDvo}!{1Qs(05;SSV
zigX{%Y<~dh7R~H@xs~Xej7>in!AzBd#kU)qs4_1inz-`S#Qsi>dy?1yM(MHvsOn(y
zh_4cK%@r*W2CKT_by(J&*JKmM08=$dX&SgGfHxZ;6dg(7R5Lv=f~U6yH3rC)!G0%#
zu^#CzNtv=G9C-&Yj&7~oh@_PGH7_Kg^_1=OQy}Jn5o`D#zDhn#1G^^C!DKWVdc|al
z`SiG6d6;=6p0okvWKa5OBTsXcvf+AJXE0~nWkZ*YK{nOQl@_NBnB*d^VY;z5j{6y{
zN~aE)Z*;2I_UzU#f&CXqY6Y%KKXr-GV|UDlLR9bOvS=+1VJTF6F;u)j1?-)q3>^TQ
zLi0G9xvqJ6v07#|6{Hz<%o8O53G*3Q$Tx$ZaMJ@Mwa5*j;Ziwg*}lHLtKl(1s@WG~
z@-O%LSwtx8v8;be{XcmfJIy|C5Q|x`
zJ8D`0*8}1oZCfa_D0NIeuDb$AT|FObf|VK*6a#d3C#u_-QmYv-
zzYZn6cYv2Nt&ml6+$|Hh{r+Z03V1su&-6M7cQP{s>SSCKf{mmdZ-$Ia;`hD5iDH!E
zX;M1^tyO8LKeM-lzit7djlNtAQYQ`xqX_iDhm8(iQc?=*GVrksL}pcf4RK)@G|7*z
zKp~Fvu5Q=Uwv(zFDNDClE4r>pd8{pUBCz!Ix-g2$t4A>Q_UeHhRI?JQRA8(0FSTMn
z?evtIsID5&RyK^rYp7K}>$o3zP7N;M)%<;Ux7I-^i|5Vmzng2GsSRp@jg98pWu&-~
zvN%Rl>aUioL1vBGk^6b(uC0~G%yJnC2|FX?<1+DmYdDwRbge^Dqn>U1kS%b=QS0nB
zh?aHym!$4dS+ii!Pp%@3a+#4zyw!O5tu=h_4$x7%Jk$&fe`Fq^qo$r}uwg0#4R-8U
z?0~qidm54w(RDte+H$1!`6y7j3zU6CYzL9*k|yW!;y$Pzyw;7&e_`(YNM*?Bq#N;0
zoG-FGm{B20AaZ@V+;-cT4!V;+tDgez1FP3_zY9f+z{Jcu{cmcR@zi=_gJm
zv3GEwps-{9Fx)p{q!+)>syZYah)J&0J@g>U|IU#qiZQBMNnWbRQPTZ*EoM*gi`4Xp
z$Xq3&c!rjlw<9>shb46!htUq495Y`utK2*)YuF9sgZVa@mDGz2|_PLu}cXih8($siQ0-1W9PdvDlWsH3JGl}sGN#kj_;cl8aQ
z2}6zJa&aovs>b>EQtpQtZ-c4PS9Z4BR_XDUnIFI#Y%AHgo=?
z^wXj5++_EW)p9{A!wSaFAg02JxmhYcM@n?(I6U(LzI<3__9T|7Bp#JSO1jGtQL3|A
zFoHKV`WdVFM9N`U*f_itPoA#Y*k#=vq_HpR=Vmael2)*Q%Z{lumx?ns@4hOTiZ$P=x*{&osd!p|4^mRL;wAEyGW5Hvr
zo~RL?^!`MO7Nb8)<$IY}uT`1fjjS-#C*O~6=Q;-ozJ
zN4A~5tFRW`R0O{SQgNeOGXKk(900
z0*-hm4;}(Yq?#)Hlwx<8#baXrN${eUiCsPM##T6ft2(nKvJdd@6;-~_Q{nCkD+wa~
zI%rL|m)UNTvdM?1s=^KTlWt<+dR(tDfwC;(u}tP8$y(wuF?hjk;`Vy;fTBV>;Sh0s
zBlpsBagPju3n$PLrj)F%YeXwJ=aX74F%FE~h#{WkjsvHa@Q+mB+d+;h5%Wj_?zu_G
z38P?HO$mEIq{XO$YsSk9)t78X@vC#HRPgE9{RvjrPFk4Z8dQR3bafnFsWskMbC!vg
z&+v+vp{~I1iIKvYuf@#fw})39#y?W%F8ePH>}+&7e8~Ct(?;2*xq=yH{2On@U1oSO
z5fa}?nBLip6IZwYv>AmB>ynq?MvPG@ZM|@t%$GLoH^5|T{
z-8bGGz<;ZvqUESSPpMOx!7v*7SWNWXWWYxBYL>IZMZ&}f_nGbBdY)_8>!ugm>C~o7
zdk^oP0E0te6sZRI!*`-#W36W{AEBc6hay~$enk`0R+bb`{px*u<~iVoo!Tc6nob0tjF;jS
zhc}DOW5tNFVdWc)zwXpnd`>hpvEUHePkP@>^T!5o$a~k+5Yg}=Lo)-M
z5#UmoSXmGz5;{F&0!qpI2HcQs6(DLJ{HnD?UDV{jPg4%fmcOI7L}cbg*3&n$5D0JfD}^SE^r>Bk
zQKX0u`UL4PM6oP?#M}uYh#u1t4}~RhmlRj8T}=1C`D+WwTmmkDnS_gXb1{JH+lN??
zYLhb>mMr_F$(GlY$}a$aj<;l)$RU~NermFjFLO2
zVu3V2pP#EuwQj#PV@l>y&ilcl{64?xFL>^6gb3fNzVdwK)kHnY`MvE(rmZiy+vwMB
zCh_wqa<)&Tw>z>HyDiybN%+^0R|&r@V-OYjaP7au`}em0UCb{@AnT$^_(xUF>i=6YEYl9eV1$$mWqCwZ^1mdBJ=FO1qr0E>(b|l5kCdOIQX7zzfL(6GpQF+n;Qut^0YMHTNEvHPx3r`1TLi68t
zmlSdIq%$S@!_aGFcxL?sx=^G0r}-QZ1afKnJh
zY^JK;dB5g>Gma2`=0AVBkG9w1`!Ij+(4rI2n-DXRMbUhll-#rryNBgyy48(pnK^xN
zEaBu2!)91DIF@5?snR)EDy^sXz1Bw2d0Wg?sc(<7R1zmc@agoU&AlR?rS1ll3az$>
zk-Ambm@9j~8#Y`qB7Rl|bh)huj@$M)4|SfC(2dvKaYorT%%iiNHeghf;h0J~sP())
zfVMtEF;k)fn~GK-d&=r&AYg_H)RddM=-%;~3lcjtV5VUX)k_YWN39rlw(2HaGMZJr
zXZfTsZ_ZIPwnX~M_dSoY(c(w}S2PL^97#mJG=AIk?w$nW3(29rMCQ_?2^_B4;CN!}
zK*aKYb~lB&!+`f~I0xzKp5DSnO8-%2VwO%6)5n|}QxOVF^B8ykaWZaHgR9NH~I
z?K!5KaKR`A!UKvHFxB3c#t}hfVAHJ5tSh($wtP!+RiXBA6M(vHvTzBBdjvn%hLkD2
zpy*4Lie$nmel1A-Jh)7x-sAMXUU1)svLjM)dt;<>ROU%bx@rgjr|OrKRAQf8F3qex
z97ja=S24t3cP-VZj{T)c0GXE@o`9m5-A(_ct-04G;OR}|Gp4OVBQ9z%s}$w{pv32s
zFMGx-meY`^%SNu|`}@Fzs=5ErzuYReWg~V|=qO=D(x<=aXVrAr2vfRZL&`v{BA1TH
z+P`1j^`nF=JJtQ#tb2RUS{ZJcFT~!SIDY?~wL*$WuA8UO^*f7wJ}qg=CU4rKrzcz@
zKe7rb#Yf7^?Gz9Xc-67L8(i
zuEzB*cpTt9VG=OQFtK~39&JUDc5XkNU>~pTCvZwr{s(b`1QN*
z`nSuyFM+|Qr2wc!ZY)O5e#+EFBD%#7WaDWs53o)MVJJc%f()uDZBfK);#&qT-ZF=4Cq9#8_F>w2Xy>}OMCt``nZ`iB1
zTjZY24@p1*zV80FnJ!F0vw1?ZoP}>C(vh#kaW1{OCCl!?oc8b$k7MDuv@MAt1OFw4
zVxzR$J!l;>Str`w05#2-dmi2d9><`)8|>_NZpd;~R6f{Fo9hbDEO$9yn}n^Uhb(tS
zrKYX05wpMhl^$9bNx{|_8rDF)&(rZ6=m2x6ahRwfI})>B*^uD|LwHin@#wR4+pEQ*
z-|jycn|rol<`>>(okFy?uu+bx3HIBkN&Ww-=Km96nmZ8kdz}9nrY4upLEzG){{IQH
z#(QXO%e~8Ej(cMOmBU~_;xR?
zIEBp<^p|zGLRp(WgExKXWbFSD=2Gd5{GY{{$$AZfJoZ)
z@zvw5ovf3IssV%NRwQBuxMsLN<-i3G%&d$7y>LhD*N@XJ!S;@XOgIcc3LUuK-0_el
zGX>V~=dgQEYTzY~p;vsn{{G%v-Iy%rotr}ElLL~XcZD@NB9LDq_L)m=E*1LywAGxC
z%fF-yi>&{d!&kP#MKBV)+7bXny4o~fL(v%RcSy=+0F0+S)Kqa*#Ik*0lunuM6kI}8
zE+8($E&`Hm-DCeE@XKnFOm2o2OV$6|=K!{n
zf>rgq{Jp~uy$%zp$^jXpN0-&|V0fCkMY3w+O+X49c*l#g+Z?%Y*w5j3ZiM>ubIY*+
z;FUjC-fj72o{uyE=A*vsQF&FpbI3B8I{4NfcC6+@O@Sovp+H#jFhvnVp?WP<)xE2!
zb&F^6l6a^cOJ#MvKQ?Pz&Zu|3Y8WxkpL^>)S0&b-r{e
zcb7@D<7ME^iCah?8@kR-T>x&cPt|gbN;B;a!DP*?U3{7^J1KDLFBN>|p0s6s?ZF=}
zd+T3s!kg?;qHy{BSk+KIknLe4+4o{ZruisvXl*=pR5G}`@s}zaMpj)*Gg@)~NVJ#@L|j!@H0A=8Z3-W^
zUPSi0cf-VGuCC9z=!Z9U!Kqw^#)k)^Q~_ToDSf6NPRSSn3j={2b`}T64Xh)mxhZ%~A
z>!He)ww0(4q2<|#1YI+!EL_snP!D)0@Auk|dC{;85t-6+R&QI~5(zugs4-Y-#MgUR
zwZXAo={wVtu11O2f@T+lZqJ|J(_yUN*S<*dVITibNMCJyg`mF@9Q=KzSmo0cSEUy6
zpMQi|E4wJM%RfI_kzE@%4aZUiionjnZv3%E%pFe$b3+(spX{w|;#IPU1CiHkBB;co
zyjK_L`_*8P{7^K*4zwEUR{Yf%EmY?97?I&(V(WX)In24anDcwoi)|%RQXJrM{#d3B
z{q$LVI!Y{DR6cMek@d+Jf3AdUQ}y-2dYLoaeYwv_-B#{+p;IK93BcE}@DTE#jyw2p
zmk_*I>X4*CVcVLXrG}r{6W}V2X!5`G0bZiwU>pj-6@RT}S>$vZf^abr{FgX*WR9}E
zBUzI&5|QEihB3i*6u;b*OJ!SG@y_-DoPsr|aONe|pQML1oKRC^qcr
z9;`*vJ8Nf2LgV7(G?xg-)J?({1Yoykpfc<7oacQG6N4^N{>5lN9)
zTe%y|IHd@*g4?Mta4}6fvhD}&IhF;yAY)aE=jl7GdR<@=07_X}Tp~^nN#oi$t%PC7
zahb@E##p|eG#hJ7hpA;H*#O)L8!xK$7BC6rU@ckutOh1Oh7>OvO!|3J$9F~3LGSK+
zYdL(AS`V#?U`xFkOPjcUQ;Dr%sGJUOc9uvAbv5V3+;#3l6d;zJl=t4G*-pHTvv383
zLRZn|J8mK`jZ+JcxQ5SPu&b)Y
zZa^5G56dI}JKcFsQK)2Cn;TFfW+VFmB~a-L&roomx}w^cz#z>(yA^b^5$D>lQOILP
zRab1oXwH}7kFf!hvPk$CeYdoyis7+-cqTc~IeIh3Ijf)W_45|on$q=&dslY=#=r%z
z^!3-noZiJ!ypdYc!;e0EP)5WBQ9i_v-1GgonJZfp3dqE|-owz(xjX;!E453XReWsk3m`+O)Dt~xUhP-&4
zswTXFy~EdzjNt2$mLDle-E5Xz#g5!b#TXXPCp!zCAt;{oB7h1jL-iz{5Q>^!{50H7
zvN_SD&EIu>&YD=Lv~P6~D3f8;j86|4A_bn;q<65LRYnnZXX%J^|0B;s^yJ@vKB9(H
zN%ubg74=(lP~&dM>y;`urLb3mAG%@HR*kY2m_RmCmx*Q4dL&XgcFM+F&L=Bf*qOhH
z%I36t@nXLZJ$yue={eS`52|-4q!}^{nU6%`+FCBD!ql;6VWvbrOmRAH>w_awxE2T={1X|wow|@8xnU%K
z)=#iBi9{*OlqUD(RcCrnU(HB#MiGz-60fM4Cf0G{M%`2yzEo~`*FyZ=p32KqBPh)t#EJicN@0V+~{=`G|
z4?hVqDg%!@>wFX{LJ?vjV;I&L%H-MH77T{EQ_aeqykMd(x5
zhhS9f;eBUH%wVi0O4G#++IG_WSoSaK_@51P;Vm$X6}sRN8g8{LRM
zt7u^dV=wRA#<)!Mq{KTlaDj@{kfzHSBKGYBlLaQ`jBt@|^bvQCgz*KLW#^(w(7rJY
zu)*O=;w)ld$Zqugig-P^|K*D9LOmdGQhCcfIxhnCrcxoqRRa!OK+GQ+R!8~rMC!&w
zs(Bbs0aMNfjV!@AO$Vj$aKco2qG%XLr8`OKAL=sWvE%4m6vBN4<;h39{~kq%*v7N*
z-vA>Z34}q6*Zo!r%R%A>7yV+v-n&r&Ts`Vz3~utBgevfVmYaJ0f0p}T2Lh%ECUd=7
zl_Ym@F5~8tluFXJz>>29!NwI!4<-SUJ6EDgrk3Sor5OP2o=-EOZf-xPoE1V?1zukVb1kq922vaI5P
zrUJ`Pi3b%{9Q!2|RSZDe#PGdt*vfTn9G&!zoBlcgJ)NoMkpTFI6HMtI%3PeXt9bje
zg(_c|v2E4;$h8!V9ye1X{y+P8Ib)Es;&hWo%z0<=nJtk3p09ETzNmoQO-sK#Uz0c_-Iv=hJX5{_j4-;~k_1y2lQ--`JShx#lP=CtG3u+Kqv1%sBk-
zH>8}N$7@7v@Jq`AOQ~g(|zXRz-x9dm!$?v*YeK2Bzu+XGZv*IJ%jD
z=q{wq5ZSWH76-v6e3){Tr1ROUuUqiUH%93jGS~kj^*6$=tDcP`20_zOl0OOmjQ6hr
z;?)IG_?V?0_3}!xxpX57TM~wvNqR9u9Q7=YV>$lQU4=}1!2X=PTW$^daJLYpDFb=LkEN+$NL
zJg5#@Oj)|zCT)g_FVV%9SiAmRQBOM}4ur`8mykqJ$6=x{w3@iv3tYGm5g&$SWEEz(
zsv?w*$&o9aW5hHiZlL+FL(fPJ?2Eog_T?s=|B^(6Cf0X`dd6n;LsxNR+
z9MQiBgxV@TZrvp$$QXyCzvrp1k5LzFDR_38o$LAQi%6|VsT39aUE@0uGO$FGb~sX
z0w4;M>z`YcYf62|mqfGkP)+sEpVv3erU{(Ddm?ZbQ&Q@Rm&PJYfg~<(hzPN|yuSiS
zqQ~ye%y_+?a=aTGX43@sEqjT;`NIzTtO<|7eH-nas$Sgz6TQGG47^Z=M3UCo{gbeQ
zrW0z_#ois)-{E)6H}=C|x-&;inhT%>`#WwT|HhV8rQ~EV8j-LT?4x=!T=v_agnRES
z58+5p$T}V0G4kXV|3LdE5-`t0QXy68AKS=rRolJ&R5wH6uOtvhQpsC(mTmjpY|xby
zTLA7j1fE&3+|G*HqQ^EruibIB<*!6~a4FW4LKNY`F6Tmr6NYaL|x2X-(X^VO?AC}Kik1*uZY
zK$hhW)adWKV{-Q$)}EmeJXWE&Y7>;C7$U;8a|
zFMzW=oOI}IGgsik2tyOERz%e?vXQZ)4f?tdCU~EPF@aQ9(bv}1doqhpbzeJJ@X+Yv
zBTM_P_FCdU8J1h;V~K*`0sbBgcj;`yylA6%l9pGpUR$?eUc
zg46o)&oG9A1qUV2fC!w}{%ViZEN|lP3$+{x>zxDI~kv{#f
zxaI*ChuR*_a!c-FEaB@Up7kvrt@F#wmOWaHKPCtNQWSB&&o>A6
z6*a5)#uQeP-tnTTD_l5(kO+ih%eNxF6Vy8xjq)nL9NjbKj~#k7i
z0VUHc8+cJ68UIEeOLbmGWzSTRpHRyV`Mr=;c%sZ{e`P(RM4WrjPAV1twUCdZdLEX=
zvs9hmTYlxK>rukn^lUHKN=5Rm4;L{^pOJ-ClJ9Jf+9Y10+7|bS?SzlD+E6iRD7E0v0yafA@wFmSQw#
z-%a(=2fP#>7XBp&WM3+G-+Z}H_&+yZd9w(TqUJ2Vm>hae20Grp0^Faulx8lMm=-iv
z?
zLd@zA1>nP#W)3Nm#8L%R;(K&c*~{Jq1>g6|w7a^go@wneeS+XhU6obt_R%JQR(X-*S@kp&{%i*Um50_`W3|wufM^&BS~Q^wn~j$
zhzg@l08;-Xjd|+9#iw#%ub+yMZsFj6EWi;loBel)1AF1{dBT$^HRi<_7v+nzlQ7Rw
zQZy4jbmt4(Ri#LO5@KV1d45z;!h8|GpU4-sAA}7$d%l5>H^yECJLw+j=HTC13&A5|
z@0Xhk#&zK2jdY=9uTHvdnmm3*pgCTBJpkdaB{RnSa@q~3JM&Ri6@HIN3KCeRh*UiH
zlC!z>P#Yo?f3{e&J5Y)Z!E(A}`x~-Co`JURqcp)}jPpcz}OL%_eJ8cCnlCKVi=J
z`|P6s)|OwR#Gu!k_K{$%aM_b_=*PiuQqjjyltEKIE2TT5Kaj3p#*4NgWraqidEhWa1<*fUvz
zmy(y!lzGbI1d4tw`d1PjXIS7|v@4#nzs4>E9_Q1q-PrTAqSaj$B?`CO-f;AB@!>o%
zr74V9uu_|*T3U@qz1!RF80)x+6n~j;nlV$8jhrpF!WS6(*?Joz_bnvvE`Q@B
z5<4udxBnDVh|UZTx+{WdLW6vcZ$YEp*!_g7?Y-|OD{$H|pZAB^l1lv`wD8uE6E7Gj
zDF0>hz_zsWzBHf~g$m41>AY=A{2ZeE`;JAaY{Th(9m%bdis)IiY~LYG@pT)g
z?$56)uk$X2mB8^g>eb9w9r%m85RWJ9fbIskfNev8SEi(n{^O2>Vm-d080sHtSQ|Ie
z+dhrfVpS?XzM9F6cgz~?69QM29F(H5;UcFfeyWDA2t^19^U?9CrvBii%os1Fjj4RnedeJjIJ>sZTca-8}a|jKi@w2N>9pu;$
z2f+@X1k)id6;5_wImXD00Xa~>`XY$_^VvlyTDpBh!uOf;`h)0Uu}9>DM}A7Wj|L;?
zhhHEme0WqT35~gMyL0-L4TZ^v+cgidXeCy5ixPo$r?d-fOgpKEGBkt^Cd*oFnQWst
z)N+JUI?3NDurhsmyeI)bw9dPvGDgj`7I#Eas+`n`NS*aCuep%MgV=oc4Fj=%%&@{o
zShs)SX<#UtyoV^%zl@?8O5a+H7kT!=2-WWGkl5$oi3v^g6s_HruxmWS2&O-%u6WXD
zz@)}+kNRrLMfr~B5~!Nuy;PXTfwqUDq-uFKJXH1GxdzZgV*alo|G%64avB!teblzr
zRtk!?Sa-1J99;cHzq9Jsr{i(PIx(i6RoPh8>BS3QOHzD}Im?m(asn$8uS;wQ^WJQf
zIgLHP8t=rDXbCXcKK8ZWHVzQ0Hsb>ghP&X++M1G{?&dBS=}Y<*GFmvXpyXs%uPJm>xicz0xuo0hT%ZveNrg+s2?+6}Fi~(DfU6Ra&sSZY
zRvJz_rkf4~YGjei3A%e7{xkLv*rkS~DN$DZDn!OCG}P_T6te$4(~XQtTt95Wpe&~9
zx>%Gq3qYNqH^HlWtqNBY;erLr!8SS4A3xt1UYV_5V@7q6V=5l2;$G~TxwJ?BsKLc~
z17ohe7?YpK`00WHX@K>5Z|=T}JUUWnU}YdhO}pPq#TL>`_x^GS;ZgC{S>-PnYjm2SfS6~UcnN)GlK?B8~RwBl&1-$7#jpq4B
z34!z&hAW>x(i9`^RxWDMlPKq<~knus4}8+hbJlRKQS6Pat94>gw=8p~eX1cyk}NgzRSVEP6Kd
zgC+X?RAt5PN;r$HI!P7Y(n))-+g{bPM=Ptil^8)mQAE!a?6LnrbpjvzJsl2O?OB
zO7CVyeSVb68g34&tBhNNLUOxm#Z@56`Xv0_FVCrVBX0g?$q78y{H?h`NH!-88*=tg
zN)jL`J`?A@Lv4?*a=>X6w>&tvYwmAP;$BBw5(ADG2Pwy?X56Bp5}ritAHNf|KVmLKYjlHSC%)%*Ss{J-%g!
zYGfbH&HfkD{W@*7pB>a#@tpcW7BIBX;aumlPq4o~0`U$XEx)X&$}MS;C_@PtGL1`I
zt1Pp67=G>Rw=^pfjW&hn!=-%v&hUL(jl>zaI;v)3-vTH;SeA-8W4!hG%xK`jCdGxi
zF0`gq_l9SD;O$-);vYb4^b89_7CeA`vELtb_e{B(SgvzUizTj+tyJ-8*?>YvB(>li
z8~L%Mxf+|>S>5CwzG(0al0tEy?^UT&71fNK=ty5zLPl1>9e9YLp@$Xzk9Jz;$ynxd
zfeR&a-D(P~`<)3t%A+;8=m?esqE|Y08;<6z`crp(3~fkeaIW4zKXqXKMC-G|OGU!7
zhg6b{w2o|Qs1FflMCrqh
z0ix~zf+C>LiFCKwgi;aYMz#xy`Q^;MfjRsg*Iw!SYi5?uvwRXRcvRKhc_zj)MLt)y
zGGQmBzfT7&k6jr1{HIas(eJklzw^dRQYDF(dNLgeY#4i6M2-K!&ZTSL?obZXK?EQE
zU=2tmX0i8py!@n9fthM)m`plD(UCccO(qgya2vtQ@qy^r8@|p6-oDRH2fAS1_5Z#k
zUamZPX_MMSf;nqieNK5|5`M)+JPO$H;p_u}i!sZZ?4V{iJaeROOY7yhtd>vYJJIiIcbX#g
z_)3NOVx=F&-^}j%dE(VKf}PBdG$iljxBe&Ifx5~Y0nJt4<@vDPy?=fM>s>{vZvdY#
ztaA$kmMQbTuzL!0iB*B+Nj)}x#iHFY=|~AX#-IV7#4a0tfbqUHUzG`?$Hns~ab9;r
z#^Qbyh&u#hPkP?tfNZqqF05hqdJJt=02GFyeOn4K?=jgi=Dsz$S9yun;H{vRHi<>X
zz#1^9lJq_ZyU@K02n8msb1AOu#r#5N=556|tEnh7j>a~R$zivO-1t#NPZ%`lH%r3O
z?rD;((US?z%K*C3ghQ3OnpF1#P)Vf6*=yJ0r@Qr9t>4bZSyurl&8~m_f+%lELZnp`
zO%b7-wBt^%%}BEgSNnw~n-+roAj*bm0&rshJ8g1#U!Svi6CS+fw5JysWLG$76PQTb
zF`K>a{phkpmz6jfw>VpRoNZO_{?>js9QOZR;;SA@C=+B2&39Kh@;NBtwon?<=|#`~
zZ!_^fiEqC7=sL~+ls;2HkAcJC*hcUx%LoIDfrIpQdSc%HNqlSdWF@n#;i(-%lg(p@
z%A4k4Yo7yvOk|GJ|4IC0&0!rbnOWj_OMlZH^oqL`CZ=iSK%l(%KZ)Pt8F1G*|BvF+
z9N^0Vm~@oL`f=>712D=(4=k73s~#0^ovP@3r*$|oSyz?D^7UgxDWW|e22scP#|g(`
zQ3CoZ{bWI`R|Jx&WA`FU?me?`x4!FwAMtn%$g_WB7|9Px9k?VCx%Mg+wA&PD
zhy^V1)e$FS=-zN`RuX#rsI)tB`j14$|A(>j{!6kC{PoQg6!ix83=kDZg{Fq4hKhTn
zW~B|oJu5UTQmY#@#Z_o#?r@bY!;zUS9JyL(HnfGKvW-1fw(RhH$2s5g!+E{VUjY09
zH=p-)T^|LKL(T^HqW9c%0ZsE;9%9qOO||fRXs=iPs{^(G-0Ts33%qtAiVq{3KoNz0
zc5fR)o;p=Tc%&N2$OBZz{cyjT2~Esrj9D%$^=F6PoOIP;#JM!P6Je(NP0luFOk`S@xxkhZX3BO2zk3~%rLy3SdZ{7h
zatm_I6XQ>Y3dN|ZCuV_&mtl%?o0eL5U(aqT{Jj@b-u9{VZu7No-DPC#crz5YceC)-
z`OJa*WZ=?R`!F(ez?gxk_?h_elHYy?n6HLyqZtTLt$b#@yUG@N?yrqso?%doXe5
zQ(Pt(G^7NYbmF|ifSHyi&
zexMjQ`e9^0<3fJ!z4s&}xJ~{I9q+o|Zy_^s2%+e(^l&TcYr|dB%2MjjPwUd#R!mK3
zfLv0G``0|Q-aUN?b#-Y*)uvY4+771WIP&Z3`&%=rZffyo_R2IVW7oo(KkBsagmYx;
z>6%rB~n7>8x1&32>+3lL!z6KQ5^AVtP5H{RV>z>l;zl}|2yj!
z9qnjAEET<#CVR!Ue$f|hCi_iqZ^Lti%1r>410a5$Fi_$|W?)-UAVbK|PoFQ?Ivc5)
z)+*q{N5T>1huU_;gh9ne{F;J0Qh;cu<$#9vb{DxR
z9WeRj=)a~kL2lMGw(=n#U@pY_PE&|U*u=2--4b3!AA*ivE{t6kLsQOX%)mp`bu5Fz
z?(A%f#-|})-^{VTnbqi0x&0Z%;a@vC-Uwlde6dMUwqn=hG2{6qj`mGv_QfnP3i^@`-4u+#l5i*~_P&Jeu2jNds
zm~6c2WLLB!dymG~Q8%9#Nn(aW3d}t^s^P^r((OvevDKP=4F@}Vh{fc>`kz6_F*?6%
zmclLNH{|BOZ-Q-=931$M)`#?k)9!(49=;j`EdM
zb&=__*;0t7Owp>&blF|kmOHg#b%*{I$T4@U9RW50XfGNsW;5tY6JQ5+=-5zz(|oUz
z*v$?a;rarfbk1U*X-VQ%42yrWj#q^zuTTT1j^+
zr|^*lg8F&aJb~LP`dn21Acw5d6YZ8J9o8L!Q1m#XZFr_W`{Rt#+5MVpySj2HLxV|<
ztd=hr#lh9;Jxdz>xRvRS4T-`l_nIsd>+-aDR7DnhS|vix^#}pi7InmmA4fA9rMGcu
zy_;W54(e)0_qzTr2d1k8`ZEHhpIw@X>cU40@maloSDQDDCvk%^fO@a2v^Pv?N+*xKd3kr3@CJ1j}P_VhU-%tJoFh=c4aZd-~1%8
za7MyH${5oQB0n0sQ2b?l#+zbN?th7CFACI=r%gjVfc?HRB13izz3ke?Kq
z*Tau`sg&8{toS8w_k#-d=14FK+}C=pEZJGV+_JyL13Or!Q^-O(`6e_8VNO+4v9bxp;~r=*2(YM`{tjUmhh@
zvQBU{nvS{y8n6B?h|j`nHa8z72!Io(R39ol{d%60kKA%K%jPxEg=q-_05-XRfldm)7o#zJ@m^iIWE{I86?ZM;q{V=I-UTH;lP^4ereP6WGgHo3dG{4p!XuE@?V*(;76EcF3`5VFA{iY}urg;k)4YJegWrY|#Q_Ysz1;G|H(>&J|Dr@?8F
zduJ@Fq7$rzO!5|-I;}u&z#}YIzf+*-_$158%L7%1MMKuI*Dj}H344Wy!uydQWaM0c
zvwaj+x(eqC`YWpcyZ!5mmbXS?TE5|pLV3pc9BK-0?gS5mSE!-DZ_4ns!gckrz&m`#
zb|!qChS355o3hc<0rn8*(LQ{)09iV|9`oBueTm2fX95pb&qk6N`;o;Ml++v*xEt$|
zL*?d~MC1?!2NhG0ojGo$GW;s|;eg#ya4X(wn|%LiSO#CqfDMtS&|_(+m5YXx0=;$@
zB5HK|U(^3F`%6M@yQ7h$J!K_)!^Hzr3PrEp1l97v9m1_N25LKma)cs(Uk2|2_y#@lw_Ozuh(r?nx*8Ts18z&rofQJoH$PtAr!7MkUOMc|}9+s&Tpt>^Ov|itdtp
zZ&6hk>Sik{HJwr{-+)L)E8mP_vf?W!5y!RiD&%Br&q({|dNVhw`nZjZc8mL#Rn*s>K|+`ZWh
zdnPzEB~KlSTU1?u
zFfun!wN=296-b(3+-8|n0<}=^=9O|29P}4>X&0_y9-#iKf!o?3m?Ls!&CN=9P{}(?
zMVyRn-Q!Z3x3>G>*aS;Lf%_5(!%$eAw?^m}rzQ7jAleu-eeEu11Y*Bn@7r0ZLh6?T
zeLZf)aO;$xSWzNV_Y@>3TcxPRjxhdoIuls*tZ#TPAKqx_>8kS6NEpUe9p!Nbj-6%H
zC1?$m#35kk!WZgdc<0)ufl+~a2jfgO7&3+3jf%JJ&$s$-16+O9v1L)C3`uBZ
zpC+aVNv%S3@!5hCgnNOcZ=D7RSW-ChLNq~DD=>RGGu{fnf3!cF+q1(Zb!9je=b$D@jja@rah35l^ioh0`FVZZUqSmMwo&ov
z*@B9Szk*gG@f?+uH}u79>o50J0@J>4!OjF&C3Gl&Te@t|(OB4O1ii0js+i0+wc;
z_{eOq9yX#Ad#*jPsu5k6|1zGCEA7BP*aja>r6Vuz8|ykW?TTMihd91u(Xrs3xYAUO
z$a}{;IeE2T8+Me*VJt+hH8|!vCjKG)W+j>~Y#qjNEodLZVn;Z=k3l^=U
z(b3#(zND!Uu|}^&u7!&kI}$a4;Hb27S6@t4J7!ee%m8<@-BuD0QHraMny=%KOwNY7
zS>~ChX0TyWAcx&;ajJa3?KS@t<8CX>*Mb;wU`tHhvH>Na*7wGnU)8V9fuX~lmhatd
zq&Kipn6HD&tZcyxZ`|(+Oqo>%@&o_0Gn#ZAf4LdH;&(4izt7sTPmTuIZ7oH%hPS}O
z2Bbk2ahh+!m~f&WeNB%dtc6o~15=0K%gF%AN#_NuzAU`k3aB7o4WAY6n@&cw8;=KR
z?=`ywJ076aD84xgv{-|e1KsK%&3MN|b(YA(u>yZy=$rv2ojpVo_9(fi)(T)tYt@$9
zxvqPkA4w}St&%0TL;_ku?7?zP3;IA*@&IDq5ihn!(&W0h_xB`C9Lq=-RPMffl}sO0
z2PsYERz&|3af1{qj_jYHs>5sX!IN9=fj;6`a+n3evz~^yz
za4lR2>^RCbhuf
zvR+^rSd|okoO|ZoJabbUrArme$xpWY=}@E1MAvvD+wIcs+7V$R@W&88XW2_H^OS%
z19EZ1(~6|$Ms?S4X)jHRn_&uS=ogHS3{q*S0YSLtOoH2Iw&|+2#BMxH{en72?AdeI
zJ#CNXq~Lm3s|MVqrrt-hKw2N#3M@=M-uwsO&VE9j65%LyD@L#5#&MIZlc|Jhgv)Ds
zNYlp6_or=WBn1tQ==mWge6~!pGVst6AeCkTvBoddL*{*Uw}F4pjuA->xCJ=1=bRF=
z;a@<2_I8#9Fm}7PO-p^@o
zxmyn42HChrS}7%sE!g6&gWCwUDqd@M5ERE{tTa;VhQ#GY~_!Xf4-UoQecMQzI9e@qqDq2Q^`ziEvD9xv$Y1dR-TLL>ilc9|D>Wj52vNX}J*vRI
z4^iZ7sf#{eBF8n=)ere@Vz(t1D=RWu1CGIV9G59Cz_G&wxtBtc9-ox$v$ccurS}5?
z;I^GJ#-nwSwb$&`E6MX;6k8he1Tc`TmO(#~I`YAe36CM@ozsNXfW<3Y6^udufWWWZ
z6yv-Fjcmz;cz!ZSSuw2wSU9uz2}p9#F1g
z|A$*Fi+f_Iu1y0M4!Rlrrp$}KcBcTjvctX+7cWO6`pvW_gv2zpwEzpaf&T)HE1B1!
z?Lt~=mWU~v$uPgyLoao|!FIZ>{EiRZ=mx*sZ;yPW)bou9J-WByCu;`wHQ5kL)Y)6)
z#y7|eJ9iVyg8X`Zb*hIqwqgSw!489#+ou4a?&C|b5fNv&P`^w1?-H-+n<8Q1_WkX!
z2SLWn0A@k|;MO6JX^Ozu#iNuyFxwkxMB!045FYyyK5txF73UgRSoOEo{fTzk48&B*
zy_UKE!kgez{xy~3G{#&=5z4VYqkCLK5hM!^I(bEH-q;qSH`Z|a0s{bCV4i&9_w
ziOM5cS!p@fxLU}LJ$gd7^~DO_l?Gn81l)Gx&rR5Q>k%IVo68lr)6=ios;bljm!4x7
zz%wqFoV9}&`t@Bcj5oN;ienauruh`-4w??>CN*3XRJu-&$xlFS-_*@08%LAFqZf_WVX`
zCkyS)&YW?zs2CG_*V&whT-xo#M}50
zXjc|S{LxaI4nVytk;FdR^(m0>L3i%7HX_QmLlLt^ouR+BEh@ONob~3+ouA30jq%hW
zuiL+HjOaSbS+%MA!T5$-3Og=;ba`sl6*06r?o1-lA}~XvrzGj(_-me{+IfcBQM9Y4
zs{Zsf-igC)F3bl)B%g@DsMCpXZn=+%>S3+eu83TXjZLPTMhZ5NwY$m(&pY`*f;>6C
zX_8gA)8EzxpvbKCBV3vzp0^d^J4d)3DgF;ru=M^jTSCByTQv72PJfKGQv?Hm;W$Jd
zvYEi(syNzngu8jeGhQdU%}KcyA+VgfWbHgaWTPOFE{k^_ZS=3pa5$~u)H{@QeAnJp
zXeEjhZ12Zwdnemq<}#0bC;4AE#CZ5z~l6`9fPadaXs|j>5UDj`GaSK@o`##ThhOt90MG->M28j
zo95&_2iW7d_!S~%b38HKk-hP(;@~xnMazJVftaPG^Xf;x1>FNcAp=bhAOeMfe3LjUD6=vWGI`WB$kpZnc8KU4f^d*4?uGh-@)tUu^lJUQ
z4;qe-0rE#~#SjJ@_8`JLI)!?4zSZ>!=bi^$n1>Nl1;OJ(h!x)pm8ep9t!&otQp8E^
z8ksXi$#083`%0gS7jhg^tG{sx&0A0FUloulHt8rXip#9ekV(*X_2?4+oMH5dyr$!H
zqPIJT8NIV&X7*I?DXw@%=fRy=aG4HZZ!)@FXGHuiM}f3wPr#ur@3IMs#8PKC9zGZC
zV|&46IO3UkX{X49AeJm9^Z*9s}W=n+F&
zU2O~#9ufdW$LQPp7;Tm01c5UgAG$k)Y^-J8-88{WFY`Uu^Q
zE;#)9PN%9ZSM406fLG}~h9(JC5DQ&?f4I5pi*6}GoJz7RJf^POt{VZkbOQM<1Dew~
zR3Yw?OCDi8X7splYSV#2+bX+hn5t62SI&`rWNnc!E^dplUrIl4zJ*^3x#lL
zUzcTsT2ssFMDs(c&D$eO<=Hjv-TPNvx?315qG0>nVAz8L#p5*_(TcPB$vfK3FQ+
zw-qY|4(X=m28OM1EoNhEpMc)C1E{3*@z
z_cMImhSh7lJ>YZ(!kUfocbt*=dn?)41aW(Eb&u=jLHE_x{%kH-N@kyYnQ&2A0_{rb
zRl6@RIrG;={vPD@O*&E`wep<8n)kqW;{!6)aEI}CEhhnOF^nJv6uiW69pO(hVT!Ai
zDwNx3?-Baq#ru7`j0^?WWw&-EZrHch?ecW|as|qEbiEXB{}AD*%_d-JHHS*eva41dSnACzeLLigD2${+zX7
z6r^N*GxkBZqnhG6E4>E|idfK2Il4#xL5>Q)?F+2+d+*24_V@wLOw$60ZfReyN5CX5Xz(Mam%P`!wMKA!=w9l~q|%ztIOH!7l8=4(>Q
zdiSFh`C_4<KV-NrKX)AiiJd!jRO|uhx3aBBZXr-=
z8ozYwaP76$IKDmGp$^9|-E;ebc8cf85TD%*0L(^*{)-<6c-i8`8^cD<*<6aFA(e#y
zRxTXU065=N;FXPz2b9?I(uY%R|48RGt8{*DOyVhjzMXSsP8^i8Gwt^E#vt0
z@c`!BaPMK928GThMyz*TC(jTC&SEP&IZFShfBwIbg^}vKB3Gyij+B-PKe9R%=t@*J
zqX*GZ@jsA-{6f!_Qzod@yWm5cfnt~RoVI*9+Lkrm9xq20Zg(yZIdoq=MJD?|yzYkX
z-+5Peit4gXWdQxe0@nDnkFRDCen;Eny1%}mHb@h?KIcuWnA5*g@m_&9X^qi5CscDi
z^hftx_}%VHNfncX4PGLhH>jHkC)+1$93aFx_#ZPL$*)sfrozb$@sg=yQ;#JLz9(-i
zu9zQ1SWA~q%rWMx5H?FtrilyixfMY2S1y{t7ty*lF6Vr%-;l=xA_m?E3ORdk%G1|d
zQWWC}_Z9veFolpOu;VX6;o9<1+UZr?)M4$|MO7z53MYKy-#-X{W?
zD^@Y1O7LV0d?+D)rikA1x(BfQbi5Wl8D9?omad@?43RnbkVJE)5wqXFlK0O;d~Wp|
zn=5YWL1Fhk(ku4i&2jB&fF_p0{SESXKyuD3&gi6MQy@B2v2#Pf_M8OM?S}L-(P62b
zW^=;Cu|7TmZNu`iLnoXvEf(a2&DO$jfsC3cWvPoWd+$55oQY(?i4-+ja2?}_vqQqh
zbMJIs151Y+f4n{4;q%>l|M?do4D`uGBLT#E{qC%&q2}?~61aA+nN!WyKp6XyhsE+O
z3)D98K2*H8S)tg__k&1!@QsFxB$>?!P#mX!?EYYPyePxOquB*Dl^*u_deoV!yCg*%
z2U2M3w2+A{5~8>zg3bA|>o0h>^-?FPkuEhTwwT(Z9k-R>WH6g>F+5B~FIl8?Xlu1X
zWvHa71`!Gt4bTP)K_kOyy`2H{nI9MKt~O&Ev{epSc1Rj+0zWjAdgwCXIJx+TQV(Uh
zpfs6c2>zz>PGTR?C}~o{imNX2cl>T5hN))?_$D=u2!ET&{tNzg63)UpM+v9bYl);2
zdf-d|<;3!hFj(%6u8w(5Ao&JMk->oDlO^7Evc>#h$BE=%3`&_wn;5)yX>%hY_rxc&
z4H#qVvw64dTOgESzmA&I{#9dK#EDdcQ|YI^zlgQVi5Cp5s&<|cZ``_iMTA1Ny5V}q
z`})={a7XgCXRvoaTMitVj29clV7;U;qkgyD?4b*$3>f*Ty+$-zVeZ8igkqR|
zj!$OrYzcSNgk14cJEgTFz7NE)p5!TVZlYhGUbB~60vurie%Ny{Nd5ndY4GrJ#g{VB
zPX96uE+xqnc=+6d{P2-Td#=Pt?<0!c(E;5LMBy{1z2NU_NAw&}swR%-T8vBDLU%Ihb?;XAF-SG_RH
zVj9mHZWsYu{a%M5Lwt?h#e78FVZ}`Ey8-zSvfj(f)Ldd5m1hatzWx-wqNK>8O=XQH
zbt|16cz5qNYxDyK#>QIYQ0px`Ftc_M9b4Vz!Cb*{tyxR!bbo|hZH
zH3p(8BMm;BH&K=lkCqlTsH_&oVq$4WFLK1dDdrPkgg$yjIonW!29(Ipa(`yl%O5Bp
zgk{!4URtEr0P?}wi@GXDeiG0n5Z3t<1m9i)=_$w!(m4}ow$6-=GefZ)u?Bp{x#(OwF4i$XFMLbH(+!1nA0ahL{QZ0>IY
zy;N`16km$Ml#7p?!bG9SO-8miBDpzDr!ScnqcHKbt$i>L%jHkANzN1imAt_cD?>W9
zFv}FufRo=d*y)yD!ViCpw616OKyv8e_gD~e_?91wau@(}vq4I<>uTJ0-1o(JKy5#D
zleK_9*_exnz4J2GJr;oQOq~^b>oJDhvWySJ5kCso7WW0a`==+uEJ#ME3EbFf<%&P}
zqkpOJt7~M2j?`gDO^m)nCtsfn0Mwrxq3b6NYW1&Qo+YJVzeIq{jxgAojygNxeBnCB
zzIG)3AGM2&cH~Yi^R#g0+VJHic-IeFCt)cD<-1Zit6Z+%u!mh~e-XMgk{Vu~
zXVMa34annvDwZo-35EFF+n$TO1M2-ciO<4X$v*SpC1S!TysH)`1V;A)_`Fc$Q@hdP
zJ9~(5;<85o@A(?i)VX$K3is-5p|1K<{FHno3Kt~mtEo0lSN%uV;H|&@Vf7KiBDguk
z_jlaoRB;S2}lP7@*Fyul^bW(NV!5b1(VA7B}P?dEp@H
z@#MbnUErpW&PprUtx6nT7NaMIz4#H>8Gf}SnZ|=-=1e!)EHM!A4BDohe~1P{CfXogzV;
zU=#MGxDWOMsbi^o(-b9joU~aadX)54ZbC!8*d7HVNdV5oxKMat&Q4n$@R#!tgM;2=
z06iAtb`pY}fRhkkfJO#^M0YhRCq!W2Q5=GCsH<5sI1PG!ibV~25ae6$qpt>)uAsMw
zGZvwAMv{AQE;l_ov?JFN4{?+t6qZ(P^89_+Xq3j^OaiKc!9F7LBgNH9tR(D#p+NdF
zLLNCNCyql9HWLy!yd*xDBK4K`5R6HC|9mlMvI0MD3VeUUXn_F(bJY%W2)hJ)r_cgj
zf@TK65M`xOI>)Sx4s0=j4|{?JW9B;G!N0V8bC)7&P(Bgj$zh03ubHJZ!h%q_iUv~)
zwd9zX#ynxxF^qF1{`dNKQl`+K(oiXU(h?08T4I12ja>OZGYEo>Y5!&rFt$e8c_OZ2
zL=hEMY{D&?lp_%!>%WnR7>9C@-j6Y4!$8(Hr(nR341O16_^Bf{z?I#|OJ;cBsBwyF
z0_gg%AN6BiJK0SUQ(~q`G+m?x`t=u<$RI2pw*ibn!6q)
zA8gx92xQ2?2!9(yxfkI(#P?f(mm7n<7*b9b7>dm?^vV|-!?)OjGo8$T+X!N2;c8GJ
z)e9lczTgHsJ(iKigeL_@Z*SAkl5ANXp|bx>ek{YFk!5nd2l)0~Rn9~Fkn<1%!Yf88
zB`qv$Pm*;AP%XpmLHMJCDvVreNOi~M@q6^r21U|nqVKp0VxDMhq={x>%Cd_57m5-~
zl$%X7;em%*<2LSm;!CE$843pTEX;jP04>u&^c4AqAl7seS_Io|1-$zL1~>rVq)9sN
z6(_=q@aaY34aKNYxbFgzJio=*Cgue*f6d7=7Am>SW_v(m6@sy
zv&zqw7bU&Xy)Uj(pR-03=ldd2tO>#u!S;q>gLSoSKc*VO$3d9
zW?0lM#eSP!j+YQ$cz9}DHQ8(&z3`pv9g+F5gU`3}(FI{&LuwaD7+AV|C>3gV1}lvo
zH??S9=i6LyrJ_s3q=^abDjFE#CdrDP!y;fJ~^qXhYGuYV=XOTN@Y5szxIv|3+
zX4O#^ii7HuqmOAQ$Y92AIwFS}gDftZZ2{?CuB@wsLfQFScw>tnk$23gd|;ED;oN02%tO{I*7cO9pE;ILj8T55H?(lU7l|GGC9*#T{3!#^{Aw{?il|ZI
z);t(yrkx|qi?H&!0Xm^!wm)(YP&$_fTqTE{`yQajRHyS&_7i^BBrv5Mzyem
zg2-FB;rh9A-52z_P^8^{X(uhGT)P@pS(1U?UkZDouWukzPK}$V?me}Nbd>HM6BL07
zGSfUEXCoM{7b`XG6Yat`fI#87^XJZ;;)A;-%#~o4rHkrGDXeQ|*$aoFJ?ba2zSOmR
zsa3Afw3`T6tDrG21C9lgUQ0vC;z(m-bC){VilMvL|?>wU#__TSv1VURP4c{xJ%0m+g6?jFI4hrvRg`1SY28E
zllm3zkR0*o;?-kSmFlHI;T>-^cPx%v)W1F3>;I_&5MN_DS8LioE-NG^_uwubT0?l!
zTtSi(5^PVD#!crb7!IoB!A1~P$UTiJ*}a&@&+e;&Yf=g|SG~K7MBUpLh2b}908+pz
zv19jD&0m(sS&ur3?{Ez+fRh%4i<08KOt^&yI4@YjfTFyXR6r=ZFBflwfs!aZ%;BkS
z!ieM{@*XSVh#cZQlW{M8>dtDbsy7esJ^nR{#g9=Ulw3rG#K7vQGuEe?OciBgaF`^G
zd3Q%WHndVhNjNeZfpqxj>-Z6Ns|VP=UdcG5Jq`w~uB&W5H;(0ACtkQ^mZIdy@VxR{
zH9srlxdT}Lj7edPY}wH{?A-1@W+56;!+mri&?F`lVlpzEU(2$9;O`
z!c&yXD$DL`Y8gDLxki;NX8hbURK#Q7ZFN>X@O7nIk=H$D&sf6oeQ9YE5e1LVI%#6X
zu&0HZg>Rp{`onal-ma3uG^NAcu6zD69#O{G!6}%>QF~wgo*=`dMzhz+(myY?fq$KUwNMrp&mU$V=!vg7_iE*yvaIE~12M#!DPK{MC)KQOm^iG(#%
z#xdq3l{|Aba&6IH)=2V%UZ*LTzvYb__RBC+w3k|&9mQBN78vQKh&LK
zDQGdUR0MkY6F@=0QS|3Vdmsp;}qkMy+#{MM+iGr@`I$()ns@gt8aTk!Ww-1q#&m>i*B8X^R-PtVDUDqqZ18oxs-DlxjRZXWmrd;`lc|*mE
zjF2d_oRE-woP`LRom`KPV6-H_$p)JX4ee7enD84W`&=Gegi`|N-+#=$A3qvZPACv#
zuM!1sxYPj6yXXVhsw`(s%1(lqC_l^p@Dr($|s3hnu0z&5>RI>>!TkTb!g|Z-Q{R-%kJ(pp
zgPxOS%Koy?t}DH{0wy$4M`WME`dC;lod?&i=%L`}i8PV1%SV-6AV;-3zam4L5UhLu
z_8bgQU|SXVda7NN7qV$vMuB5GYOL-4n?#-bI^~njnjx8AjThhnZwV=4Uy`ii^{Va5
z2<<-RA5A0PK?ez2yWb&G-qhMG8ufe+sRbVr_JM7E?`vZ|wd6@l)Fybc<#Iei5)c6X
z%&)`f$R8&^pdh%Yk0U8hJV{7p{N(?Jol~Qm?+IVH4*qtYks}g6jK>jESBTJ%5%+ug
zc5o8NR+N`nr~dKpUkD*6fAKWK*8>D04B*a9tmUDU4VmR4p@lk8-#J@*zOHDe;_~qR
z^3nRvWQouW02z&5NCei9OLb+gEYf<&Om+=C28S8R+iHQUc*6zB#DK*8#Q{uDms=Ik
zV&q9z1G5X4D4N9;t~(4BpXgU?pkyT@Zygpavb_V_%h=G&DjEbxX~e<1I|lG#l@FV
z{3shuJ$!4a`&PX7wcGJ3Z~L@EE}${Pc9)0Xd5S6%O4F6`)3;Xc?egJR)UTVE-eb3u
zc9Ab7B={B7Zi~2vxq8Wg%3ql>;u}5KQ%rYzag(EoY_HQH7dd>?}j
zQxyve37)XSLWoZ1Lj=L*QH?=q>Au@PM0~aNm+?!t??3wycS)xQkSm0
z(RNA&K(d~-gHOH1L7O>4U89lu9u*uEXpeR#&DB~O6I?1a-Xt%X6<-=tm%;+98*lYf
zmhrg84z_-jyVYdqlyLKlLa%&UNJ7)`kS}7m!n@{zp^igyXQVyn9Sfx*q2Tu_OOvYT
zanf;ppNDm=Hi^qE|BIjS+T)wuVgDfTJm(*w(2jR*M_`m%>ixd$?F5MHRP?@mJl6|+
z6{_qMBwZilDNn3;D7wBePUuT_k#JUs{On(P7--$wtL{2*Klm;&X*9)MqCpDKmTj+!CWvNa3kXJ58B%C6&broUv%}Z4K}H$+r=avw_yL$WJ9)EMRRAA0%K}bvY8eG
zzV2SP`{50~8dLato9>)C_IlboJGmDfPt0mpb}%icogIq!H^#vIj~Ih?mS~g-FLt(M
z!4z=X!U_NI`*YPB7cfSu8*k*@)3#*$=b>%1Z&UH>n$SegB3LqgCCv6h$8BpUUQX>QBlGmO5Mk1rAGXLgX9RA-~Wu5bz(7hn{PT`SP)nvygHNJ#_SRv<2GiipCe4*+k4*pQG*m_Tf;TD|C*>rW;2CC
zBe|1nO)k`6`E1@OQP5pAtIB+GFOHc8p{yk^H}zgb?guf7B0tpDCT;_D0fn|^PaiT<
z?cnTo;H(D-|9BYro-rfhtrGD7t7AsR44W0fg$AAP6@N5G=h(UQzJUqTZGM*m7zP9n
z`CObme*~Z|5gS4^k2!_=ieZYPJ24woBa(wEn!DAj*Ckr1Je=72j0z5Dxr~8Y6^CzE
z113=(xoRq6ZzQ3PYo`0IXap}dLJ46zN*|Qp2i(c(#s4B7V4ehN#GCU##Mcu=qK0rL
ztr`qJ7GFa0a&(piEM0g@ZqwG9{cxsk9a9Pz%;lSaY@h8q^0Kb>wg9T^W>IG;zC5!S
z!6Dpy$A@%@rEag8Y{jhjNSOG;CYTM>nax^QXGah8ecOmBpDb!LvKL>bmv
z3J#YDC8{yNj+KtZk3_3$ug`s0cCuW&vZ)h#zs<(`@s+c!beR{5!lF6riCNbWOEy>g
zv*bOc#H}BPF>tTDAl@&+_3Je9US7kIhj~+L+lskg-7%(aevDX60f0&)iZE91!lT*i
zdsNP=v18xyF{43pG!*o>7<4Au0s!8MvfMvQ7*k=uFqFm!1D
zj;mV&n3lH#QMBewu@CG_#i@a>pSZ9|K7wyI9-YCl%)&Z;S%ZN|Hy%|=Ng&BQZGUdW
zr_p?uw^LlCd^0CJ$v$AX^S=rdm5&~5hHAf+wGq2Rx^9`(qCQr^ibNDb-{tf
z@!2q>&SNUNzyf0w?;7j2Ut@VTr{ew3LXUJwT=&W69afjDt}v2}v%=I*bTHYdu9{n#
z8)T_Wrr>VyUd|oYkd&}|ZcgC$$;Z`hVXF_AKuB%)j&I#snApSUS7wbq=@{P3)^F3n
zy3jfMSYPD3A4xm+RXyMf=QbWFgOq2L4a!n=Fl~(l{1Rs6BU1v*9OtU)-mz-+liJOa
zYu9%je6Z3`mqzOqbB@77p?gRjX5!d&nUqF4iW$?OgFslbhiHb^CNy7M)Z)q!0GCxkAMQqkN25;-u8hOU7Vyr6++_b%Z02fkb$
z{No}daUVxMEz|XqIc>y$Jbd|S=B(w=Dn&e({mTb_Qhq6dBLjw}rzV!&KJe|*-=h^!
z<`ZRVe}!74v87Ci>|KA}$A_3@md(|gbHg|}v~p!PJpVB&PGCmm@|CDUKn1+{QB6Fw
zDtn~uB7t15NYB1DvuYGVtMZ{I?RDekBn1Boud5z5E*|Qmo$R?x3WhLjAthfy(WT&^
z1RXD*%IOfNd+jT2NF`pZ+~{%z(GlE0g3$m`52O-`^j}0Ki|ezAE9HxKG6x;ZA*%|Y
zJ6Bh~RJ(k>8TfFv$Gm#UA%2lwl5VPshYGEri+PZupg?5~P?iCQz5pr`K)D>c({;tK
zw-b$FSTy!kyw8SiDm+Cowu5eZPw;s?MbUNtX!q?|Xcf`roukO0QKY`(
zttyM!%0ZWoxXQ1tW0eksHz>Hp1Lz^3
z%m;~BPt5;E96S#2BuF3v2ErmO-)Q1(#Ho=SH<
z(mTf!oXJLfOz*=EB#ezhO;29!9^(ToNZy=EN;aLen_u^G8gy)s^Y*D*)%jB3}xMJp`|
zRPm?QiR@QTn;$4G7XCi|Onan!cBI>K`Hs14mFAm*Meq7Cv@*wIM-Y%ThDP$*;NoH4
zTs8(0R5kiu&AxMP+CjA(LTLMD1D9*`^WaaQ9f-rLDe}5S8&8^jE?G%o?%L_0kh{wo
za+3qI{iW@vvIYK;s*tbRq-B!|3_^$i<*^a@|98;ITQ>XU$*tE{>D$R08%kHoj5=939e*nz~6v}BonUca)z3SKaoF_;RNj9@w^{AIbvFOPE
z2b!_9xhP8>&)1}S$@@~LvnOnv9%$~W`@gQH|1UIyI+NnpoZtdg(Gi$t>1Sal4y79^
z6~wD`9HIStufu=VBz*j}kA~E%XgM?2Xn%I&R@-aDTYG&L0M&3Dl`kbd9ly+;8L9ET
zyi;C0(@x;9q~~EOlQ`#g!0ru%<6_g(*=kT!HI^_@<9DU))$Q`IL|^qO@kBKiN79%(
zTFmRU*D5s7zR>%o7hxA&>wmTL+4))1>wMcdWxf)LeBd}spjQ>-pJ96
zzu(PxUjUr;*WaEa=>RaYVM%FxR!HMi<7*8v%e>bA^Hw%<`{ez$pI-r$jTS!awPHYd
zvSUCmQIQt;ziK)cf2RIF@Sn5IZrIM|eu<5_OCuqv#^#>;HL1^B(g?X#OQ~(d=29D7
zC}}PsR7g^(CW=a#QlZOdE|ut06uR?Uzu)isN1Vrbz2C3r`}vd_6IGcsg+hwkzjB*|
z>FYhneSvSXh>0~I_y;4E*B55@{tM>%PvQ5m%>11V27Vil6;SVaXxRR@)nsG-JZ-_A#b2Al;qG^X5wP-XE6Ni%c
zCdYr}!eHg76Y^7W(A)Bi=N|@FYg6_<1qhVr3GzQD1gB2(V3-PoG`5>t5$855I3sj(
ze1CkyhTI@<3ofHC>@d%rRatL6+oizWX3s4zu5B>S>3usK%UW7tbjPf|?bP`o@Xpq~
zaSER=OwU{zh>z*2bMq1lP}iPgPn>&z8yzmwp2vP{8`|dPhkS@T36wnA)7ZFgM=~?!
z%H#=)lN;lXd)Dq_5@%Kl?e|efX(NNs)nyw7dj3QeioN%SyYZ2swLe{~G}7B%fln7#Fxm4S#+i3He#fev~8bi3`{ERP~mTaXgxLkhQSEFn}9DBV@tv~`eO_pHBF4!tn@OhyYWi0elV6r)i@
z3iaLfH|n%6?>b-nP*RA@&Y~eIFNZnS$FKAU4Qe`X61NFrA@J>gyz9WNn>+9^b{8v+
z0T8=Ms`UjE&g7eXy@Ob1Rv0S*KB;d><}S`ZEcHRA+b@3Y7gb-OAqypXLE~K*WvV#s
zkvWGv-Alt{F@ZnnL6fRtu1|-R`4Y($mH5R9nNh_hmHXLJXf4E3pBxnvAdd%w`HtUZ
zNJEH=rqQ~!^Ti08sVEMF?)Ud85?V{sluM>+7dZBH25YN%^i^x_LRBPwj;F~>*KoY<~5
zeW>Q~^q%`LCy{WAjCMp=c+N1Uxgdu{CtzAbd~qrK#2#OjyeU9IPfWrKMaTMbyquIq
z%)nSQ`I0}^vJT@ZH*Bb4elU=}f(NHnnK12U30(f=BASfLrV71Gpi-~pU_cLrLE&gp
zkA%_m6Hk}qn1-#8GXNyUZCLGx7%hFwGkzPvOAAEG;)S-aN{%!iFhyVF2ou?yjr|RJ
z5l%F6cILd%nUoOwU0+Vl|H;-g6q>5%AQ_~A`oCGuQ)5RZA5_U7
z2YZa2<^(%pvkj&7oTW4uQ+T4JCawOx?e_24tD47kus`mZH&gHKPZ%Sm&eXjaU90=<
zcQC2Kp@+Od$}PwClnheMY|aL7;S>poPZ>ot?ct&&1Hhm;+VP#Ik2b?a&sfWSMKbjf
z)X&t5wPyVDb9J-AM_k#Qhpu5{O%clBgC%a**H(Ad7H>LU$}8-x&4_g|+{&~-V3zVQ
zv05-qk1C_@9dK-{CoEZ$qNl^Gvl3kPjE#d6RHUcij_(Bao^fRiOWK|%Ka@TXVFCI7
z%nTc-bbiAVC8me<5poxZbTgXY&q`Pl`d6A09
z8$+JItzrlx*cw%VQ@KGoExePDMcT3CesX#s;F`lwCyAZe`>qNmK2Tt}9kddPklR~s
z0=qreGw(Eux%M2dZNBq4EX_?A+4DsKI`TjdcfgfUew8$Wj^4RDr&RHU5QDYTS|3|?
z=a6{L2P1p8H`2`%q%u_=cSuW=$PYdqcYVO)sW~6(ny}aav-&pdyi|7H1GZChQUz@q
z4AWjDCM5f*IYx-M1+Etq%rT!4mks*nip^}jMV<;qE&r$k;pj@;$$~T
z;D6}`R>l<#YZZibwB2eQAFoOT3M~P~e-)NfV3^rR`(3L$u^vX~Hcd<(4qrn#U
z=fKURX!8V1*?7)@(fmlM`>n~Bl#q>$o0S}P%xLlrBFs{@xw0q2Ok$3xIy@op0^~Cu-&DsdQz&7f5V*ndtwUc`0cU2p!Aa17}&x^jEiI!l^km@gZg;H){pZ;
zM>5qq*t0{!M^(GDIIj4l-^M!Lh?0lc6pnxbfau|f(j^Ojkf0`pExtRG;F@_Bma&O6
z7M`wb!PQFb(?zTrc6SyBu)d<1E7`|s3bs-%jxF1Uw*IEOoh1l)HUrP^%eChK^a
zFs)fRhgFGjMTe*q4)+)nQ^5x$|PYpjMPl~E$g!!
zs>SbC?Q+Btm1R*xOIP*Zk1l=ZMLZYi;hYsk=poQIwz^tx4&^i)1Wu16m?XT|7HG2n
z4B7#`;%LRhr6hWeqaFAZ!_M;6UP{@_>xjNOB+pY!F|hbmYfKKsTYJg-VXntIJ&wrl
zPB{Ai2LDqBukG>Y%Cd_-i&s2X&jK*_zuMmSjf&h(KyLIgufe^Amg1sQbW^xn?*DSfm(x7eDv1>)(
zT{lSXQC_#1*o}sP0w_uLKf1#|&c_3q7osgu#+23--=M5eIoCl{E)O?V5Q1j!|7I?1
z7(S6y{b%P?e8;s^LqQx5j|*{~H^q=j|CTPC?BKPg5TCP7TUY`gEHN58X*gHn91k@!
zUH>1}5v=9@&J>!Hf$pY>tT`a%JKoFPwVGQ66s)@ACvCgYruJ
zSu(lwuAF&=0?x?@9d54wQ6XZG1%`SEHdli4G#Mdr?XQm+o;$
z1-{roa8K7YwA038*f(q7Rf|eWvu3E-G7S0b=MP8a!^MIbw36oPH%oZEot{yTL1*g2
z0FOmXKvk&G5-Ccj8W2cM8i|w|1%#O$lRUw_lu&{-N3rZUMjaylafp
zAeV+6mDE|LDkAC*MIKas?k)1NvgZ>+iapbOy6|Gc#Fdh?5`a*_(83e=q~
z)`N?Z(t9pvxZpjW>eCIt6%zCSt;TFFYcV*#1jMhPRe}<4D+9FlPxS(8-7P;DhwrzY
zX}EfJ`m{WS5sZLafyxKmjFVf1aIie=7*05j&n2Bvtp(n}Yb{$ii<5|92MuYnPWPMu
zK3BD-?O0%?a;{gDx_=o;bQSlo#H%11S_gTD(+gh`M`>5?+3U90ANSsSQ7E6o#aX+4
zrTKKBCc<604jRjAbrUe@f!mMoa>nb++)-i>5dt+VJ#21zc=hRY8>+H{L~B{aHDTSi
zx`#;5u!R>BMXywf*;P;)*m5#05F?7u`)G
zd3Y1KCPiB1A8>*-=0o&vL{#1xxp94EVgt$=6*>>w$Rd`7>`8Jt+*8@TEESfTnJu5s
zilX;ynmfKIM+kM*MrDRfk>NBnk?PcWI0rZ7oCYSfv#
zje*|obdD3$uzk;Kf$CM7Yb8nJ`o~0dX4UfS!$a|XSnGaFYLh(*E=q)SgyoDHpehWp
z-57RR=h5cPrd69X4%R;!ef4PO2k2T{EdUjpkCmko@UOGAb2gQJYJ&Kk(8gtovzn~Bu0w+CA-GL-h2h??>^rD
z@UG9yUHv(%=Vo_`Fa}O8p7ACb7ddOYM>DRt@i@s+
zBZ{HxSA|i>41v1+7iaDm$Y~DhQ4*~JJ|>sHcmC@DnXGqTPBbY5>NW;Fvo!AA9fgQo
z>23Rm_GSV|30Ji1xw304>T%6IOyzR}(ctH%zQW&s;~43|k70AqQZ{knWBs8Fm^9HO
zV%iE$b<&q&;?`-5qwDjwx}tsX?IRI8o&elnrQkM&Gy;C9)o|)El->JWpF4s92W;3C
zc9U^eHUq4sLa!qtfQu5O_b3(f&~-lmzSQ7KRM(ZF;n+DPzCWlaF_Q(5U|{zvOAVOr_o1Ah+g3XpOIbGkL*J
zUuG_vJCnaN{!61SigW$>{y`J$IEq|qMc8YXu`P{m@x>luI=M@f%{nev!^B2+v$R?~
zUlKo^2w+3f6fm|s-YR-{jeIQ=p=m2Q?;-r!3-F$u7?8(;mCixm9^Nsso)IBF8dYAgoqVq_b`zsV
z)WyRbA8D`ff8HI1wz8QDne5D{Qtnddj9gNcw=<&5j?Q^&EYVy}WK*icTx}MJGA%h$
zoct|l?Z-caG~aonv734ui3fH;aBsS?K9Rc$_V%Jc6>!!ZH|QayXZaX)<`39Mz4nc|
zHk8p>Qi)N62u0mGSRk(}-<8}+)bgTRr^FXZR?1as*`K-%D(6YmRs(R(eHYX`ut2K3
zvF2C{d=OLqQXeC{Y|}fRUWI8GC|m2ib5qohrx^-mOY5{8zhX{FF<_R;-DltBzOcR5
zh^c@#nN+_1Q=%g0F0xWCasIE(mzbgb3DGhw>iMPT{42*7G9gNJO76o53n2_x#uGKO
zU26gBvHzhNQdtG@|Dzcyd;W)JC;$Kg(4ujwcx;1P!?o7cx&%D^*bj|?ZV)6VAvI^o
zdTw@*$@$JwShR{5k$RZpU>@aAgO7r(gv|+@GxODlI<;gmp`a#qQG{;U93V$C)DOEw
z(L&qp6%wU;7ON~&qyF2_Ht6%|O{;!Fva$e(=rSa@&W|@58w?&grOMo{GZu8O0)Obs
zIh8?zf2uL**3xjDKZ-$k9!xCgYZAB96-RHW%b2qpQ+>Lv#!hd!>gA@iZP_k`|0bE2
z@%ha;QStXQd8MN>RCctPvFc~Px(e1h_r{^K1~l9UYZ`dwSl0C8rIf;Z(S`;mTKN_R
zg1uUg_8rvhmKmdNzl2dqB3`b;C+&B*p_O{d6<_fb2`q)CGG4gzLkFK#igZ?9_Ux%e
zITw?3c(Z2x&EEOiD4ZZp`2K97DU(_Q!)l5F&{DI{>0t(aWtHZEmZ=Kc#B@3D;g-!u
zyjA_byoYt4ih_1OmUD5>PZP*M<7KmVYsHUG-R%fX2?wD&OY3>HE%k|u;NU#b*$3UR
z^uZZ4@c*iBe}@PbCRjQ4s*~n6Q77*y?p5=jvAD>*PV&J~}$c61pi9CWp
zWvKX#j~ASyk!dOybJ%ip=mbQlR?r+
zYA#eAov^&A8b&amSGO;kR8&No--4?1b=+1ih}kxP-==n8p4o9|)WLUS!Ybn_|Jl|E
zSvJG&$7C6slDxQizbB*+^X_*5gR8CLPvRD#*c^i8U_k%28{0}lbuiDDq8kCX2gSiV
zo{R>dwMr`2RM#gLsgt8}h=LYh{N*zj+9yl{%0_)6en3(bQU%lTlJn-blIGi-Sy3U%PxZDoUZdBw><%H@p@Gf7pobycsA{O
zUsO83UUp8LsOl;1f>BZCWlptqw=!ogo!zEZ6iIkS-o4^42(lR6=VLrS>ap-7kLNF(x^
zx?HwsM!8A3`Zs81G5X>Ef=Yvus#nnpt%h{SzNSc7RT4!ea6khI=)=s8)fS-4h^gG)
zsdqOaCHXM1iK|@#MJG=x*H}Ox%8~XbQcv%%>9wk5#khp0=pG_Ws-S9~z=-5C
zRcJV>b;5;2Kq%*q$=@SI1IXe9LE-`Hm^taa)pm0B*h5?xLX^OXBDwru0_HJmDBH_~
z?AY!T1K$}Y4s!xO76%AZ;(*Xnm&c~ftgy?LqOAX4Zkimrk1kUcT_gLirb(TeE~n(1J;?6IWcY2
zT+Q4ZpaJW6z`M>7=M2|EDc-$AdLCh_zH;_@c7IihuYZWw$!atvmT9w!$Z_YCJ$*r8
zvRn=~I6HDZWKIkE%^kH229sp=#I{x;sg~?p7KEDgAh%LSe^ia0+u-qH&*?>RSN%@ISTgg8*pNZE#O|Hoc{%PW7ypya{*6uAW
z1=yBCuq?!?+)fKX1&``p0^?
zOD@}aeHV|q(4nLZ@$I+IEVk%2uYCQ+H3EL5#LlU!zGV87vHCDAH7Pn6R~Q25qV@O-
zAC4|D3ZE70$u|dBSkS~;ZdIpEFYfWZ{!&esyO#nQLfgNHU>T%)JJu+n{f#HK#T&AN
zZ`>bNI#5FIFl{4gNnns@o4L1*&WrKJ1Qp(
zF=7$occy5;Yi-i@(2)X7W;MVdS&cMXn|wOS{j*2X#DDXyOsCx+pokwLtb4IaIwC6)
zT7Q@3!W)T~km2O!ltdor6b}k~*i|a|ra34(=eUJW%I&4T879O*P*)8>*d57%QJ~I5
zcC?-3d7aCy$ZZy8%zkjqDOFC5PLvWh!hqlP9s6YZx81W)av}5-ko-C6?As%ZOE~GWQHp}zTKl`$qZk&u3ga2yu
zI$RMGz-8TUQ8y=O6%}!pGPpD*ODcBRa4wHzTa(iEU!G`%YU(nDDb?!T_jsh95AXb0
zjAU{U2Fw_Q9t|Gnin@+P!3_S}iNNeFLHkERWx|tQ+OjK;uiRQNpE1vg#ArXK
z3FuLEAZXb9Q;uLB>?0vj<>8iS{X^Uzztyr+s{ZjPLb@Zt?D9N-6wB6Bw
zTQR+F^ub#+0EhHrk8Ji3|!@}zOd~YA{=0&
zu4Rwp=o2(O#z{-;T(TYZ#lm{o6RG>5pHT}do*8T`)$Vxj+z+Bo?mGK{(hU2lL_8Se
zqH+<|$9WWV8_e0@L%T8j%NR4YKBprugtc}_OyF&6jM$vTr;q-=6Ey#STP4H1@P3InBN?_jN@<}a7??R99y8sZsiU4
zY;JQa{F);h&xdtz{5qVAN9n^iDB$;cp|-k?)_JAV?GHqp9XIanoxkA+=$>`}u>9MH
zhI6F9ij195X5mFvJ?CHl8~06{
zpT##FhMC;c#;>T(_u&x0Db0%Uhkb!9m+
za`5akm*OE*^HpW^`Y%FU>e>zZh5l7FL?7>jWw0X2(dZqEP}V>3eH?if;}-cVcFRoM75sDJ33mPy7yG!a3_-VqZ9;;kqin
zHpvYt07lHg4d*0Ey;a^0PGOA#UIB6|2Rwyyvq118wgBK>Of+>G`Z#D(WOYbtlA9Tr
qgWKd!LfBq|*;4aN1YK4D
literal 0
HcmV?d00001
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 95774f4ef3..dace436979 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -2,7 +2,7 @@ ARG pkg_mgr=apt
ARG ubuntu_version=22.04
ARG cyclus_tag=latest
-FROM ghcr.io/cyclus/cyclus_${ubuntu_version}_${pkg_mgr}/cyclus:${cyclus_tag} as cycamore
+FROM ghcr.io/cyclus/cyclus_${ubuntu_version}_${pkg_mgr}/cyclus:${cyclus_tag} AS cycamore
ARG make_cores=2
COPY . /cycamore
@@ -10,15 +10,15 @@ WORKDIR /cycamore
RUN python3 install.py -j ${make_cores} --allow-milps
-FROM cycamore as deb-generation
+FROM cycamore AS deb-generation
WORKDIR /cycamore/build
RUN make package
-FROM scratch as deb-package
+FROM scratch AS deb-package
COPY --from=deb-generation /cycamore/build/cycamore*.deb /
-FROM cycamore as cycamore-test
+FROM cycamore AS cycamore-test
RUN cycamore_unit_tests
-FROM cycamore-test as cycamore-pytest
+FROM cycamore-test AS cycamore-pytest
RUN cd tests && python3 -m pytest
diff --git a/src/cycamore.h b/src/cycamore.h
index a17995e402..c3ff0e8306 100644
--- a/src/cycamore.h
+++ b/src/cycamore.h
@@ -1,6 +1,17 @@
#ifndef CYCAMORE_SRC_CYCAMORE_H_
#define CYCAMORE_SRC_CYCAMORE_H_
+// For Doxygen mainpage
+/*!
+ * \mainpage Cycamore API Reference
+ *
+ * Welcome to the Cycamore API reference! Below are some helpful links for learning more:
+ * - GitHub repository: https://github.com/cyclus/cycamore
+ * - Kernel developer guide: https://fuelcycle.org/kernel
+ * - Archetype developer guide: https://fuelcycle.org/arche
+ *
+ */
+
// These includes must come before others.
#include "cyclus.h"
#include "cycamore_version.h"
From 9575e3894821570709ea9280981aafd0bc628cb8 Mon Sep 17 00:00:00 2001
From: bennibbelink <79653949+bennibbelink@users.noreply.github.com>
Date: Wed, 18 Sep 2024 22:13:05 -0400
Subject: [PATCH 2/3] update CHANGELOG
---
CHANGELOG.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4902da3e94..6744da10a1 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -16,6 +16,7 @@ Since last release
* Link against ``libxml++`` imported target in CMake instead of ``LIBXMLXX_LIBRARIES`` (#608)
* Cleaned up ``using`` declarations throughout archetypes (#610)
* Update archetype definitions to use cyclus constants instead of arbitrary hardcoded values (#606)
+* Changed the styling of doxygen docs (#626)
**Fixed:**
From 390f3bc0c47efda99c3f672e2596b53c9488b91d Mon Sep 17 00:00:00 2001
From: Ben Nibbelink <79653949+bennibbelink@users.noreply.github.com>
Date: Sat, 21 Sep 2024 10:02:17 -0400
Subject: [PATCH 3/3] find logo and stylesheet at cyclus_core_share_dir
---
doc/CMakeLists.txt | 4 +-
doc/doxygen-awesome.css | 2681 ---------------------------------------
doc/logo2_bike.gif | Bin 41942 -> 0 bytes
3 files changed, 2 insertions(+), 2683 deletions(-)
delete mode 100644 doc/doxygen-awesome.css
delete mode 100644 doc/logo2_bike.gif
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index c360ffbf53..043983df9b 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -8,8 +8,8 @@ IF(DOXYGEN_FOUND)
SET(DOXYGEN_SOURCE_DIR ${CYCAMORE_SOURCE_DIR})
SET(DOXYGEN_INPUT ${DOC_INPUT_DIR}/doxygen.conf)
SET(DOXYGEN_OUTPUT ${DOC_OUTPUT_DIR}/html/index.html)
- SET(PROJECT_LOGO "${DOC_INPUT_DIR}/logo2_bike.gif")
- SET(DOXYGEN_STYLESHEET_FILE "${DOC_INPUT_DIR}/doxygen-awesome.css")
+ SET(PROJECT_LOGO ${CYCLUS_CORE_SHARE_DIR}/doc/logo2_bike.gif)
+ SET(DOXYGEN_STYLESHEET_FILE ${CYCLUS_CORE_SHARE_DIR}/doc/doxygen-awesome.css)
FIND_PACKAGE(HTMLHelp)
diff --git a/doc/doxygen-awesome.css b/doc/doxygen-awesome.css
deleted file mode 100644
index 99ead768b3..0000000000
--- a/doc/doxygen-awesome.css
+++ /dev/null
@@ -1,2681 +0,0 @@
-/**
-
-Doxygen Awesome
-https://github.com/jothepro/doxygen-awesome-css
-
-MIT License
-
-Copyright (c) 2021 - 2023 jothepro
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-*/
-
-html {
- /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
- --primary-color: #1779c4;
- --primary-dark-color: #335c80;
- --primary-light-color: #70b1e9;
-
- /* page base colors */
- --page-background-color: #ffffff;
- --page-foreground-color: #2f4153;
- --page-secondary-foreground-color: #6f7e8e;
-
- /* color for all separators on the website: hr, borders, ... */
- --separator-color: #dedede;
-
- /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
- --border-radius-large: 8px;
- --border-radius-small: 4px;
- --border-radius-medium: 6px;
-
- /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
- --spacing-small: 5px;
- --spacing-medium: 10px;
- --spacing-large: 16px;
-
- /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
-
- --odd-color: rgba(0,0,0,.028);
-
- /* font-families. will affect all text on the website
- * font-family: the normal font for text, headlines, menus
- * font-family-monospace: used for preformatted text in memtitle, code, fragments
- */
- --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
- --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
-
- /* font sizes */
- --page-font-size: 15.6px;
- --navigation-font-size: 14.4px;
- --toc-font-size: 13.4px;
- --code-font-size: 14px; /* affects code, fragment */
- --title-font-size: 22px;
-
- /* content text properties. These only affect the page content, not the navigation or any other ui elements */
- --content-line-height: 27px;
- /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
- --content-maxwidth: 1050px;
- --table-line-height: 24px;
- --toc-sticky-top: var(--spacing-medium);
- --toc-width: 200px;
- --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
-
- /* colors for various content boxes: @warning, @note, @deprecated @bug */
- --warning-color: #faf3d8;
- --warning-color-dark: #f3a600;
- --warning-color-darker: #5f4204;
- --note-color: #e4f3ff;
- --note-color-dark: #1879C4;
- --note-color-darker: #274a5c;
- --todo-color: #e4dafd;
- --todo-color-dark: #5b2bdd;
- --todo-color-darker: #2a0d72;
- --deprecated-color: #ecf0f3;
- --deprecated-color-dark: #5b6269;
- --deprecated-color-darker: #43454a;
- --bug-color: #f8d1cc;
- --bug-color-dark: #b61825;
- --bug-color-darker: #75070f;
- --invariant-color: #d8f1e3;
- --invariant-color-dark: #44b86f;
- --invariant-color-darker: #265532;
-
- /* blockquote colors */
- --blockquote-background: #f8f9fa;
- --blockquote-foreground: #636568;
-
- /* table colors */
- --tablehead-background: #f1f1f1;
- --tablehead-foreground: var(--page-foreground-color);
-
- /* menu-display: block | none
- * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
- * `GENERATE_TREEVIEW` MUST be enabled!
- */
- --menu-display: block;
-
- --menu-focus-foreground: var(--page-background-color);
- --menu-focus-background: var(--primary-color);
- --menu-selected-background: rgba(0,0,0,.05);
-
-
- --header-background: var(--page-background-color);
- --header-foreground: var(--page-foreground-color);
-
- /* searchbar colors */
- --searchbar-background: var(--side-nav-background);
- --searchbar-foreground: var(--page-foreground-color);
-
- /* searchbar size
- * (`searchbar-width` is only applied on screens >= 768px.
- * on smaller screens the searchbar will always fill the entire screen width) */
- --searchbar-height: 33px;
- --searchbar-width: 210px;
- --searchbar-border-radius: var(--searchbar-height);
-
- /* code block colors */
- --code-background: #f5f5f5;
- --code-foreground: var(--page-foreground-color);
-
- /* fragment colors */
- --fragment-background: #F8F9FA;
- --fragment-foreground: #37474F;
- --fragment-keyword: #bb6bb2;
- --fragment-keywordtype: #8258b3;
- --fragment-keywordflow: #d67c3b;
- --fragment-token: #438a59;
- --fragment-comment: #969696;
- --fragment-link: #5383d6;
- --fragment-preprocessor: #46aaa5;
- --fragment-linenumber-color: #797979;
- --fragment-linenumber-background: #f4f4f5;
- --fragment-linenumber-border: #e3e5e7;
- --fragment-lineheight: 20px;
-
- /* sidebar navigation (treeview) colors */
- --side-nav-background: #fbfbfb;
- --side-nav-foreground: var(--page-foreground-color);
- --side-nav-arrow-opacity: 0;
- --side-nav-arrow-hover-opacity: 0.9;
-
- --toc-background: var(--side-nav-background);
- --toc-foreground: var(--side-nav-foreground);
-
- /* height of an item in any tree / collapsible table */
- --tree-item-height: 30px;
-
- --memname-font-size: var(--code-font-size);
- --memtitle-font-size: 18px;
-
- --webkit-scrollbar-size: 7px;
- --webkit-scrollbar-padding: 4px;
- --webkit-scrollbar-color: var(--separator-color);
-
- --animation-duration: .12s
-}
-
-@media screen and (max-width: 767px) {
- html {
- --page-font-size: 16px;
- --navigation-font-size: 16px;
- --toc-font-size: 15px;
- --code-font-size: 15px; /* affects code, fragment */
- --title-font-size: 22px;
- }
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) {
- color-scheme: dark;
-
- --primary-color: #1982d2;
- --primary-dark-color: #86a9c4;
- --primary-light-color: #4779ac;
-
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
-
- --odd-color: rgba(100,100,100,.06);
-
- --menu-selected-background: rgba(0,0,0,.4);
-
- --page-background-color: #1C1D1F;
- --page-foreground-color: #d2dbde;
- --page-secondary-foreground-color: #859399;
- --separator-color: #38393b;
- --side-nav-background: #252628;
-
- --code-background: #2a2c2f;
-
- --tablehead-background: #2a2c2f;
-
- --blockquote-background: #222325;
- --blockquote-foreground: #7e8c92;
-
- --warning-color: #3b2e04;
- --warning-color-dark: #f1b602;
- --warning-color-darker: #ceb670;
- --note-color: #163750;
- --note-color-dark: #1982D2;
- --note-color-darker: #dcf0fa;
- --todo-color: #2a2536;
- --todo-color-dark: #7661b3;
- --todo-color-darker: #ae9ed6;
- --deprecated-color: #2e323b;
- --deprecated-color-dark: #738396;
- --deprecated-color-darker: #abb0bd;
- --bug-color: #2e1917;
- --bug-color-dark: #ad2617;
- --bug-color-darker: #f5b1aa;
- --invariant-color: #303a35;
- --invariant-color-dark: #76ce96;
- --invariant-color-darker: #cceed5;
-
- --fragment-background: #282c34;
- --fragment-foreground: #dbe4eb;
- --fragment-keyword: #cc99cd;
- --fragment-keywordtype: #ab99cd;
- --fragment-keywordflow: #e08000;
- --fragment-token: #7ec699;
- --fragment-comment: #999999;
- --fragment-link: #98c0e3;
- --fragment-preprocessor: #65cabe;
- --fragment-linenumber-color: #cccccc;
- --fragment-linenumber-background: #35393c;
- --fragment-linenumber-border: #1f1f1f;
- }
-}
-
-/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
-html.dark-mode {
- color-scheme: dark;
-
- --primary-color: #1982d2;
- --primary-dark-color: #86a9c4;
- --primary-light-color: #4779ac;
-
- --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
-
- --odd-color: rgba(100,100,100,.06);
-
- --menu-selected-background: rgba(0,0,0,.4);
-
- --page-background-color: #1C1D1F;
- --page-foreground-color: #d2dbde;
- --page-secondary-foreground-color: #859399;
- --separator-color: #38393b;
- --side-nav-background: #252628;
-
- --code-background: #2a2c2f;
-
- --tablehead-background: #2a2c2f;
-
- --blockquote-background: #222325;
- --blockquote-foreground: #7e8c92;
-
- --warning-color: #3b2e04;
- --warning-color-dark: #f1b602;
- --warning-color-darker: #ceb670;
- --note-color: #163750;
- --note-color-dark: #1982D2;
- --note-color-darker: #dcf0fa;
- --todo-color: #2a2536;
- --todo-color-dark: #7661b3;
- --todo-color-darker: #ae9ed6;
- --deprecated-color: #2e323b;
- --deprecated-color-dark: #738396;
- --deprecated-color-darker: #abb0bd;
- --bug-color: #2e1917;
- --bug-color-dark: #ad2617;
- --bug-color-darker: #f5b1aa;
- --invariant-color: #303a35;
- --invariant-color-dark: #76ce96;
- --invariant-color-darker: #cceed5;
-
- --fragment-background: #282c34;
- --fragment-foreground: #dbe4eb;
- --fragment-keyword: #cc99cd;
- --fragment-keywordtype: #ab99cd;
- --fragment-keywordflow: #e08000;
- --fragment-token: #7ec699;
- --fragment-comment: #999999;
- --fragment-link: #98c0e3;
- --fragment-preprocessor: #65cabe;
- --fragment-linenumber-color: #cccccc;
- --fragment-linenumber-background: #35393c;
- --fragment-linenumber-border: #1f1f1f;
-}
-
-body {
- color: var(--page-foreground-color);
- background-color: var(--page-background-color);
- font-size: var(--page-font-size);
-}
-
-body, table, div, p, dl, #nav-tree .label, .title,
-.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
-.SelectItem, #MSearchField, .navpath li.navelem a,
-.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3 {
- font-family: var(--font-family);
-}
-
-h1, h2, h3, h4, h5 {
- margin-top: 1em;
- font-weight: 600;
- line-height: initial;
-}
-
-p, div, table, dl, p.reference, p.definition {
- font-size: var(--page-font-size);
-}
-
-p.reference, p.definition {
- color: var(--page-secondary-foreground-color);
-}
-
-a:link, a:visited, a:hover, a:focus, a:active {
- color: var(--primary-color) !important;
- font-weight: 500;
- background: none;
-}
-
-a.anchor {
- scroll-margin-top: var(--spacing-large);
- display: block;
-}
-
-/*
- Title and top navigation
- */
-
-#top {
- background: var(--header-background);
- border-bottom: 1px solid var(--separator-color);
-}
-
-@media screen and (min-width: 768px) {
- #top {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- align-items: center;
- }
-}
-
-#main-nav {
- flex-grow: 5;
- padding: var(--spacing-small) var(--spacing-medium);
-}
-
-#titlearea {
- width: auto;
- padding: var(--spacing-medium) var(--spacing-large);
- background: none;
- color: var(--header-foreground);
- border-bottom: none;
-}
-
-@media screen and (max-width: 767px) {
- #titlearea {
- padding-bottom: var(--spacing-small);
- }
-}
-
-#titlearea table tbody tr {
- height: auto !important;
-}
-
-#projectname {
- font-size: var(--title-font-size);
- font-weight: 600;
-}
-
-#projectnumber {
- font-family: inherit;
- font-size: 60%;
-}
-
-#projectbrief {
- font-family: inherit;
- font-size: 80%;
-}
-
-#projectlogo {
- vertical-align: middle;
-}
-
-#projectlogo img {
- max-height: calc(var(--title-font-size) * 2);
- margin-right: var(--spacing-small);
-}
-
-.sm-dox, .tabs, .tabs2, .tabs3 {
- background: none;
- padding: 0;
-}
-
-.tabs, .tabs2, .tabs3 {
- border-bottom: 1px solid var(--separator-color);
- margin-bottom: -1px;
-}
-
-.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
- background: var(--page-secondary-foreground-color);
-}
-
-@media screen and (max-width: 767px) {
- .sm-dox a span.sub-arrow {
- background: var(--code-background);
- }
-
- #main-menu a.has-submenu span.sub-arrow {
- color: var(--page-secondary-foreground-color);
- border-radius: var(--border-radius-medium);
- }
-
- #main-menu a.has-submenu:hover span.sub-arrow {
- color: var(--page-foreground-color);
- }
-}
-
-@media screen and (min-width: 768px) {
- .sm-dox li, .tablist li {
- display: var(--menu-display);
- }
-
- .sm-dox a span.sub-arrow {
- border-color: var(--header-foreground) transparent transparent transparent;
- }
-
- .sm-dox a:hover span.sub-arrow {
- border-color: var(--menu-focus-foreground) transparent transparent transparent;
- }
-
- .sm-dox ul a span.sub-arrow {
- border-color: transparent transparent transparent var(--page-foreground-color);
- }
-
- .sm-dox ul a:hover span.sub-arrow {
- border-color: transparent transparent transparent var(--menu-focus-foreground);
- }
-}
-
-.sm-dox ul {
- background: var(--page-background-color);
- box-shadow: var(--box-shadow);
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium) !important;
- padding: var(--spacing-small);
- animation: ease-out 150ms slideInMenu;
-}
-
-@keyframes slideInMenu {
- from {
- opacity: 0;
- transform: translate(0px, -2px);
- }
-
- to {
- opacity: 1;
- transform: translate(0px, 0px);
- }
-}
-
-.sm-dox ul a {
- color: var(--page-foreground-color) !important;
- background: var(--page-background-color);
- font-size: var(--navigation-font-size);
-}
-
-.sm-dox>li>ul:after {
- border-bottom-color: var(--page-background-color) !important;
-}
-
-.sm-dox>li>ul:before {
- border-bottom-color: var(--separator-color) !important;
-}
-
-.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
- font-size: var(--navigation-font-size) !important;
- color: var(--menu-focus-foreground) !important;
- text-shadow: none;
- background-color: var(--menu-focus-background);
- border-radius: var(--border-radius-small) !important;
-}
-
-.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
- text-shadow: none;
- background: transparent;
- background-image: none !important;
- color: var(--header-foreground) !important;
- font-weight: normal;
- font-size: var(--navigation-font-size);
- border-radius: var(--border-radius-small) !important;
-}
-
-.sm-dox a:focus {
- outline: auto;
-}
-
-.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
- text-shadow: none;
- font-weight: normal;
- background: var(--menu-focus-background);
- color: var(--menu-focus-foreground) !important;
- border-radius: var(--border-radius-small) !important;
- font-size: var(--navigation-font-size);
-}
-
-.tablist li.current {
- border-radius: var(--border-radius-small);
- background: var(--menu-selected-background);
-}
-
-.tablist li {
- margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
-}
-
-.tablist a {
- padding: 0 var(--spacing-large);
-}
-
-
-/*
- Search box
- */
-
-#MSearchBox {
- height: var(--searchbar-height);
- background: var(--searchbar-background);
- border-radius: var(--searchbar-border-radius);
- border: 1px solid var(--separator-color);
- overflow: hidden;
- width: var(--searchbar-width);
- position: relative;
- box-shadow: none;
- display: block;
- margin-top: 0;
-}
-
-/* until Doxygen 1.9.4 */
-.left img#MSearchSelect {
- left: 0;
- user-select: none;
- padding-left: 8px;
-}
-
-/* Doxygen 1.9.5 */
-.left span#MSearchSelect {
- left: 0;
- user-select: none;
- margin-left: 8px;
- padding: 0;
-}
-
-.left #MSearchSelect[src$=".png"] {
- padding-left: 0
-}
-
-.SelectionMark {
- user-select: none;
-}
-
-.tabs .left #MSearchSelect {
- padding-left: 0;
-}
-
-.tabs #MSearchBox {
- position: absolute;
- right: var(--spacing-medium);
-}
-
-@media screen and (max-width: 767px) {
- .tabs #MSearchBox {
- position: relative;
- right: 0;
- margin-left: var(--spacing-medium);
- margin-top: 0;
- }
-}
-
-#MSearchSelectWindow, #MSearchResultsWindow {
- z-index: 9999;
-}
-
-#MSearchBox.MSearchBoxActive {
- border-color: var(--primary-color);
- box-shadow: inset 0 0 0 1px var(--primary-color);
-}
-
-#main-menu > li:last-child {
- margin-right: 0;
-}
-
-@media screen and (max-width: 767px) {
- #main-menu > li:last-child {
- height: 50px;
- }
-}
-
-#MSearchField {
- font-size: var(--navigation-font-size);
- height: calc(var(--searchbar-height) - 2px);
- background: transparent;
- width: calc(var(--searchbar-width) - 64px);
-}
-
-.MSearchBoxActive #MSearchField {
- color: var(--searchbar-foreground);
-}
-
-#MSearchSelect {
- top: calc(calc(var(--searchbar-height) / 2) - 11px);
-}
-
-#MSearchBox span.left, #MSearchBox span.right {
- background: none;
- background-image: none;
-}
-
-#MSearchBox span.right {
- padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
- position: absolute;
- right: var(--spacing-small);
-}
-
-.tabs #MSearchBox span.right {
- top: calc(calc(var(--searchbar-height) / 2) - 12px);
-}
-
-@keyframes slideInSearchResults {
- from {
- opacity: 0;
- transform: translate(0, 15px);
- }
-
- to {
- opacity: 1;
- transform: translate(0, 20px);
- }
-}
-
-#MSearchResultsWindow {
- left: auto !important;
- right: var(--spacing-medium);
- border-radius: var(--border-radius-large);
- border: 1px solid var(--separator-color);
- transform: translate(0, 20px);
- box-shadow: var(--box-shadow);
- animation: ease-out 280ms slideInSearchResults;
- background: var(--page-background-color);
-}
-
-iframe#MSearchResults {
- margin: 4px;
-}
-
-iframe {
- color-scheme: normal;
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) iframe#MSearchResults {
- filter: invert() hue-rotate(180deg);
- }
-}
-
-html.dark-mode iframe#MSearchResults {
- filter: invert() hue-rotate(180deg);
-}
-
-#MSearchResults .SRPage {
- background-color: transparent;
-}
-
-#MSearchResults .SRPage .SREntry {
- font-size: 10pt;
- padding: var(--spacing-small) var(--spacing-medium);
-}
-
-#MSearchSelectWindow {
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- box-shadow: var(--box-shadow);
- background: var(--page-background-color);
- padding-top: var(--spacing-small);
- padding-bottom: var(--spacing-small);
-}
-
-#MSearchSelectWindow a.SelectItem {
- font-size: var(--navigation-font-size);
- line-height: var(--content-line-height);
- margin: 0 var(--spacing-small);
- border-radius: var(--border-radius-small);
- color: var(--page-foreground-color) !important;
- font-weight: normal;
-}
-
-#MSearchSelectWindow a.SelectItem:hover {
- background: var(--menu-focus-background);
- color: var(--menu-focus-foreground) !important;
-}
-
-@media screen and (max-width: 767px) {
- #MSearchBox {
- margin-top: var(--spacing-medium);
- margin-bottom: var(--spacing-medium);
- width: calc(100vw - 30px);
- }
-
- #main-menu > li:last-child {
- float: none !important;
- }
-
- #MSearchField {
- width: calc(100vw - 110px);
- }
-
- @keyframes slideInSearchResultsMobile {
- from {
- opacity: 0;
- transform: translate(0, 15px);
- }
-
- to {
- opacity: 1;
- transform: translate(0, 20px);
- }
- }
-
- #MSearchResultsWindow {
- left: var(--spacing-medium) !important;
- right: var(--spacing-medium);
- overflow: auto;
- transform: translate(0, 20px);
- animation: ease-out 280ms slideInSearchResultsMobile;
- width: auto !important;
- }
-
- /*
- * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
- */
- label.main-menu-btn ~ #searchBoxPos1 {
- top: 3px !important;
- right: 6px !important;
- left: 45px;
- display: flex;
- }
-
- label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
- margin-top: 0;
- margin-bottom: 0;
- flex-grow: 2;
- float: left;
- }
-}
-
-/*
- Tree view
- */
-
-#side-nav {
- padding: 0 !important;
- background: var(--side-nav-background);
- min-width: 8px;
- max-width: 50vw;
-}
-
-@media screen and (max-width: 767px) {
- #side-nav {
- display: none;
- }
-
- #doc-content {
- margin-left: 0 !important;
- }
-}
-
-#nav-tree {
- background: transparent;
- margin-right: 1px;
-}
-
-#nav-tree .label {
- font-size: var(--navigation-font-size);
-}
-
-#nav-tree .item {
- height: var(--tree-item-height);
- line-height: var(--tree-item-height);
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#nav-tree .item > a:focus {
- outline: none;
-}
-
-#nav-sync {
- bottom: 12px;
- right: 12px;
- top: auto !important;
- user-select: none;
-}
-
-#nav-tree .selected {
- text-shadow: none;
- background-image: none;
- background-color: transparent;
- position: relative;
- color: var(--primary-color) !important;
- font-weight: 500;
-}
-
-#nav-tree .selected::after {
- content: "";
- position: absolute;
- top: 1px;
- bottom: 1px;
- left: 0;
- width: 4px;
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
- background: var(--primary-color);
-}
-
-
-#nav-tree a {
- color: var(--side-nav-foreground) !important;
- font-weight: normal;
-}
-
-#nav-tree a:focus {
- outline-style: auto;
-}
-
-#nav-tree .arrow {
- opacity: var(--side-nav-arrow-opacity);
- background: none;
-}
-
-.arrow {
- color: inherit;
- cursor: pointer;
- font-size: 45%;
- vertical-align: middle;
- margin-right: 2px;
- font-family: serif;
- height: auto;
- text-align: right;
-}
-
-#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
- opacity: var(--side-nav-arrow-hover-opacity);
-}
-
-#nav-tree .selected a {
- color: var(--primary-color) !important;
- font-weight: bolder;
- font-weight: 600;
-}
-
-.ui-resizable-e {
- width: 4px;
- background: transparent;
- box-shadow: inset -1px 0 0 0 var(--separator-color);
-}
-
-/*
- Contents
- */
-
-div.header {
- border-bottom: 1px solid var(--separator-color);
- background-color: var(--page-background-color);
- background-image: none;
-}
-
-@media screen and (min-width: 1000px) {
- #doc-content > div > div.contents,
- .PageDoc > div.contents {
- display: flex;
- flex-direction: row-reverse;
- flex-wrap: nowrap;
- align-items: flex-start;
- }
-
- div.contents .textblock {
- min-width: 200px;
- flex-grow: 1;
- }
-}
-
-div.contents, div.header .title, div.header .summary {
- max-width: var(--content-maxwidth);
-}
-
-div.contents, div.header .title {
- line-height: initial;
- margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
-}
-
-div.header .summary {
- margin: var(--spacing-medium) auto 0 auto;
-}
-
-div.headertitle {
- padding: 0;
-}
-
-div.header .title {
- font-weight: 600;
- font-size: 225%;
- padding: var(--spacing-medium) var(--spacing-large);
- word-break: break-word;
-}
-
-div.header .summary {
- width: auto;
- display: block;
- float: none;
- padding: 0 var(--spacing-large);
-}
-
-td.memSeparator {
- border-color: var(--separator-color);
-}
-
-span.mlabel {
- background: var(--primary-color);
- border: none;
- padding: 4px 9px;
- border-radius: 12px;
- margin-right: var(--spacing-medium);
-}
-
-span.mlabel:last-of-type {
- margin-right: 2px;
-}
-
-div.contents {
- padding: 0 var(--spacing-large);
-}
-
-div.contents p, div.contents li {
- line-height: var(--content-line-height);
-}
-
-div.contents div.dyncontent {
- margin: var(--spacing-medium) 0;
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) div.contents div.dyncontent img,
- html:not(.light-mode) div.contents center img,
- html:not(.light-mode) div.contents > table img,
- html:not(.light-mode) div.contents div.dyncontent iframe,
- html:not(.light-mode) div.contents center iframe,
- html:not(.light-mode) div.contents table iframe,
- html:not(.light-mode) div.contents .dotgraph iframe {
- filter: brightness(89%) hue-rotate(180deg) invert();
- }
-}
-
-html.dark-mode div.contents div.dyncontent img,
-html.dark-mode div.contents center img,
-html.dark-mode div.contents > table img,
-html.dark-mode div.contents div.dyncontent iframe,
-html.dark-mode div.contents center iframe,
-html.dark-mode div.contents table iframe,
-html.dark-mode div.contents .dotgraph iframe
- {
- filter: brightness(89%) hue-rotate(180deg) invert();
-}
-
-h2.groupheader {
- border-bottom: 0px;
- color: var(--page-foreground-color);
- box-shadow:
- 100px 0 var(--page-background-color),
- -100px 0 var(--page-background-color),
- 100px 0.75px var(--separator-color),
- -100px 0.75px var(--separator-color),
- 500px 0 var(--page-background-color),
- -500px 0 var(--page-background-color),
- 500px 0.75px var(--separator-color),
- -500px 0.75px var(--separator-color),
- 900px 0 var(--page-background-color),
- -900px 0 var(--page-background-color),
- 900px 0.75px var(--separator-color),
- -900px 0.75px var(--separator-color),
- 1400px 0 var(--page-background-color),
- -1400px 0 var(--page-background-color),
- 1400px 0.75px var(--separator-color),
- -1400px 0.75px var(--separator-color),
- 1900px 0 var(--page-background-color),
- -1900px 0 var(--page-background-color),
- 1900px 0.75px var(--separator-color),
- -1900px 0.75px var(--separator-color);
-}
-
-blockquote {
- margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
- padding: var(--spacing-small) var(--spacing-large);
- background: var(--blockquote-background);
- color: var(--blockquote-foreground);
- border-left: 0;
- overflow: visible;
- border-radius: var(--border-radius-medium);
- overflow: visible;
- position: relative;
-}
-
-blockquote::before, blockquote::after {
- font-weight: bold;
- font-family: serif;
- font-size: 360%;
- opacity: .15;
- position: absolute;
-}
-
-blockquote::before {
- content: "“";
- left: -10px;
- top: 4px;
-}
-
-blockquote::after {
- content: "”";
- right: -8px;
- bottom: -25px;
-}
-
-blockquote p {
- margin: var(--spacing-small) 0 var(--spacing-medium) 0;
-}
-.paramname, .paramname em {
- font-weight: 600;
- color: var(--primary-dark-color);
-}
-
-.paramname > code {
- border: 0;
-}
-
-table.params .paramname {
- font-weight: 600;
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
- padding-right: var(--spacing-small);
- line-height: var(--table-line-height);
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
- text-shadow: 0 0 15px var(--primary-light-color);
-}
-
-.alphachar a {
- color: var(--page-foreground-color);
-}
-
-.dotgraph {
- max-width: 100%;
- overflow-x: scroll;
-}
-
-.dotgraph .caption {
- position: sticky;
- left: 0;
-}
-
-/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
-.interactive_dotgraph .dotgraph iframe {
- max-width: 100%;
-}
-
-/*
- Table of Contents
- */
-
-div.contents .toc {
- max-height: var(--toc-max-height);
- min-width: var(--toc-width);
- border: 0;
- border-left: 1px solid var(--separator-color);
- border-radius: 0;
- background-color: var(--page-background-color);
- box-shadow: none;
- position: sticky;
- top: var(--toc-sticky-top);
- padding: 0 var(--spacing-large);
- margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
-}
-
-div.toc h3 {
- color: var(--toc-foreground);
- font-size: var(--navigation-font-size);
- margin: var(--spacing-large) 0 var(--spacing-medium) 0;
-}
-
-div.toc li {
- padding: 0;
- background: none;
- line-height: var(--toc-font-size);
- margin: var(--toc-font-size) 0 0 0;
-}
-
-div.toc li::before {
- display: none;
-}
-
-div.toc ul {
- margin-top: 0
-}
-
-div.toc li a {
- font-size: var(--toc-font-size);
- color: var(--page-foreground-color) !important;
- text-decoration: none;
-}
-
-div.toc li a:hover, div.toc li a.active {
- color: var(--primary-color) !important;
-}
-
-div.toc li a.aboveActive {
- color: var(--page-secondary-foreground-color) !important;
-}
-
-
-@media screen and (max-width: 999px) {
- div.contents .toc {
- max-height: 45vh;
- float: none;
- width: auto;
- margin: 0 0 var(--spacing-medium) 0;
- position: relative;
- top: 0;
- position: relative;
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- background-color: var(--toc-background);
- box-shadow: var(--box-shadow);
- }
-
- div.contents .toc.interactive {
- max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
- overflow: hidden;
- }
-
- div.contents .toc > h3 {
- -webkit-tap-highlight-color: transparent;
- cursor: pointer;
- position: sticky;
- top: 0;
- background-color: var(--toc-background);
- margin: 0;
- padding: var(--spacing-large) 0;
- display: block;
- }
-
- div.contents .toc.interactive > h3::before {
- content: "";
- width: 0;
- height: 0;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 5px solid var(--primary-color);
- display: inline-block;
- margin-right: var(--spacing-small);
- margin-bottom: calc(var(--navigation-font-size) / 4);
- transform: rotate(-90deg);
- transition: transform var(--animation-duration) ease-out;
- }
-
- div.contents .toc.interactive.open > h3::before {
- transform: rotate(0deg);
- }
-
- div.contents .toc.interactive.open {
- max-height: 45vh;
- overflow: auto;
- transition: max-height 0.2s ease-in-out;
- }
-
- div.contents .toc a, div.contents .toc a.active {
- color: var(--primary-color) !important;
- }
-
- div.contents .toc a:hover {
- text-decoration: underline;
- }
-}
-
-/*
- Code & Fragments
- */
-
-code, div.fragment, pre.fragment {
- border-radius: var(--border-radius-small);
- border: 1px solid var(--separator-color);
- overflow: hidden;
-}
-
-code {
- display: inline;
- background: var(--code-background);
- color: var(--code-foreground);
- padding: 2px 6px;
-}
-
-div.fragment, pre.fragment {
- margin: var(--spacing-medium) 0;
- padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
- background: var(--fragment-background);
- color: var(--fragment-foreground);
- overflow-x: auto;
-}
-
-@media screen and (max-width: 767px) {
- div.fragment, pre.fragment {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-right: 0;
- }
-
- .contents > div.fragment,
- .textblock > div.fragment,
- .textblock > pre.fragment,
- .textblock > .tabbed > ul > li > div.fragment,
- .textblock > .tabbed > ul > li > pre.fragment,
- .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment,
- .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment,
- .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-large));
- border-radius: 0;
- border-left: 0;
- }
-
- .textblock li > .fragment,
- .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-large));
- }
-
- .memdoc li > .fragment,
- .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
- }
-
- .textblock ul, .memdoc ul {
- overflow: initial;
- }
-
- .memdoc > div.fragment,
- .memdoc > pre.fragment,
- dl dd > div.fragment,
- dl dd pre.fragment,
- .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
- .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
- dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
- dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
- margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
- border-radius: 0;
- border-left: 0;
- }
-}
-
-code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size) !important;
-}
-
-div.line:after {
- margin-right: var(--spacing-medium);
-}
-
-div.fragment .line, pre.fragment {
- white-space: pre;
- word-wrap: initial;
- line-height: var(--fragment-lineheight);
-}
-
-div.fragment span.keyword {
- color: var(--fragment-keyword);
-}
-
-div.fragment span.keywordtype {
- color: var(--fragment-keywordtype);
-}
-
-div.fragment span.keywordflow {
- color: var(--fragment-keywordflow);
-}
-
-div.fragment span.stringliteral {
- color: var(--fragment-token)
-}
-
-div.fragment span.comment {
- color: var(--fragment-comment);
-}
-
-div.fragment a.code {
- color: var(--fragment-link) !important;
-}
-
-div.fragment span.preprocessor {
- color: var(--fragment-preprocessor);
-}
-
-div.fragment span.lineno {
- display: inline-block;
- width: 27px;
- border-right: none;
- background: var(--fragment-linenumber-background);
- color: var(--fragment-linenumber-color);
-}
-
-div.fragment span.lineno a {
- background: none;
- color: var(--fragment-link) !important;
-}
-
-div.fragment > .line:first-child .lineno {
- box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
- background-color: var(--fragment-linenumber-background) !important;
-}
-
-div.line {
- border-radius: var(--border-radius-small);
-}
-
-div.line.glow {
- background-color: var(--primary-light-color);
- box-shadow: none;
-}
-
-/*
- dl warning, attention, note, deprecated, bug, ...
- */
-
-dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
- font-weight: bold !important;
-}
-
-dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
- padding: var(--spacing-medium);
- margin: var(--spacing-medium) 0;
- color: var(--page-background-color);
- overflow: hidden;
- margin-left: 0;
- border-radius: var(--border-radius-small);
-}
-
-dl.section dd {
- margin-bottom: 2px;
-}
-
-dl.warning, dl.attention {
- background: var(--warning-color);
- border-left: 8px solid var(--warning-color-dark);
- color: var(--warning-color-darker);
-}
-
-dl.warning dt, dl.attention dt {
- color: var(--warning-color-dark);
-}
-
-dl.note, dl.remark {
- background: var(--note-color);
- border-left: 8px solid var(--note-color-dark);
- color: var(--note-color-darker);
-}
-
-dl.note dt, dl.remark dt {
- color: var(--note-color-dark);
-}
-
-dl.todo {
- background: var(--todo-color);
- border-left: 8px solid var(--todo-color-dark);
- color: var(--todo-color-darker);
-}
-
-dl.todo dt a {
- color: var(--todo-color-dark) !important;
-}
-
-dl.bug dt a {
- color: var(--todo-color-dark) !important;
-}
-
-dl.bug {
- background: var(--bug-color);
- border-left: 8px solid var(--bug-color-dark);
- color: var(--bug-color-darker);
-}
-
-dl.bug dt a {
- color: var(--bug-color-dark) !important;
-}
-
-dl.deprecated {
- background: var(--deprecated-color);
- border-left: 8px solid var(--deprecated-color-dark);
- color: var(--deprecated-color-darker);
-}
-
-dl.deprecated dt a {
- color: var(--deprecated-color-dark) !important;
-}
-
-dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
- margin-inline-start: 0px;
-}
-
-dl.invariant, dl.pre, dl.post {
- background: var(--invariant-color);
- border-left: 8px solid var(--invariant-color-dark);
- color: var(--invariant-color-darker);
-}
-
-dl.invariant dt, dl.pre dt, dl.post dt {
- color: var(--invariant-color-dark);
-}
-
-/*
- memitem
- */
-
-div.memdoc, div.memproto, h2.memtitle {
- box-shadow: none;
- background-image: none;
- border: none;
-}
-
-div.memdoc {
- padding: 0 var(--spacing-medium);
- background: var(--page-background-color);
-}
-
-h2.memtitle, div.memitem {
- border: 1px solid var(--separator-color);
- box-shadow: var(--box-shadow);
-}
-
-h2.memtitle {
- box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
-}
-
-div.memitem {
- transition: none;
-}
-
-div.memproto, h2.memtitle {
- background: var(--fragment-background);
-}
-
-h2.memtitle {
- font-weight: 500;
- font-size: var(--memtitle-font-size);
- font-family: var(--font-family-monospace);
- border-bottom: none;
- border-top-left-radius: var(--border-radius-medium);
- border-top-right-radius: var(--border-radius-medium);
- word-break: break-all;
- position: relative;
-}
-
-h2.memtitle:after {
- content: "";
- display: block;
- background: var(--fragment-background);
- height: var(--spacing-medium);
- bottom: calc(0px - var(--spacing-medium));
- left: 0;
- right: -14px;
- position: absolute;
- border-top-right-radius: var(--border-radius-medium);
-}
-
-h2.memtitle > span.permalink {
- font-size: inherit;
-}
-
-h2.memtitle > span.permalink > a {
- text-decoration: none;
- padding-left: 3px;
- margin-right: -4px;
- user-select: none;
- display: inline-block;
- margin-top: -6px;
-}
-
-h2.memtitle > span.permalink > a:hover {
- color: var(--primary-dark-color) !important;
-}
-
-a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
- border-color: var(--primary-light-color);
-}
-
-div.memitem {
- border-top-right-radius: var(--border-radius-medium);
- border-bottom-right-radius: var(--border-radius-medium);
- border-bottom-left-radius: var(--border-radius-medium);
- overflow: hidden;
- display: block !important;
-}
-
-div.memdoc {
- border-radius: 0;
-}
-
-div.memproto {
- border-radius: 0 var(--border-radius-small) 0 0;
- overflow: auto;
- border-bottom: 1px solid var(--separator-color);
- padding: var(--spacing-medium);
- margin-bottom: -1px;
-}
-
-div.memtitle {
- border-top-right-radius: var(--border-radius-medium);
- border-top-left-radius: var(--border-radius-medium);
-}
-
-div.memproto table.memname {
- font-family: var(--font-family-monospace);
- color: var(--page-foreground-color);
- font-size: var(--memname-font-size);
- text-shadow: none;
-}
-
-div.memproto div.memtemplate {
- font-family: var(--font-family-monospace);
- color: var(--primary-dark-color);
- font-size: var(--memname-font-size);
- margin-left: 2px;
- text-shadow: none;
-}
-
-table.mlabels, table.mlabels > tbody {
- display: block;
-}
-
-td.mlabels-left {
- width: auto;
-}
-
-td.mlabels-right {
- margin-top: 3px;
- position: sticky;
- left: 0;
-}
-
-table.mlabels > tbody > tr:first-child {
- display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
-}
-
-.memname, .memitem span.mlabels {
- margin: 0
-}
-
-/*
- reflist
- */
-
-dl.reflist {
- box-shadow: var(--box-shadow);
- border-radius: var(--border-radius-medium);
- border: 1px solid var(--separator-color);
- overflow: hidden;
- padding: 0;
-}
-
-
-dl.reflist dt, dl.reflist dd {
- box-shadow: none;
- text-shadow: none;
- background-image: none;
- border: none;
- padding: 12px;
-}
-
-
-dl.reflist dt {
- font-weight: 500;
- border-radius: 0;
- background: var(--code-background);
- border-bottom: 1px solid var(--separator-color);
- color: var(--page-foreground-color)
-}
-
-
-dl.reflist dd {
- background: none;
-}
-
-/*
- Table
- */
-
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
- display: inline-block;
- max-width: 100%;
-}
-
-.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- max-width: calc(100% + 2 * var(--spacing-large));
-}
-
-table.fieldtable,
-table.markdownTable tbody,
-table.doxtable tbody {
- border: none;
- margin: var(--spacing-medium) 0;
- box-shadow: 0 0 0 1px var(--separator-color);
- border-radius: var(--border-radius-small);
-}
-
-table.markdownTable, table.doxtable, table.fieldtable {
- padding: 1px;
-}
-
-table.doxtable caption {
- display: block;
-}
-
-table.fieldtable {
- border-collapse: collapse;
- width: 100%;
-}
-
-th.markdownTableHeadLeft,
-th.markdownTableHeadRight,
-th.markdownTableHeadCenter,
-th.markdownTableHeadNone,
-table.doxtable th {
- background: var(--tablehead-background);
- color: var(--tablehead-foreground);
- font-weight: 600;
- font-size: var(--page-font-size);
-}
-
-th.markdownTableHeadLeft:first-child,
-th.markdownTableHeadRight:first-child,
-th.markdownTableHeadCenter:first-child,
-th.markdownTableHeadNone:first-child,
-table.doxtable tr th:first-child {
- border-top-left-radius: var(--border-radius-small);
-}
-
-th.markdownTableHeadLeft:last-child,
-th.markdownTableHeadRight:last-child,
-th.markdownTableHeadCenter:last-child,
-th.markdownTableHeadNone:last-child,
-table.doxtable tr th:last-child {
- border-top-right-radius: var(--border-radius-small);
-}
-
-table.markdownTable td,
-table.markdownTable th,
-table.fieldtable td,
-table.fieldtable th,
-table.doxtable td,
-table.doxtable th {
- border: 1px solid var(--separator-color);
- padding: var(--spacing-small) var(--spacing-medium);
-}
-
-table.markdownTable td:last-child,
-table.markdownTable th:last-child,
-table.fieldtable td:last-child,
-table.fieldtable th:last-child,
-table.doxtable td:last-child,
-table.doxtable th:last-child {
- border-right: none;
-}
-
-table.markdownTable td:first-child,
-table.markdownTable th:first-child,
-table.fieldtable td:first-child,
-table.fieldtable th:first-child,
-table.doxtable td:first-child,
-table.doxtable th:first-child {
- border-left: none;
-}
-
-table.markdownTable tr:first-child td,
-table.markdownTable tr:first-child th,
-table.fieldtable tr:first-child td,
-table.fieldtable tr:first-child th,
-table.doxtable tr:first-child td,
-table.doxtable tr:first-child th {
- border-top: none;
-}
-
-table.markdownTable tr:last-child td,
-table.markdownTable tr:last-child th,
-table.fieldtable tr:last-child td,
-table.fieldtable tr:last-child th,
-table.doxtable tr:last-child td,
-table.doxtable tr:last-child th {
- border-bottom: none;
-}
-
-table.markdownTable tr, table.doxtable tr {
- border-bottom: 1px solid var(--separator-color);
-}
-
-table.markdownTable tr:last-child, table.doxtable tr:last-child {
- border-bottom: none;
-}
-
-.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
- display: block;
-}
-
-.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
- display: table;
- width: 100%;
-}
-
-table.fieldtable th {
- font-size: var(--page-font-size);
- font-weight: 600;
- background-image: none;
- background-color: var(--tablehead-background);
- color: var(--tablehead-foreground);
-}
-
-table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th {
- border-bottom: 1px solid var(--separator-color);
- border-right: 1px solid var(--separator-color);
-}
-
-table.fieldtable tr:last-child td:first-child {
- border-bottom-left-radius: var(--border-radius-small);
-}
-
-table.fieldtable tr:last-child td:last-child {
- border-bottom-right-radius: var(--border-radius-small);
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
- background-color: var(--primary-light-color);
- box-shadow: none;
-}
-
-table.memberdecls {
- display: block;
- -webkit-tap-highlight-color: transparent;
-}
-
-table.memberdecls tr[class^='memitem'] {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
-}
-
-table.memberdecls tr[class^='memitem'] .memTemplParams {
- font-family: var(--font-family-monospace);
- font-size: var(--code-font-size);
- color: var(--primary-dark-color);
- white-space: normal;
-}
-
-table.memberdecls .memItemLeft,
-table.memberdecls .memItemRight,
-table.memberdecls .memTemplItemLeft,
-table.memberdecls .memTemplItemRight,
-table.memberdecls .memTemplParams {
- transition: none;
- padding-top: var(--spacing-small);
- padding-bottom: var(--spacing-small);
- border-top: 1px solid var(--separator-color);
- border-bottom: 1px solid var(--separator-color);
- background-color: var(--fragment-background);
-}
-
-table.memberdecls .memTemplItemLeft,
-table.memberdecls .memTemplItemRight {
- padding-top: 2px;
-}
-
-table.memberdecls .memTemplParams {
- border-bottom: 0;
- border-left: 1px solid var(--separator-color);
- border-right: 1px solid var(--separator-color);
- border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
- padding-bottom: var(--spacing-small);
-}
-
-table.memberdecls .memTemplItemLeft {
- border-radius: 0 0 0 var(--border-radius-small);
- border-left: 1px solid var(--separator-color);
- border-top: 0;
-}
-
-table.memberdecls .memTemplItemRight {
- border-radius: 0 0 var(--border-radius-small) 0;
- border-right: 1px solid var(--separator-color);
- padding-left: 0;
- border-top: 0;
-}
-
-table.memberdecls .memItemLeft {
- border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
- border-left: 1px solid var(--separator-color);
- padding-left: var(--spacing-medium);
- padding-right: 0;
-}
-
-table.memberdecls .memItemRight {
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
- border-right: 1px solid var(--separator-color);
- padding-right: var(--spacing-medium);
- padding-left: 0;
-
-}
-
-table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
- background: none;
- color: var(--page-foreground-color);
- padding: var(--spacing-small) 0;
-}
-
-table.memberdecls .memItemLeft,
-table.memberdecls .memTemplItemLeft {
- padding-right: var(--spacing-medium);
-}
-
-table.memberdecls .memSeparator {
- background: var(--page-background-color);
- height: var(--spacing-large);
- border: 0;
- transition: none;
-}
-
-table.memberdecls .groupheader {
- margin-bottom: var(--spacing-large);
-}
-
-table.memberdecls .inherit_header td {
- padding: 0 0 var(--spacing-medium) 0;
- text-indent: -12px;
- color: var(--page-secondary-foreground-color);
-}
-
-table.memberdecls img[src="closed.png"],
-table.memberdecls img[src="open.png"],
-div.dynheader img[src="open.png"],
-div.dynheader img[src="closed.png"] {
- width: 0;
- height: 0;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 5px solid var(--primary-color);
- margin-top: 8px;
- display: block;
- float: left;
- margin-left: -10px;
- transition: transform var(--animation-duration) ease-out;
-}
-
-table.memberdecls img {
- margin-right: 10px;
-}
-
-table.memberdecls img[src="closed.png"],
-div.dynheader img[src="closed.png"] {
- transform: rotate(-90deg);
-
-}
-
-.compoundTemplParams {
- font-family: var(--font-family-monospace);
- color: var(--primary-dark-color);
- font-size: var(--code-font-size);
-}
-
-@media screen and (max-width: 767px) {
-
- table.memberdecls .memItemLeft,
- table.memberdecls .memItemRight,
- table.memberdecls .mdescLeft,
- table.memberdecls .mdescRight,
- table.memberdecls .memTemplItemLeft,
- table.memberdecls .memTemplItemRight,
- table.memberdecls .memTemplParams {
- display: block;
- text-align: left;
- padding-left: var(--spacing-large);
- margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
- border-right: none;
- border-left: none;
- border-radius: 0;
- white-space: normal;
- }
-
- table.memberdecls .memItemLeft,
- table.memberdecls .mdescLeft,
- table.memberdecls .memTemplItemLeft {
- border-bottom: 0;
- padding-bottom: 0;
- }
-
- table.memberdecls .memTemplItemLeft {
- padding-top: 0;
- }
-
- table.memberdecls .mdescLeft {
- margin-bottom: calc(0px - var(--page-font-size));
- }
-
- table.memberdecls .memItemRight,
- table.memberdecls .mdescRight,
- table.memberdecls .memTemplItemRight {
- border-top: 0;
- padding-top: 0;
- padding-right: var(--spacing-large);
- overflow-x: auto;
- }
-
- table.memberdecls tr[class^='memitem']:not(.inherit) {
- display: block;
- width: calc(100vw - 2 * var(--spacing-large));
- }
-
- table.memberdecls .mdescRight {
- color: var(--page-foreground-color);
- }
-
- table.memberdecls tr.inherit {
- visibility: hidden;
- }
-
- table.memberdecls tr[style="display: table-row;"] {
- display: block !important;
- visibility: visible;
- width: calc(100vw - 2 * var(--spacing-large));
- animation: fade .5s;
- }
-
- @keyframes fade {
- 0% {
- opacity: 0;
- max-height: 0;
- }
-
- 100% {
- opacity: 1;
- max-height: 200px;
- }
- }
-}
-
-
-/*
- Horizontal Rule
- */
-
-hr {
- margin-top: var(--spacing-large);
- margin-bottom: var(--spacing-large);
- height: 1px;
- background-color: var(--separator-color);
- border: 0;
-}
-
-.contents hr {
- box-shadow: 100px 0 var(--separator-color),
- -100px 0 var(--separator-color),
- 500px 0 var(--separator-color),
- -500px 0 var(--separator-color),
- 900px 0 var(--separator-color),
- -900px 0 var(--separator-color),
- 1400px 0 var(--separator-color),
- -1400px 0 var(--separator-color),
- 1900px 0 var(--separator-color),
- -1900px 0 var(--separator-color);
-}
-
-.contents img, .contents .center, .contents center, .contents div.image object {
- max-width: 100%;
- overflow: auto;
-}
-
-@media screen and (max-width: 767px) {
- .contents .dyncontent > .center, .contents > center {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- max-width: calc(100% + 2 * var(--spacing-large));
- }
-}
-
-/*
- Directories
- */
-div.directory {
- border-top: 1px solid var(--separator-color);
- border-bottom: 1px solid var(--separator-color);
- width: auto;
-}
-
-table.directory {
- font-family: var(--font-family);
- font-size: var(--page-font-size);
- font-weight: normal;
- width: 100%;
-}
-
-table.directory td.entry, table.directory td.desc {
- padding: calc(var(--spacing-small) / 2) var(--spacing-small);
- line-height: var(--table-line-height);
-}
-
-table.directory tr.even td:last-child {
- border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
-}
-
-table.directory tr.even td:first-child {
- border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
-}
-
-table.directory tr.even:last-child td:last-child {
- border-radius: 0 var(--border-radius-small) 0 0;
-}
-
-table.directory tr.even:last-child td:first-child {
- border-radius: var(--border-radius-small) 0 0 0;
-}
-
-table.directory td.desc {
- min-width: 250px;
-}
-
-table.directory tr.even {
- background-color: var(--odd-color);
-}
-
-table.directory tr.odd {
- background-color: transparent;
-}
-
-.icona {
- width: auto;
- height: auto;
- margin: 0 var(--spacing-small);
-}
-
-.icon {
- background: var(--primary-color);
- border-radius: var(--border-radius-small);
- font-size: var(--page-font-size);
- padding: calc(var(--page-font-size) / 5);
- line-height: var(--page-font-size);
- transform: scale(0.8);
- height: auto;
- width: var(--page-font-size);
- user-select: none;
-}
-
-.iconfopen, .icondoc, .iconfclosed {
- background-position: center;
- margin-bottom: 0;
- height: var(--table-line-height);
-}
-
-.icondoc {
- filter: saturate(0.2);
-}
-
-@media screen and (max-width: 767px) {
- div.directory {
- margin-left: calc(0px - var(--spacing-large));
- margin-right: calc(0px - var(--spacing-large));
- }
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
- filter: hue-rotate(180deg) invert();
- }
-}
-
-html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
- filter: hue-rotate(180deg) invert();
-}
-
-/*
- Class list
- */
-
-.classindex dl.odd {
- background: var(--odd-color);
- border-radius: var(--border-radius-small);
-}
-
-.classindex dl.even {
- background-color: transparent;
-}
-
-/*
- Class Index Doxygen 1.8
-*/
-
-table.classindex {
- margin-left: 0;
- margin-right: 0;
- width: 100%;
-}
-
-table.classindex table div.ah {
- background-image: none;
- background-color: initial;
- border-color: var(--separator-color);
- color: var(--page-foreground-color);
- box-shadow: var(--box-shadow);
- border-radius: var(--border-radius-large);
- padding: var(--spacing-small);
-}
-
-div.qindex {
- background-color: var(--odd-color);
- border-radius: var(--border-radius-small);
- border: 1px solid var(--separator-color);
- padding: var(--spacing-small) 0;
-}
-
-/*
- Footer and nav-path
- */
-
-#nav-path {
- width: 100%;
-}
-
-#nav-path ul {
- background-image: none;
- background: var(--page-background-color);
- border: none;
- border-top: 1px solid var(--separator-color);
- border-bottom: 1px solid var(--separator-color);
- border-bottom: 0;
- box-shadow: 0 0.75px 0 var(--separator-color);
- font-size: var(--navigation-font-size);
-}
-
-img.footer {
- width: 60px;
-}
-
-.navpath li.footer {
- color: var(--page-secondary-foreground-color);
-}
-
-address.footer {
- color: var(--page-secondary-foreground-color);
- margin-bottom: var(--spacing-large);
-}
-
-#nav-path li.navelem {
- background-image: none;
- display: flex;
- align-items: center;
-}
-
-.navpath li.navelem a {
- text-shadow: none;
- display: inline-block;
- color: var(--primary-color) !important;
-}
-
-.navpath li.navelem b {
- color: var(--primary-dark-color);
- font-weight: 500;
-}
-
-li.navelem {
- padding: 0;
- margin-left: -8px;
-}
-
-li.navelem:first-child {
- margin-left: var(--spacing-large);
-}
-
-li.navelem:first-child:before {
- display: none;
-}
-
-#nav-path li.navelem:after {
- content: '';
- border: 5px solid var(--page-background-color);
- border-bottom-color: transparent;
- border-right-color: transparent;
- border-top-color: transparent;
- transform: translateY(-1px) scaleY(4.2);
- z-index: 10;
- margin-left: 6px;
-}
-
-#nav-path li.navelem:before {
- content: '';
- border: 5px solid var(--separator-color);
- border-bottom-color: transparent;
- border-right-color: transparent;
- border-top-color: transparent;
- transform: translateY(-1px) scaleY(3.2);
- margin-right: var(--spacing-small);
-}
-
-.navpath li.navelem a:hover {
- color: var(--primary-color);
-}
-
-/*
- Scrollbars for Webkit
-*/
-
-#nav-tree::-webkit-scrollbar,
-div.fragment::-webkit-scrollbar,
-pre.fragment::-webkit-scrollbar,
-div.memproto::-webkit-scrollbar,
-.contents center::-webkit-scrollbar,
-.contents .center::-webkit-scrollbar,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
-div.contents .toc::-webkit-scrollbar,
-.contents .dotgraph::-webkit-scrollbar,
-.contents .tabs-overview-container::-webkit-scrollbar {
- background: transparent;
- width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
- height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
-}
-
-#nav-tree::-webkit-scrollbar-thumb,
-div.fragment::-webkit-scrollbar-thumb,
-pre.fragment::-webkit-scrollbar-thumb,
-div.memproto::-webkit-scrollbar-thumb,
-.contents center::-webkit-scrollbar-thumb,
-.contents .center::-webkit-scrollbar-thumb,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
-div.contents .toc::-webkit-scrollbar-thumb,
-.contents .dotgraph::-webkit-scrollbar-thumb,
-.contents .tabs-overview-container::-webkit-scrollbar-thumb {
- background-color: transparent;
- border: var(--webkit-scrollbar-padding) solid transparent;
- border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
- background-clip: padding-box;
-}
-
-#nav-tree:hover::-webkit-scrollbar-thumb,
-div.fragment:hover::-webkit-scrollbar-thumb,
-pre.fragment:hover::-webkit-scrollbar-thumb,
-div.memproto:hover::-webkit-scrollbar-thumb,
-.contents center:hover::-webkit-scrollbar-thumb,
-.contents .center:hover::-webkit-scrollbar-thumb,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
-div.contents .toc:hover::-webkit-scrollbar-thumb,
-.contents .dotgraph:hover::-webkit-scrollbar-thumb,
-.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
- background-color: var(--webkit-scrollbar-color);
-}
-
-#nav-tree::-webkit-scrollbar-track,
-div.fragment::-webkit-scrollbar-track,
-pre.fragment::-webkit-scrollbar-track,
-div.memproto::-webkit-scrollbar-track,
-.contents center::-webkit-scrollbar-track,
-.contents .center::-webkit-scrollbar-track,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
-div.contents .toc::-webkit-scrollbar-track,
-.contents .dotgraph::-webkit-scrollbar-track,
-.contents .tabs-overview-container::-webkit-scrollbar-track {
- background: transparent;
-}
-
-#nav-tree::-webkit-scrollbar-corner {
- background-color: var(--side-nav-background);
-}
-
-#nav-tree,
-div.fragment,
-pre.fragment,
-div.memproto,
-.contents center,
-.contents .center,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
-div.contents .toc {
- overflow-x: auto;
- overflow-x: overlay;
-}
-
-#nav-tree {
- overflow-x: auto;
- overflow-y: auto;
- overflow-y: overlay;
-}
-
-/*
- Scrollbars for Firefox
-*/
-
-#nav-tree,
-div.fragment,
-pre.fragment,
-div.memproto,
-.contents center,
-.contents .center,
-.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
-div.contents .toc,
-.contents .dotgraph,
-.contents .tabs-overview-container {
- scrollbar-width: thin;
-}
-
-/*
- Optional Dark mode toggle button
-*/
-
-doxygen-awesome-dark-mode-toggle {
- display: inline-block;
- margin: 0 0 0 var(--spacing-small);
- padding: 0;
- width: var(--searchbar-height);
- height: var(--searchbar-height);
- background: none;
- border: none;
- border-radius: var(--searchbar-height);
- vertical-align: middle;
- text-align: center;
- line-height: var(--searchbar-height);
- font-size: 22px;
- display: flex;
- align-items: center;
- justify-content: center;
- user-select: none;
- cursor: pointer;
-}
-
-doxygen-awesome-dark-mode-toggle > svg {
- transition: transform var(--animation-duration) ease-in-out;
-}
-
-doxygen-awesome-dark-mode-toggle:active > svg {
- transform: scale(.5);
-}
-
-doxygen-awesome-dark-mode-toggle:hover {
- background-color: rgba(0,0,0,.03);
-}
-
-html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
- background-color: rgba(0,0,0,.18);
-}
-
-/*
- Optional fragment copy button
-*/
-.doxygen-awesome-fragment-wrapper {
- position: relative;
-}
-
-doxygen-awesome-fragment-copy-button {
- opacity: 0;
- background: var(--fragment-background);
- width: 28px;
- height: 28px;
- position: absolute;
- right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
- top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
- border: 1px solid var(--fragment-foreground);
- cursor: pointer;
- border-radius: var(--border-radius-small);
- display: flex;
- justify-content: center;
- align-items: center;
-}
-
-.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
- opacity: .28;
-}
-
-doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
- opacity: 1 !important;
-}
-
-doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
- transform: scale(.91);
-}
-
-doxygen-awesome-fragment-copy-button svg {
- fill: var(--fragment-foreground);
- width: 18px;
- height: 18px;
-}
-
-doxygen-awesome-fragment-copy-button.success svg {
- fill: rgb(14, 168, 14);
-}
-
-doxygen-awesome-fragment-copy-button.success {
- border-color: rgb(14, 168, 14);
-}
-
-@media screen and (max-width: 767px) {
- .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
- dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
- right: 0;
- }
-}
-
-/*
- Optional paragraph link button
-*/
-
-a.anchorlink {
- font-size: 90%;
- margin-left: var(--spacing-small);
- color: var(--page-foreground-color) !important;
- text-decoration: none;
- opacity: .15;
- display: none;
- transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out;
-}
-
-a.anchorlink svg {
- fill: var(--page-foreground-color);
-}
-
-h3 a.anchorlink svg, h4 a.anchorlink svg {
- margin-bottom: -3px;
- margin-top: -4px;
-}
-
-a.anchorlink:hover {
- opacity: .45;
-}
-
-h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink {
- display: inline-block;
-}
-
-/*
- Optional tab feature
-*/
-
-.tabbed > ul {
- padding-inline-start: 0px;
- margin: 0;
- padding: var(--spacing-small) 0;
-}
-
-.tabbed > ul > li {
- display: none;
-}
-
-.tabbed > ul > li.selected {
- display: block;
-}
-
-.tabs-overview-container {
- overflow-x: auto;
- display: block;
- overflow-y: visible;
-}
-
-.tabs-overview {
- border-bottom: 1px solid var(--separator-color);
- display: flex;
- flex-direction: row;
-}
-
-@media screen and (max-width: 767px) {
- .tabs-overview-container {
- margin: 0 calc(0px - var(--spacing-large));
- }
- .tabs-overview {
- padding: 0 var(--spacing-large)
- }
-}
-
-.tabs-overview button.tab-button {
- color: var(--page-foreground-color);
- margin: 0;
- border: none;
- background: transparent;
- padding: calc(var(--spacing-large) / 2) 0;
- display: inline-block;
- font-size: var(--page-font-size);
- cursor: pointer;
- box-shadow: 0 1px 0 0 var(--separator-color);
- position: relative;
-
- -webkit-tap-highlight-color: transparent;
-}
-
-.tabs-overview button.tab-button .tab-title::before {
- display: block;
- content: attr(title);
- font-weight: 600;
- height: 0;
- overflow: hidden;
- visibility: hidden;
-}
-
-.tabs-overview button.tab-button .tab-title {
- float: left;
- white-space: nowrap;
- font-weight: normal;
- padding: calc(var(--spacing-large) / 2) var(--spacing-large);
- border-radius: var(--border-radius-medium);
- transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out;
-}
-
-.tabs-overview button.tab-button:not(:last-child) .tab-title {
- box-shadow: 8px 0 0 -7px var(--separator-color);
-}
-
-.tabs-overview button.tab-button:hover .tab-title {
- background: var(--separator-color);
- box-shadow: none;
-}
-
-.tabs-overview button.tab-button.active .tab-title {
- font-weight: 600;
-}
-
-.tabs-overview button.tab-button::after {
- content: '';
- display: block;
- position: absolute;
- left: 0;
- bottom: 0;
- right: 0;
- height: 0;
- width: 0%;
- margin: 0 auto;
- border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
- background-color: var(--primary-color);
- transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out;
-}
-
-.tabs-overview button.tab-button.active::after {
- width: 100%;
- box-sizing: border-box;
- height: 3px;
-}
-
-
-/*
- Navigation Buttons
-*/
-
-.section_buttons:not(:empty) {
- margin-top: calc(var(--spacing-large) * 3);
-}
-
-.section_buttons table.markdownTable {
- display: block;
- width: 100%;
-}
-
-.section_buttons table.markdownTable tbody {
- display: table !important;
- width: 100%;
- box-shadow: none;
- border-spacing: 10px;
-}
-
-.section_buttons table.markdownTable td {
- padding: 0;
-}
-
-.section_buttons table.markdownTable th {
- display: none;
-}
-
-.section_buttons table.markdownTable tr.markdownTableHead {
- border: none;
-}
-
-.section_buttons tr th, .section_buttons tr td {
- background: none;
- border: none;
- padding: var(--spacing-large) 0 var(--spacing-small);
-}
-
-.section_buttons a {
- display: inline-block;
- border: 1px solid var(--separator-color);
- border-radius: var(--border-radius-medium);
- color: var(--page-secondary-foreground-color) !important;
- text-decoration: none;
- transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out;
-}
-
-.section_buttons a:hover {
- color: var(--page-foreground-color) !important;
- background-color: var(--odd-color);
-}
-
-.section_buttons tr td.markdownTableBodyLeft a {
- padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2);
-}
-
-.section_buttons tr td.markdownTableBodyRight a {
- padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large);
-}
-
-.section_buttons tr td.markdownTableBodyLeft a::before,
-.section_buttons tr td.markdownTableBodyRight a::after {
- color: var(--page-secondary-foreground-color) !important;
- display: inline-block;
- transition: color .08s ease-in-out, transform .09s ease-in-out;
-}
-
-.section_buttons tr td.markdownTableBodyLeft a::before {
- content: '〈';
- padding-right: var(--spacing-large);
-}
-
-
-.section_buttons tr td.markdownTableBodyRight a::after {
- content: '〉';
- padding-left: var(--spacing-large);
-}
-
-
-.section_buttons tr td.markdownTableBodyLeft a:hover::before {
- color: var(--page-foreground-color) !important;
- transform: translateX(-3px);
-}
-
-.section_buttons tr td.markdownTableBodyRight a:hover::after {
- color: var(--page-foreground-color) !important;
- transform: translateX(3px);
-}
-
-@media screen and (max-width: 450px) {
- .section_buttons a {
- width: 100%;
- box-sizing: border-box;
- }
-
- .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a {
- border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium);
- border-right: none;
- }
-
- .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a {
- border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;
- }
-}
\ No newline at end of file
diff --git a/doc/logo2_bike.gif b/doc/logo2_bike.gif
deleted file mode 100644
index 7d6d0fc63e2e942b506999df94ad5aa545e474fa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 41942
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